aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java
diff options
context:
space:
mode:
authorGravatar Janak Ramakrishnan <janakr@google.com>2015-09-30 18:23:03 +0000
committerGravatar Florian Weikert <fwe@google.com>2015-09-30 23:45:45 +0000
commitc2c123e544d99a0bfd01a83a0b8e8b64363ca72f (patch)
treeaf2f10c5c30b51ae7a28a3daef144628c08e9bfd /src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java
parent70af6fe41b9be75768ba410b47cd513014e15c28 (diff)
Add debugging info for crash during maybeMarkRebuilding.
-- MOS_MIGRATED_REVID=104316416
Diffstat (limited to 'src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java')
-rw-r--r--src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java20
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);
}