diff options
author | Janak Ramakrishnan <janakr@google.com> | 2015-09-30 18:23:03 +0000 |
---|---|---|
committer | Florian Weikert <fwe@google.com> | 2015-09-30 23:45:45 +0000 |
commit | c2c123e544d99a0bfd01a83a0b8e8b64363ca72f (patch) | |
tree | af2f10c5c30b51ae7a28a3daef144628c08e9bfd /src/main/java/com/google/devtools/build | |
parent | 70af6fe41b9be75768ba410b47cd513014e15c28 (diff) |
Add debugging info for crash during maybeMarkRebuilding.
--
MOS_MIGRATED_REVID=104316416
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r-- | src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java b/src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java index 6c080f4b38..850b12495c 100644 --- a/src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java +++ b/src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java @@ -599,13 +599,19 @@ public final class ParallelEvaluator implements Evaluator { if (entry.isDirty() && entry.getDirtyState() != DirtyState.REBUILDING) { Collection<SkyKey> depsToRemove = entry.markRebuildingAndGetAllRemainingDirtyDirectDeps(); Map<SkyKey, NodeEntry> depsToClearFrom = graph.getBatch(depsToRemove); - Preconditions.checkState( - depsToRemove.size() == depsToClearFrom.size(), - "%s %s: %s %s", - key, - entry, - depsToRemove, - depsToClearFrom); + if (depsToClearFrom.size() != depsToRemove.size()) { + throw new IllegalStateException( + "At least one dep of a dirty node wasn't present in the graph: " + + Sets.difference(ImmutableSet.copyOf(depsToRemove), depsToClearFrom.keySet()) + + " for " + + key + + " with entry " + + entry + + ". Sizes: " + + depsToRemove.size() + + ", " + + depsToClearFrom.size()); + } for (NodeEntry depEntry : depsToClearFrom.values()) { depEntry.removeReverseDep(key); } |