)]}'
{
  "commit": "8989e19ab957a18f4937531dd55b5c30b207e6df",
  "tree": "aa9c24c56059ae4b33fb484b7499b68d16127eaa",
  "parents": [
    "de48d7d8cf0fe3d87e348e74e10506d160495428"
  ],
  "author": {
    "name": "ulfjack",
    "email": "ulfjack@google.com",
    "time": "Thu Apr 20 13:45:25 2017 +0200"
  },
  "committer": {
    "name": "Klaus Aehlig",
    "email": "aehlig@google.com",
    "time": "Thu Apr 20 15:39:11 2017 +0200"
  },
  "message": "Rewrite repository lookup to return a failed value rather than throw\n\nWe need to lookup repositories as part of converting exec paths to artifacts,\nwhich in turn is needed for action cache lookups. These lookups should not\ncause a Skyframe exit, so we must not throw an exception here, unless the\nerror makes it impossible to continue. Instead, we need to leave the decision\nwhether to error out or not to the caller.\n\nNote that we may unnecessarily fetch a remote repository in order to do the\naction cache lookup, even if the action no longer depends on the input file,\nalthough this should only be possible for C++ compile actions. It\u0027s possible\nthat there\u0027s another bug in the C++ compile action key computation that also\ncontributes.\n\nThis change also makes it so that the post-resolution action cache code\nignores any errors wrt. repository lookup rather than throwing. If any of the\npaths could not be found, then the action cache lookup fails and we re-execute\nthe corresponding action, which is exactly what should happen.\n\nFixes #2759.\n\nPiperOrigin-RevId: 153696243\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b5d6c1ce62b714b623a482eb4c4527701bd603e6",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/actions/ActionCacheChecker.java",
      "new_id": "a7f0b82fa113df8d3e3dedee9954737eb932ef41",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/actions/ActionCacheChecker.java"
    },
    {
      "type": "modify",
      "old_id": "ddeb00133925a3794ba474e78c2b7f61ea00626b",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/actions/ArtifactFactory.java",
      "new_id": "2a1f6634cc60a7d121c50d517c07a8cc20bea730",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/actions/ArtifactFactory.java"
    },
    {
      "type": "modify",
      "old_id": "7bb3b01139117fb12d4441470f2d40607497389f",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/actions/ArtifactResolver.java",
      "new_id": "3af6cb914360c569342e1b92ee49f6e402a71ec7",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/actions/ArtifactResolver.java"
    },
    {
      "type": "delete",
      "old_id": "d93b7b9f336f1785a03fec80fec743f7e1902a1c",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/actions/PackageRootResolutionException.java",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "2b7a3ca4d50f73c24127f9449c2cc89ddeb47363",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/actions/PackageRootResolver.java",
      "new_id": "35a795ae55d529c5c8b7ca840da8fcf4c5091640",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/actions/PackageRootResolver.java"
    },
    {
      "type": "modify",
      "old_id": "0a411355814fca823e31d9830a102516ae426cd1",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/SkyframePackageRootResolver.java",
      "new_id": "9a9eee3af897fe6b6b64543f3f725fc3c6da8163",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/SkyframePackageRootResolver.java"
    },
    {
      "type": "modify",
      "old_id": "91b2226c49dfe7162ea67da4bbcf06f2c6d58abc",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java",
      "new_id": "1d340cde2de788f1eb18988bd45ed8222a01a7b9",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java"
    },
    {
      "type": "modify",
      "old_id": "259950beda743276c29ae3345c29f9ca8f3fd6bf",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java",
      "new_id": "1cafeb7e0874a07de7bef99c74831a320aa5c5f2",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java"
    },
    {
      "type": "modify",
      "old_id": "cb0d0ab48a0052842a663bdc0f819800a7aa8bfd",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDirectoryValue.java",
      "new_id": "4d073d5b1c1679c9a74a0b54b9d446f95eef693f",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDirectoryValue.java"
    },
    {
      "type": "modify",
      "old_id": "c6040de671b12b08d09c63d1c31448b723c3737a",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryLoaderFunction.java",
      "new_id": "ad0e5abb1514738c5918b9f7aaa31c4176690eea",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryLoaderFunction.java"
    },
    {
      "type": "modify",
      "old_id": "908e6c5a9b07bc67e8b6b1531706f7e5e01aa1a5",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java",
      "new_id": "213ceecc91cf36c48ed02d26350222d9b5c2ec9e",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java"
    },
    {
      "type": "modify",
      "old_id": "0b7eaf9d7d5d6856844a7d508f00b6a6414b2c6a",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/EnvironmentBackedRecursivePackageProvider.java",
      "new_id": "10e4ace233ace0cd337d5f16b7d435ac90862845",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/EnvironmentBackedRecursivePackageProvider.java"
    },
    {
      "type": "modify",
      "old_id": "a64372d6b1ad5778fc0f3c667c04c056618d0c9c",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/GraphBackedRecursivePackageProvider.java",
      "new_id": "b5ba1da184b68256683898f14ae1f228ebbc4e7a",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/GraphBackedRecursivePackageProvider.java"
    },
    {
      "type": "modify",
      "old_id": "f848a9032574c436f2403c1b2450a61e2725aa16",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java",
      "new_id": "0b7afce7b69aad965e8522493e3cdf47aa33c83c",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java"
    },
    {
      "type": "modify",
      "old_id": "2723c6aa21b524ca65305e5d4b38d312893ac00f",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupFunction.java",
      "new_id": "e427c340857d553c22e34d28a9d5f4633f042497",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupFunction.java"
    },
    {
      "type": "modify",
      "old_id": "7db3a2abddb00a5e18a7e378e0577a378e4456cf",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupValue.java",
      "new_id": "5ed0e55e5ce62304bf6f4b2bc922e5f4a5182c63",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupValue.java"
    },
    {
      "type": "modify",
      "old_id": "3b4b7687933ea38805ced7e73ee70b0b912bdfbf",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternFunction.java",
      "new_id": "a4a3b1bda8702f344c987c66fe2dad7eba5c22c9",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternFunction.java"
    },
    {
      "type": "modify",
      "old_id": "cc055ab512e0c328496f128c9eae514fb9e060aa",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/RepositoryValue.java",
      "new_id": "575c2a2d869c0a74407a8a78d4642d0d867520fc",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/RepositoryValue.java"
    },
    {
      "type": "modify",
      "old_id": "09072e3fb74d8cd31165fb012608b229de44643b",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java",
      "new_id": "d93fd76669e7b567ccc29b881ff81a0a2065a262",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java"
    },
    {
      "type": "modify",
      "old_id": "dfc2657aa72b8c2f6a237c3bea0cb10bf1e88b3b",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java",
      "new_id": "b4114029eaed788a3fcfa4f84d4d5111ebaa4fbc",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java"
    },
    {
      "type": "modify",
      "old_id": "40c0f94771517687aff0d7b9f312faab7865126f",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/actions/ArtifactFactoryTest.java",
      "new_id": "e9bb9b335fdee05406ecb198b9e4a81873a3db5b",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/actions/ArtifactFactoryTest.java"
    },
    {
      "type": "modify",
      "old_id": "6d2f190cfd3994fe9a4db321b3e447d153a7c320",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/skyframe/ASTFileLookupFunctionTest.java",
      "new_id": "72603e82e56b722929161ddaf9a9e8b1d3de0494",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/skyframe/ASTFileLookupFunctionTest.java"
    },
    {
      "type": "modify",
      "old_id": "3f2d91a612589d6977fa0a632b9d819e96912f22",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java",
      "new_id": "52dcc451a6cd3f7a9b1cf6800d9f680d7cc0c4ea",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java"
    },
    {
      "type": "modify",
      "old_id": "de313e2883bf5f8ef764d882fa6cce0d23bf2318",
      "old_mode": 33261,
      "old_path": "src/test/shell/bazel/cross_repository_test.sh",
      "new_id": "9fad3c52325155de0c3b4f7844d13be738d921ee",
      "new_mode": 33261,
      "new_path": "src/test/shell/bazel/cross_repository_test.sh"
    }
  ]
}
