)]}'
{
  "commit": "f760f74b5b230c137eb5b9b264df51223865bb07",
  "tree": "967a00b3dfae36f15013f361993f293118b64e2c",
  "parents": [
    "d0e065f0147f8c9b4baef356fe284d76af561444"
  ],
  "author": {
    "name": "Eric Yang",
    "email": "eric.yang.wiwynn@gmail.com",
    "time": "Tue Aug 18 09:19:57 2026 +0000"
  },
  "committer": {
    "name": "ManojKiran Eda",
    "email": "manojkiran.eda@gmail.com",
    "time": "Thu Sep 03 06:14:55 2026 +0000"
  },
  "message": "pldmtool: Exit non-zero on request failures\n\nexec()\u0027s three failure paths (instance ID allocation,\ncreateRequestMsg(), pldmSendRecv()) now report failure through the CLI\nframework\u0027s exit-code mechanism instead of an uncaught exception or a\nplain return.\n\nMotivation:\npldmtool surfaces the instance ID allocation failure as an exception\nrather than silently discarding it. Nothing above exec() catches that\nexception, so a real, expected failure (instance IDs running out under\nnormal contention, not misuse) crashes the whole process instead of\nexiting cleanly. The other two paths avoid that crash, but log an error\nand still return successfully as far as the caller can tell, so a script\nchecking the exit status cannot distinguish a failed request from a\nsuccessful one.\n\nTested:\nForced each of the three failure paths above on Yosemite4.\n\nInstance ID pool forced empty, before:\n```\n$ pldmtool base GetTID -m 30\n\u003c3\u003e Instance ID allocation failed for EID 30: Failed to allocate\ninstance ID for EID 30: No free instance ids\nterminate called after throwing an instance of \u0027pldm::InstanceIdError\u0027\n  what():  Failed to allocate instance ID for EID 30: No free\n  instance ids\nAborted (core dumped)\n$ echo $?\n134\n```\nafter:\n```\n$ pldmtool base GetTID -m 30\n\u003c3\u003e Instance ID allocation failed for EID 30: Failed to allocate\ninstance ID for EID 30: No free instance ids\n$ echo $?\n1\n```\n\ncreateRequestMsg() forced to return an encode-validation error, before:\n```\n$ pldmtool base GetTID -m 30\nFailed to encode request message for base:GetTID rc \u003d 2\n$ echo $?\n0\n```\nafter:\n```\n$ pldmtool base GetTID -m 30\nFailed to encode request message for base:GetTID rc \u003d 2\n$ echo $?\n1\n```\n\npldmSendRecv() forced to return a transport send error, before:\n```\n$ pldmtool base GetTID -m 30\npldmSendRecv: Failed to receive RC \u003d -7\n$ echo $?\n0\n```\nafter:\n```\n$ pldmtool base GetTID -m 30\npldmSendRecv: Failed to receive RC \u003d -7\n$ echo $?\n1\n```\n\nChange-Id: Ifbc0235b431e50df104322d3d5d156df383a8aa2\nSigned-off-by: Eric Yang \u003ceric.yang.wiwynn@gmail.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "36b1ee2d6f69f9c2951e1593f30b94fdd3d787c5",
      "old_mode": 33188,
      "old_path": "pldmtool/pldm_cmd_helper.cpp",
      "new_id": "5c11b90695bfb6dbfe2ef0941299c0861fb087fd",
      "new_mode": 33188,
      "new_path": "pldmtool/pldm_cmd_helper.cpp"
    }
  ]
}
