)]}'
{
  "commit": "6592dc8d7ebf9e6800ab4f08f6466ddb267ff98b",
  "tree": "c2250909fff2984204b9d6704d3c1cf096d3540a",
  "parents": [
    "9aff7e4a2ca4b79cd7b55a8605eba048ac245a9f"
  ],
  "author": {
    "name": "Baicheng Zong",
    "email": "baichengz@google.com",
    "time": "Fri May 01 21:01:45 2026 +0000"
  },
  "committer": {
    "name": "Baicheng Zong",
    "email": "baichengz@google.com",
    "time": "Wed May 06 15:09:03 2026 -0700"
  },
  "message": "TH scripts improvments for resolving SHM issue\n\nKey Changes\n1. Logic Migration\nMSV Scripts: Removed SHM (Shared Memory) removal and IPMI restart operations from MSV scripts, including pre-rm and postinstall.\nTH Scripts: Centralized these operations within the TH post-processing scripts:\nemmc-available-postprocessing\nemmc-unavailable-postprocessing\n2. TH Upgrade Scenario Logic\nOperations are abstracted into a transition model between TH1 (old version/list) and TH2 (new version/list):\n\nFirst-time Onboarding: TH1 (empty) → TH2\nRemoval: TH1 → TH2 (empty)\nUpgrade/Downgrade: TH1 → TH2\n\n3. eMMC run-time availability status change logic\navailable → unavailable: Similar logic as TH1 -\u003e TH2 (empty), but keep TH package existing in the system for both eMMC and /var/google.\nunavailable → available: Similar logic as TH1 (empty) -\u003e TH2, but without copying/pasting work for TH packages\nPrerequisite for Execution: When either TH1 or TH2 includes bmcweb daemons, the following sequence is triggered (if bmcweb is not included in both TH, the following logic will be skipped):\n\nClear SHM.\nRestart all daemons (Union of TH1 and TH2).\nRestart IPMI.\n\n4. Previous block-override.conf has been discarded and the new content has been updated through recipes-google/true-hitless/true-hitless/true-hitless-initialize.sh.\n\nNew content: \"[Unit]\nConditionPathExists\u003d|/run/true-hitless/emmc-available-postprocessing-complete\nConditionPathExists\u003d|/run/true-hitless/emmc-unavailable-postprocessing-complete\"\n\nDiff: 1. removed After\u003demmc-available-postprocessing so that we can restart TH daemons inside of emmc-available-postprocessing. 2. added ConditionPathExists\u003d|/run/true-hitless/emmc-unavailable-postprocessing-complete constrain to avoid double initialization when eMMC is unavailable since reboot.\n\nPlatforms-Affected: EMR, GF\nTested: Detailed tested steps is in cl/908884346. Will also be tested through TH nightly/weekly test suite\nGoogle-Bug-Id: 492591099\nFusion-Link: fusion2  https://fusion2.corp.google.com/3a1ed5b5-ddce-4667-8687-a939dff5aff6 , tested experimental package - https://msvbrowse.corp.google.com/versionz?hash\u003d1-713fb0f5_7f3d8598_4fd97d78_52e0eb86_f812b17b_a8707ec0_3ee9b308_d2df21c6\nChange-Id: I7dc047d8cd2dd996d70c47e87c54d8dd9b75b979\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "caae6fc8218ae2750fb9312f051ede00ca0f9139",
      "old_mode": 33188,
      "old_path": "recipes-google/true-hitless/true-hitless/emmc-services-restart.sh",
      "new_id": "16eceb7089239b1ee554f11f814b82429ab1f519",
      "new_mode": 33188,
      "new_path": "recipes-google/true-hitless/true-hitless/emmc-services-restart.sh"
    },
    {
      "type": "modify",
      "old_id": "5bde297a01d77e2265d56e3a0f25f5fdac8d0229",
      "old_mode": 33188,
      "old_path": "recipes-google/true-hitless/true-hitless/emmc-true-hitless-disable.sh",
      "new_id": "7761408a617a94707afb27f80435e4e43f8ef236",
      "new_mode": 33188,
      "new_path": "recipes-google/true-hitless/true-hitless/emmc-true-hitless-disable.sh"
    },
    {
      "type": "modify",
      "old_id": "80ecffce1bbcddc2e277464d6678cbd2e970c18a",
      "old_mode": 33188,
      "old_path": "recipes-google/true-hitless/true-hitless/emmc-true-hitless-enable.sh",
      "new_id": "15689871c34581e0c0e80b3ff59ec8c29331526f",
      "new_mode": 33188,
      "new_path": "recipes-google/true-hitless/true-hitless/emmc-true-hitless-enable.sh"
    },
    {
      "type": "modify",
      "old_id": "c7da3460fd69d7a5d04aedf37a6fe6f3afc8853d",
      "old_mode": 33188,
      "old_path": "recipes-google/true-hitless/true-hitless/true-hitless-initialize.sh",
      "new_id": "97664bbd9c5a659d7bd0e65fa61e0211b7f24117",
      "new_mode": 33188,
      "new_path": "recipes-google/true-hitless/true-hitless/true-hitless-initialize.sh"
    },
    {
      "type": "modify",
      "old_id": "2a08d36f92ae7b2bb5b9f4e7a596ac40ea4428dc",
      "old_mode": 33188,
      "old_path": "recipes-google/true-hitless/true-hitless/true-hitless-status-update.sh",
      "new_id": "c12a0fef666a58c6acc9bd1773f7914a6de5d847",
      "new_mode": 33188,
      "new_path": "recipes-google/true-hitless/true-hitless/true-hitless-status-update.sh"
    }
  ]
}
