)]}'
{
  "commit": "929f317b004ade6f1fd5d961017c2d78d63753b2",
  "tree": "3d4e956441522f087663d26d5b4f265fdd7b05d4",
  "parents": [
    "1602b362455e3f87dae4b314c61e8a4df2d8e260"
  ],
  "author": {
    "name": "Gary Beihl",
    "email": "garybeihl@microsoft.com",
    "time": "Fri Apr 10 08:19:10 2026 -0400"
  },
  "committer": {
    "name": "ManojKiran Eda",
    "email": "manojkiran.eda@gmail.com",
    "time": "Wed Apr 15 06:08:48 2026 +0000"
  },
  "message": "fw-update: Notify UpdateManager on response decode failure\n\nDeviceUpdater response handlers follow a common pattern: if\nresponse is null, the decoder fails, or the completion code is\nnon-zero, the device cannot complete the update and the handler\nlogs an error and returns. The null-response and completion-code\npaths correctly notify UpdateManager via updateDeviceCompletion(),\nbut the decode-failure path silently returns, leaving the software\nobject in InProgress state indefinitely.\n\nAdd updateDeviceCompletion(eid, false) calls to four decode\nfailure paths so the state machine correctly transitions to\nfailure:\n  - requestUpdate()       (decode_request_update_resp)\n  - passCompTable()       (decode_pass_component_table_resp)\n  - updateComponent()     (decode_update_component_resp)\n  - activateFirmware()    (decode_activate_firmware_resp)\n\ncancelUpdateComponent() is intentionally left unchanged because\nit is the cleanup path for an already-failed update.\n\nReported-by: Vishnunithyasoundhar S (on Gerrit 87785 PS8)\nTested: E2E on Renode evb-ast2600-renode with malformed\nUpdateComponent response injection — pldmd correctly logs\ndecode failure and calls updateDeviceCompletion(eid, false).\nRobot test \"Should Handle Malformed Update Component Response\"\npasses. clang-format clean, Docker CI builds cleanly.\n\nChange-Id: Ie04b385abcb86f5fb815cfddb6ec95bca053a19f\nSigned-off-by: Gary Beihl \u003cgarybeihl@microsoft.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "75a26e870124661fe8b87979bd5541b36bb96a52",
      "old_mode": 33188,
      "old_path": "fw-update/device_updater.cpp",
      "new_id": "7c021907f88ca80f6c0e41f3c0468e2cbde79770",
      "new_mode": 33188,
      "new_path": "fw-update/device_updater.cpp"
    }
  ]
}
