)]}'
{
  "commit": "8b8a2e65913081e7bc930dc56edfb0aa2db59738",
  "tree": "5f35c525f135034f981755d37f933f2455009114",
  "parents": [
    "ad4957a216f057e684bb24ef5ce61d300759775e"
  ],
  "author": {
    "name": "Ian (Hee) Cha",
    "email": "heec@google.com",
    "time": "Wed Sep 30 21:43:38 2026 +0000"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Sep 30 21:43:38 2026 +0000"
  },
  "message": "[9.3.0] Bust caches for rewound actions (#31300) (#31420)\n\n### Description\n\nWhen an action is rewound, it needs to bust both intra-build Bazel\ncaches as well as remote caches to ensure that the rewinding is\neffective:\n\n* When a remote cache doesn\u0027t verify that the `ActionResult`s it returns\nreference existing CAS blobs, rewinding can get into a loop and fail\nwhen the maximum number of retries is exhausted.\n`knownMissingCasDigests` handled this for build rewinding, but by design\ncan\u0027t accommodate intra-build recovery (as observed in\nhttps://github.com/bazelbuild/bazel/pull/31251). Instead, just disable\nremote caching for rewound actions until a better signal is available\n(see the TODOs and https://github.com/bazelbuild/remote-apis/pull/386).\n* Bazel\u0027s upload deduplication and caching could result in an action\nthat\u0027s been rewound multiple times not reuploading its local outputs.\nSuch caches and deduplication are now ignored for rewound actions.\n\n`LostInputsEvent` and `knownMissingCasDigests` remain in use only for\nthe legacy whole-invocation retry path when action rewinding is\ndisabled. The extra wiring required to propagate `LostInputsEvent` for a\nrewound action has been removed.\n\n### Motivation\n\n### Build API Changes\n\nNo\n\n### Checklist\n\n- [x] I have added tests for the new use cases (if any).\n- [ ] I have updated the documentation (if applicable).\n\n### Release Notes\n\nRELNOTES: None\n\nCloses #31300\n\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/bazelbuild/bazel/pull/31300\nfrom fmeum:fix-missing-cas-digest-lifecycle\n9055476e5fb1a2af007bb6d33077af4b7099fe44 PiperOrigin-RevId: 990587446\nChange-Id: I8e14f5bea2fbfb584756e7e16ccd925f8d57c945\n\n\u003c!--\nThank you for contributing to Bazel!\nPlease read the contribution guidelines: https://bazel.build/contribute\n--\u003e\n\n### Description\n\u003c!--\nPlease provide a brief summary of the changes in this PR.\n--\u003e\n\n### Motivation\n\u003c!--\nWhy is this change important? Does it fix a specific bug or add a new\nfeature?\nIf this PR fixes an existing issue, please link it here (e.g. \"Fixes\n#1234\").\n--\u003e\n\n### Build API Changes\n\u003c!--\nDoes this PR affect the Build API? (e.g. Starlark API, providers,\ncommand-line flags, native rules)\nIf yes, please answer the following:\n1. Has this been discussed in a design doc or issue? (Please link it)\n2. Is the change backward compatible?\n3. If it\u0027s a breaking change, what is the migration plan?\n--\u003e\n\nNo\n\n### Checklist\n\n- [ ] I have added tests for the new use cases (if any).\n- [ ] I have updated the documentation (if applicable).\n\n### Release Notes\n\n\u003c!--\nIf this is a new feature, please add \u0027RELNOTES[NEW]: \u003cdescription\u003e\u0027\nhere.\nIf this is a breaking change, please add \u0027RELNOTES[INC]: \u003creason\u003e\u0027 here.\nIf this change should be mentioned in release notes, please add\n\u0027RELNOTES: \u003creason\u003e\u0027 here.\n--\u003e\n\nRELNOTES: None\n\nCommit\nhttps://github.com/bazelbuild/bazel/commit/f653dd6d08351de86caafc684af6ed6abc975df8\n\nCo-authored-by: Fabian Meumertzheim \u003cfabian@meumertzhe.im\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "384b4cdfd946a13bc045b3b5ce6c82f1dc099f9a",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/remote/ChunkedBlobUploader.java",
      "new_id": "13de1810c56f72a38a32345f446527ddc970c7bf",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/remote/ChunkedBlobUploader.java"
    },
    {
      "type": "modify",
      "old_id": "27f56a9e4eeb6ef9ed8fafec1108f13741fad9ca",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/remote/CombinedCache.java",
      "new_id": "f6e353b6657c41d796251903a492ac50e8b47c13",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/remote/CombinedCache.java"
    },
    {
      "type": "modify",
      "old_id": "19b902c146206123dcd55257f023f06b1221c222",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/remote/RemoteActionContextProvider.java",
      "new_id": "a8efcc0a722568b8846fb3b41c0bcea7a8b29bb9",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/remote/RemoteActionContextProvider.java"
    },
    {
      "type": "modify",
      "old_id": "42d0a7a67ce8bb722c6882e89e36c16d40a9182c",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/remote/RemoteExecutionService.java",
      "new_id": "e0f56e64efdaf0b39a3032a4163b74a59b946aad",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/remote/RemoteExecutionService.java"
    },
    {
      "type": "modify",
      "old_id": "954018b8f9e8a254731835825fb2f54441fd41b1",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/remote/RemoteModule.java",
      "new_id": "633cae1f61fe7a2e913a68939a9b4e426e0ad5a3",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/remote/RemoteModule.java"
    },
    {
      "type": "modify",
      "old_id": "0bdc1ce366775a8562ffa76005d21210c9e2e545",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/remote/RemoteRepoContentsCacheImpl.java",
      "new_id": "c389493266a69765d1f06e70cff673ad521d6829",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/remote/RemoteRepoContentsCacheImpl.java"
    },
    {
      "type": "modify",
      "old_id": "220e7711e7eae9193b0fd7f0a7880f1227e4557f",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/remote/UploadManifest.java",
      "new_id": "0a70fca3a7f4f63c76e940a5e6882b4b04047b02",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/remote/UploadManifest.java"
    },
    {
      "type": "modify",
      "old_id": "d31e9135322c9aa57a8b4997a1351f4cfec4526c",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/BUILD",
      "new_id": "9c1919bce804bca239983b6856827ecf69bf3f76",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/BUILD"
    },
    {
      "type": "modify",
      "old_id": "cb297c2de35cde880ef6389fee164f6c8801fc67",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/ProgressSuppressingEventHandler.java",
      "new_id": "3fbcff1c8fd1bd275683c756784caa1ff45a5dcd",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/ProgressSuppressingEventHandler.java"
    },
    {
      "type": "modify",
      "old_id": "8194c8a477cf15920ebbc4a0b98ebbe7426ef0b3",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java",
      "new_id": "93059abc7288abd14a06c34fb41495ec6a90db3b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java"
    },
    {
      "type": "modify",
      "old_id": "ef4d0a938578a2e36324a4b83ecd619be17bbb7d",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java",
      "new_id": "d0891375b2bfa8df504642c793ed7f7a2f05abe6",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java"
    },
    {
      "type": "modify",
      "old_id": "a7b46d08ebf69b21098acf6782011d64979404ce",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/rewinding/ActionRewindStrategy.java",
      "new_id": "a035a89cb3b550f14a9e11608beccae99b5f000b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/rewinding/ActionRewindStrategy.java"
    },
    {
      "type": "modify",
      "old_id": "59a3f2e19b9e420c5a66837f7fcb4583f92f0f3b",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/remote/BUILD",
      "new_id": "95f39f2839bcea0c5482e4393e45f8d0aba4cf29",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/remote/BUILD"
    },
    {
      "type": "modify",
      "old_id": "f0e081b66fdf5e89adffd298f3baa9850ff149f1",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/remote/BuildWithoutTheBytesIntegrationTest.java",
      "new_id": "58e12dcb402eb2d4424a7b3352f24c00772b6f6e",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/remote/BuildWithoutTheBytesIntegrationTest.java"
    },
    {
      "type": "modify",
      "old_id": "496c442c53c80f10f6ace16bf467ecb3ec64ffaf",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/remote/ChunkedBlobUploaderTest.java",
      "new_id": "9a3548adf6a1148eef3b8b381e9714a2713f1fe7",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/remote/ChunkedBlobUploaderTest.java"
    },
    {
      "type": "modify",
      "old_id": "43c19a2b2e547b550407451c30bc1c5231e74270",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/remote/ChunkedTransferBenchmark.java",
      "new_id": "88d364a15bd9c6bc38439306f4b98d69e3fb8beb",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/remote/ChunkedTransferBenchmark.java"
    },
    {
      "type": "modify",
      "old_id": "aad63451772d7b60e69ebc3b897c70d83dd38984",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/remote/GrpcCacheClientTest.java",
      "new_id": "12d0e3680063f82e829150b381196b15e6d09d9b",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/remote/GrpcCacheClientTest.java"
    },
    {
      "type": "modify",
      "old_id": "4c3a423e7e56095684e9c740e3d80338b41f5bcf",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/remote/RemoteExecutionServiceTest.java",
      "new_id": "6e5304d85833088950de983e1e08ae838af0c900",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/remote/RemoteExecutionServiceTest.java"
    },
    {
      "type": "modify",
      "old_id": "bf0d0c1cbaccd210a5170d37d6bfddea780e11fb",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnCacheTest.java",
      "new_id": "8cafcf947a136ddad7939af7abcc4d49265bb929",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnCacheTest.java"
    },
    {
      "type": "modify",
      "old_id": "b485d13e5b69327436b37266764ba9a6aab365cf",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnRunnerTest.java",
      "new_id": "af2d2ac905c3bb10b278619844aec555c4bbf7d8",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnRunnerTest.java"
    },
    {
      "type": "modify",
      "old_id": "e3acde4dd76d8970128c5cfc50a83eac79977ef3",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnRunnerWithGrpcRemoteExecutorTest.java",
      "new_id": "c6d90de11a9bb8d52700e437f032f1364a3a0f2f",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnRunnerWithGrpcRemoteExecutorTest.java"
    },
    {
      "type": "modify",
      "old_id": "472b48ba478979061e79a9264574d5c073c6c0f2",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/remote/util/IntegrationTestUtils.java",
      "new_id": "2d80be1bf8a750016246247840a1d97f3efb155f",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/remote/util/IntegrationTestUtils.java"
    },
    {
      "type": "modify",
      "old_id": "45c7186c37e9404d70967b2de9987f07a0b11b41",
      "old_mode": 33188,
      "old_path": "src/tools/remote/src/main/java/com/google/devtools/build/remote/worker/ExecutionServer.java",
      "new_id": "3caa2a1f649109ccf7cdb552df3a1f7a5325eded",
      "new_mode": 33188,
      "new_path": "src/tools/remote/src/main/java/com/google/devtools/build/remote/worker/ExecutionServer.java"
    }
  ]
}
