)]}'
{
  "commit": "b442fca8156c68eeb93ebce454dee9c5faf44044",
  "tree": "e5afc369efe84a32ca8f71f4cb5aae906eac94da",
  "parents": [
    "82e6b6a3b9589b93f4abcf3eb0f14cd1d50008ff"
  ],
  "author": {
    "name": "ajurkowski",
    "email": "ajurkowski@google.com",
    "time": "Mon Jul 06 10:27:35 2020 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Mon Jul 06 10:28:56 2020 -0700"
  },
  "message": "Add a warning when shared actions detection can be producing a false positive.\n\nShared actions detection is based on the action key -- if 2 actions have the\nsame key, we will consider them equal. The problem is that we cannot reliably\nconstruct the action key for actions which have tree artifact inputs.\n\nExample:\n\n```\nargs \u003d ctx.actions.args()\nargs.add_all([tree_artifact], map_each\u003dfunction, expand_directories\u003dTrue)\naction \u003d ctx.actions.run(arguments\u003d[args], ...)\n```\n\nFor such action, we will constuct the key by running `function` on the\ndirectory itself (rather than expanded contents of it). This means that for 2\nactions with equal inputs and different functions, as long as their result is\nthe same when called for the directory, we will consider them equal. Please\nnote that it does not imply that their result for files within the directory\nare actually the same.\n\nAs a result of that problem, we may falsly share an action and proceed with a\nbuild which should otherwise fail. In order to aid the users in debugging\nissues (like non-determinism) of such builds, add a warning about the potential\nproblem.\n\nPiperOrigin-RevId: 319805921\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "359df27871d87cc1f2603146fac0f522529d459a",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/actions/Actions.java",
      "new_id": "52eb3c4e98b91eca181ff24b71374cbdb24ae339",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/actions/Actions.java"
    },
    {
      "type": "modify",
      "old_id": "dadad155e6654bf6416cbb1837e5d0ebaddba323",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/actions/MapBasedActionGraph.java",
      "new_id": "573948a1eba8d3a275672764c9c838cf58c5816a",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/actions/MapBasedActionGraph.java"
    },
    {
      "type": "modify",
      "old_id": "4990310c5dcb3b3252c785b725bd20a140eaf268",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/ConfiguredAspect.java",
      "new_id": "b9d5bdd9f3e35cf8ea001adb4f846d504590e762",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/ConfiguredAspect.java"
    },
    {
      "type": "modify",
      "old_id": "bac52e52c1ccdfc0b7962b94a25c021b30ae99ad",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java",
      "new_id": "5b188df05fbd09b24df1ed6a2c61f5a360ece236",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java"
    },
    {
      "type": "modify",
      "old_id": "f07216e4f98ec45e0a63a7fd6bf1514112cbdb2c",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/test/CoverageReportActionFactory.java",
      "new_id": "620bc8b9f62c079f0ffe2ac352c9889b42096d8b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/test/CoverageReportActionFactory.java"
    },
    {
      "type": "modify",
      "old_id": "cb6c676cdca1b4125b943554d7aec847adf5868b",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/bazel/coverage/CoverageReportActionBuilder.java",
      "new_id": "4de03915a59e797e2396700916eab6621115a3c3",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/bazel/coverage/CoverageReportActionBuilder.java"
    },
    {
      "type": "modify",
      "old_id": "2cf032d7c3d93a4ebbdf38adc4591641d5bd1e5b",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunction.java",
      "new_id": "45d2bbc27046e453f39f65f54fec5f4b58640a9a",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunction.java"
    },
    {
      "type": "modify",
      "old_id": "6b6ce3266427a95c10378579eea3848bbbe5f473",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/ArtifactConflictFinder.java",
      "new_id": "c7196f2604a8e92c8db41c37c4546558fd333e27",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/ArtifactConflictFinder.java"
    },
    {
      "type": "modify",
      "old_id": "72ec5c66ed48f799d33088c389fa4e2b552480a4",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/BUILD",
      "new_id": "012bd2f47deadf7771c96f2e4a6808302b5bc42e",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/BUILD"
    },
    {
      "type": "modify",
      "old_id": "221e973148b066e2268b878d02f3c3a4f0c0fc83",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/BuildInfoCollectionFunction.java",
      "new_id": "a0807da9712d6ee5b748178fb6f89288e2b2c1d7",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/BuildInfoCollectionFunction.java"
    },
    {
      "type": "modify",
      "old_id": "ac310f4e5cd88c7d67ad93cddab6e224559fccf2",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java",
      "new_id": "0f4fc6a20c3b006d3828488a2c7af0b6a69a21ac",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java"
    },
    {
      "type": "modify",
      "old_id": "dc5dfd5238099203743aba96b9e31c571d15197d",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/CoverageReportFunction.java",
      "new_id": "9ab1e70b92be3ad35e3226fdeec7480ed43abbb9",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/CoverageReportFunction.java"
    },
    {
      "type": "modify",
      "old_id": "0aa28088c119688d057b19ebceee35e2331fb909",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java",
      "new_id": "552945588a94c2f1a3b0c41e8751ede958506a86",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java"
    },
    {
      "type": "modify",
      "old_id": "c5f2e7f25ba3ced9df8e73251c0025b0bf8ab309",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/actions/ArtifactFactoryTest.java",
      "new_id": "f0a80e3cff2642ab6e707633d48ee35c55d0dcb5",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/actions/ArtifactFactoryTest.java"
    },
    {
      "type": "modify",
      "old_id": "bdf925bb1a547a98b40c4da64798d5c969b1d36f",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/actions/ArtifactTest.java",
      "new_id": "9a3ae83de6252cbb46d7f792df7912eeac7e6acc",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/actions/ArtifactTest.java"
    },
    {
      "type": "modify",
      "old_id": "601a412535d7b70c124e61a117efb0a2ee811f01",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/actions/FailActionTest.java",
      "new_id": "4eabbd3f08cf2e9b33926b87a32cb6b695a8024e",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/actions/FailActionTest.java"
    },
    {
      "type": "modify",
      "old_id": "fac6aa994b8de10318a4ac8f650e48ca0d60d7ae",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/actions/MapBasedActionGraphTest.java",
      "new_id": "324ee47630f0885d60ecd0ee5d04f5e6cb4fa9ca",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/actions/MapBasedActionGraphTest.java"
    },
    {
      "type": "modify",
      "old_id": "9e2069459d8661e3047d18bfc19e8e4df73b7fc4",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java",
      "new_id": "e962a0b6e200488566e8f429a50e9da4537e5ccb",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java"
    },
    {
      "type": "modify",
      "old_id": "d542c521e9e5748578fcae179a180db289229629",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java",
      "new_id": "9ff385ed7d1b0a616a0eb4ea5c4458e180b4cfd4",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java"
    },
    {
      "type": "modify",
      "old_id": "a6e7c5b3a11f909755b09bde32a143f0551b50dc",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutorTest.java",
      "new_id": "7806bed7679daafb28061288d5ff9e7c816c51ee",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutorTest.java"
    },
    {
      "type": "modify",
      "old_id": "e3f37abe0ec8aa6fc654fde60de213d148930b04",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java",
      "new_id": "e03bd04bd30447d98b71a7ca39a94f65908dafb2",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java"
    },
    {
      "type": "modify",
      "old_id": "dc4a43d429028d8b1ad95d76ea8e1d52b884159b",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactBuildTest.java",
      "new_id": "3315e6720b818c067a44e555bd0b3b20a07432fa",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactBuildTest.java"
    },
    {
      "type": "modify",
      "old_id": "c158fc9683d17799cf7909c919d73f90ee158ac4",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java",
      "new_id": "8816189ebab614c372111baa6fac4f2fdeabc046",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java"
    }
  ]
}
