Automated rollback of commit a0a0d09debd090fbe74bba59b5d6d3107aaf97e9.
*** Reason for rollback ***
b/235458248
*** Original change description ***
Create a dedicated graph lookup reason for rewinding and add a wildcard to `createIfAbsentBatch` to match `getBatch`.
PiperOrigin-RevId: 453933527
Change-Id: If633aa38c86ebf17ab7d0eac16c03117a66546cb
diff --git a/src/main/java/com/google/devtools/build/skyframe/AbstractParallelEvaluator.java b/src/main/java/com/google/devtools/build/skyframe/AbstractParallelEvaluator.java
index 01e1f6b..385bd2b 100644
--- a/src/main/java/com/google/devtools/build/skyframe/AbstractParallelEvaluator.java
+++ b/src/main/java/com/google/devtools/build/skyframe/AbstractParallelEvaluator.java
@@ -989,7 +989,7 @@
}
Map<SkyKey, ? extends NodeEntry> additionalNodesToRestart =
- evaluatorContext.getBatchValues(key, Reason.REWINDING, additionalKeysToRestart);
+ evaluatorContext.getBatchValues(key, Reason.INVALIDATION, additionalKeysToRestart);
ArrayList<SkyKey> missingNodes = null;
for (SkyKey keyToRestart : additionalKeysToRestart) {
diff --git a/src/main/java/com/google/devtools/build/skyframe/InMemoryGraph.java b/src/main/java/com/google/devtools/build/skyframe/InMemoryGraph.java
index c3bf37e..1eafcdd 100644
--- a/src/main/java/com/google/devtools/build/skyframe/InMemoryGraph.java
+++ b/src/main/java/com/google/devtools/build/skyframe/InMemoryGraph.java
@@ -39,7 +39,7 @@
@Override
Map<SkyKey, ? extends NodeEntry> createIfAbsentBatch(
- @Nullable SkyKey requestor, Reason reason, Iterable<? extends SkyKey> keys);
+ @Nullable SkyKey requestor, Reason reason, Iterable<SkyKey> keys);
@Nullable
@Override
diff --git a/src/main/java/com/google/devtools/build/skyframe/InMemoryGraphImpl.java b/src/main/java/com/google/devtools/build/skyframe/InMemoryGraphImpl.java
index 6d8c9e1..be14b84 100644
--- a/src/main/java/com/google/devtools/build/skyframe/InMemoryGraphImpl.java
+++ b/src/main/java/com/google/devtools/build/skyframe/InMemoryGraphImpl.java
@@ -82,7 +82,7 @@
@Override
public Map<SkyKey, NodeEntry> createIfAbsentBatch(
- @Nullable SkyKey requestor, Reason reason, Iterable<? extends SkyKey> keys) {
+ @Nullable SkyKey requestor, Reason reason, Iterable<SkyKey> keys) {
Map<SkyKey, NodeEntry> result = CompactHashMap.createWithExpectedSize(Iterables.size(keys));
for (SkyKey key : keys) {
result.put(key, nodeMap.computeIfAbsent(key, newNodeEntryFunction));
diff --git a/src/main/java/com/google/devtools/build/skyframe/ProcessableGraph.java b/src/main/java/com/google/devtools/build/skyframe/ProcessableGraph.java
index 22e0d89..9503244 100644
--- a/src/main/java/com/google/devtools/build/skyframe/ProcessableGraph.java
+++ b/src/main/java/com/google/devtools/build/skyframe/ProcessableGraph.java
@@ -45,8 +45,7 @@
* @param reason the reason the nodes are being requested.
*/
Map<SkyKey, ? extends NodeEntry> createIfAbsentBatch(
- @Nullable SkyKey requestor, Reason reason, Iterable<? extends SkyKey> keys)
- throws InterruptedException;
+ @Nullable SkyKey requestor, Reason reason, Iterable<SkyKey> keys) throws InterruptedException;
/**
* Like {@link QueryableGraph#getBatchAsync}, except it creates a new node for each key not
diff --git a/src/main/java/com/google/devtools/build/skyframe/QueryableGraph.java b/src/main/java/com/google/devtools/build/skyframe/QueryableGraph.java
index a620d1f..d6da81d 100644
--- a/src/main/java/com/google/devtools/build/skyframe/QueryableGraph.java
+++ b/src/main/java/com/google/devtools/build/skyframe/QueryableGraph.java
@@ -53,7 +53,7 @@
*/
Map<SkyKey, ? extends NodeEntry> getBatch(
@Nullable SkyKey requestor, Reason reason, Iterable<? extends SkyKey> keys)
- throws InterruptedException;
+ throws InterruptedException;
/**
* A version of {@link #getBatch} that returns an {@link InterruptibleSupplier} to possibly
@@ -154,12 +154,6 @@
DONE_CHECKING,
/**
- * The node is being looked up so that it can be {@linkplain
- * ThinNodeEntry.DirtyType#FORCE_REBUILD force rebuilt} by rewinding.
- */
- REWINDING,
-
- /**
* The node is being looked up to service {@link WalkableGraph#getValue},
* {@link WalkableGraph#getException}, {@link WalkableGraph#getMissingAndExceptions}, or
* {@link WalkableGraph#getSuccessfulValues}.
diff --git a/src/test/java/com/google/devtools/build/skyframe/DeterministicHelper.java b/src/test/java/com/google/devtools/build/skyframe/DeterministicHelper.java
index 9d4d934..f9922b9 100644
--- a/src/test/java/com/google/devtools/build/skyframe/DeterministicHelper.java
+++ b/src/test/java/com/google/devtools/build/skyframe/DeterministicHelper.java
@@ -115,7 +115,7 @@
@Override
public Map<SkyKey, ? extends NodeEntry> createIfAbsentBatch(
- @Nullable SkyKey requestor, Reason reason, Iterable<? extends SkyKey> keys)
+ @Nullable SkyKey requestor, Reason reason, Iterable<SkyKey> keys)
throws InterruptedException {
return makeDeterministic(super.createIfAbsentBatch(requestor, reason, keys));
}
diff --git a/src/test/java/com/google/devtools/build/skyframe/DeterministicInMemoryGraph.java b/src/test/java/com/google/devtools/build/skyframe/DeterministicInMemoryGraph.java
index 29cacf9..39b9169 100644
--- a/src/test/java/com/google/devtools/build/skyframe/DeterministicInMemoryGraph.java
+++ b/src/test/java/com/google/devtools/build/skyframe/DeterministicInMemoryGraph.java
@@ -30,7 +30,7 @@
@Override
public Map<SkyKey, ? extends NodeEntry> createIfAbsentBatch(
- @Nullable SkyKey requestor, Reason reason, Iterable<? extends SkyKey> keys) {
+ @Nullable SkyKey requestor, Reason reason, Iterable<SkyKey> keys) {
try {
return super.createIfAbsentBatch(requestor, reason, keys);
} catch (InterruptedException e) {
diff --git a/src/test/java/com/google/devtools/build/skyframe/NotifyingHelper.java b/src/test/java/com/google/devtools/build/skyframe/NotifyingHelper.java
index 1426139..53a3824 100644
--- a/src/test/java/com/google/devtools/build/skyframe/NotifyingHelper.java
+++ b/src/test/java/com/google/devtools/build/skyframe/NotifyingHelper.java
@@ -17,6 +17,7 @@
import com.google.common.base.Joiner;
import com.google.common.base.MoreObjects;
import com.google.common.collect.Maps;
+import com.google.common.collect.Maps.EntryTransformer;
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
import com.google.devtools.build.lib.util.GroupedList;
import com.google.devtools.build.lib.util.GroupedList.GroupedListHelper;
@@ -54,6 +55,15 @@
protected final Listener graphListener;
+ protected final EntryTransformer<SkyKey, ThinNodeEntry, NodeEntry> wrapEntry =
+ new EntryTransformer<SkyKey, ThinNodeEntry, NodeEntry>() {
+ @Nullable
+ @Override
+ public NotifyingNodeEntry transformEntry(SkyKey key, @Nullable ThinNodeEntry nodeEntry) {
+ return wrapEntry(key, nodeEntry);
+ }
+ };
+
NotifyingHelper(Listener graphListener) {
this.graphListener = new ErrorRecordingDelegatingListener(graphListener);
}
@@ -86,7 +96,8 @@
notifyingHelper.graphListener.accept(key, EventType.GET_BATCH, Order.BEFORE, reason);
}
return Maps.transformEntries(
- delegate.getBatch(requestor, reason, keys), notifyingHelper::wrapEntry);
+ delegate.getBatch(requestor, reason, keys),
+ notifyingHelper.wrapEntry);
}
@Nullable
@@ -118,13 +129,14 @@
@Override
public Map<SkyKey, ? extends NodeEntry> createIfAbsentBatch(
- @Nullable SkyKey requestor, Reason reason, Iterable<? extends SkyKey> keys)
+ @Nullable SkyKey requestor, Reason reason, Iterable<SkyKey> keys)
throws InterruptedException {
for (SkyKey key : keys) {
notifyingHelper.graphListener.accept(key, EventType.CREATE_IF_ABSENT, Order.BEFORE, null);
}
return Maps.transformEntries(
- delegate.createIfAbsentBatch(requestor, reason, keys), notifyingHelper::wrapEntry);
+ delegate.createIfAbsentBatch(requestor, reason, keys),
+ notifyingHelper.wrapEntry);
}
@Override
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 1ff2a7d..2a7ad76 100644
--- a/src/test/java/com/google/devtools/build/skyframe/NotifyingInMemoryGraph.java
+++ b/src/test/java/com/google/devtools/build/skyframe/NotifyingInMemoryGraph.java
@@ -26,7 +26,7 @@
@Override
public Map<SkyKey, ? extends NodeEntry> createIfAbsentBatch(
- @Nullable SkyKey requestor, Reason reason, Iterable<? extends SkyKey> keys) {
+ @Nullable SkyKey requestor, Reason reason, Iterable<SkyKey> keys) {
try {
return super.createIfAbsentBatch(requestor, reason, keys);
} catch (InterruptedException e) {