)]}'
{
  "commit": "8b0cc1baa274f7e575cdf1e2c3103879ad26027b",
  "tree": "d4f6fa99bafcfa3d9a2c5ab064fc70b3b762112a",
  "parents": [
    "829224cf5986866060e3628b6b19e160bae72588"
  ],
  "author": {
    "name": "Yun Peng",
    "email": "pcloudy@google.com",
    "time": "Wed Aug 12 14:36:01 2026 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Aug 12 14:36:01 2026 +0200"
  },
  "message": "Fix Linux VM image creation and handle gcloud SQLite concurrency collisions (#2769)\n\n### Summary of Changes\n\n1. **`buildkite/create_images.py`**:\n- Use machine type `c4a-standard-8` for the `bk-testing-docker-arm64`\nimage builder VM. Local SSDs (`-lssd`) are ephemeral, not captured in\ncustom GCE images, and caused capacity stockouts\n(`ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS`) in `us-central1`.\n\n2. **`buildkite/gcloud.py`**:\n- Add automatic retry for transient `gcloud crashed (OperationalError)`\n/ SQLite schema migration collisions when multiple threads invoke\n`gcloud` concurrently.\n- Example failure:\nhttps://buildkite.com/bazel-trusted/create-linux-vm-image/builds/43#019ff552-6791-4b7a-95c4-2c7c882bcfd5",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "81a923ef1a5cc681e2e89f8f7e757d4aa8c4caf6",
      "old_mode": 33261,
      "old_path": "buildkite/create_images.py",
      "new_id": "b0dfd933aa280ba95319ddbeea0dae9e0d7185e6",
      "new_mode": 33261,
      "new_path": "buildkite/create_images.py"
    },
    {
      "type": "modify",
      "old_id": "6d8b585c96c0160d2f6aa3566fde02526c337236",
      "old_mode": 33261,
      "old_path": "buildkite/gcloud.py",
      "new_id": "f55f53ea71a4527b1e012b72e69e16b86fc0d4c3",
      "new_mode": 33261,
      "new_path": "buildkite/gcloud.py"
    }
  ]
}
