aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com
diff options
context:
space:
mode:
authorGravatar Janak Ramakrishnan <janakr@google.com>2015-04-13 16:07:16 +0000
committerGravatar Philipp Wollermann <philwo@google.com>2015-04-14 14:30:47 +0000
commitb8eed8aa039f8ad06c09c00caec8999f589ccd27 (patch)
tree4d44c84aca3f48ad749f2527f458df4bbcc95adc /src/test/java/com
parentf5c6097be39e38822b48a685547fbefca47b6f14 (diff)
Fix race when two shared actions don't know about each other until after they have started executing in SkyframeActionExecutor.
We were updating the action cache for both actions in this case, but one of the actions' metadata handler was not updated during execution, and thus it had no metadata for outputs. -- MOS_MIGRATED_REVID=90993813
Diffstat (limited to 'src/test/java/com')
-rw-r--r--src/test/java/com/google/devtools/build/skyframe/NotifyingInMemoryGraph.java7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/skyframe/NotifyingInMemoryGraph.java b/src/test/java/com/google/devtools/build/skyframe/NotifyingInMemoryGraph.java
index 58e24974b4..49128ca91d 100644
--- a/src/test/java/com/google/devtools/build/skyframe/NotifyingInMemoryGraph.java
+++ b/src/test/java/com/google/devtools/build/skyframe/NotifyingInMemoryGraph.java
@@ -64,6 +64,7 @@ public class NotifyingInMemoryGraph extends InMemoryGraph {
SET_VALUE,
MARK_DIRTY,
IS_CHANGED,
+ GET_VALUE_WITH_METADATA,
IS_DIRTY
}
@@ -124,5 +125,11 @@ public class NotifyingInMemoryGraph extends InMemoryGraph {
graphListener.accept(myKey, EventType.IS_DIRTY, Order.BEFORE, this);
return super.isDirty();
}
+
+ @Override
+ public ValueWithMetadata getValueWithMetadata() {
+ graphListener.accept(myKey, EventType.GET_VALUE_WITH_METADATA, Order.BEFORE, this);
+ return super.getValueWithMetadata();
+ }
}
}