Tolerate null dirtyBuildingState when rewinding

Rewinding (and only rewinding) uses DirtyType.FORCE_REBUILD when marking
a node dirty. Rewinding may mark dirty newly created nodes which have not
been scheduled for evaluation. These nodes have no dirtyBuildingState.

RELNOTES: None.
PiperOrigin-RevId: 236856080
diff --git a/src/main/java/com/google/devtools/build/skyframe/InMemoryNodeEntry.java b/src/main/java/com/google/devtools/build/skyframe/InMemoryNodeEntry.java
index 02ecef8..50073cd 100644
--- a/src/main/java/com/google/devtools/build/skyframe/InMemoryNodeEntry.java
+++ b/src/main/java/com/google/devtools/build/skyframe/InMemoryNodeEntry.java
@@ -529,8 +529,9 @@
       return new MarkedDirtyResult(ReverseDepsUtility.getReverseDeps(this));
     }
     if (dirtyType.equals(DirtyType.FORCE_REBUILD)) {
-      Preconditions.checkNotNull(dirtyBuildingState, this);
-      dirtyBuildingState.markForceRebuild();
+      if (dirtyBuildingState != null) {
+        dirtyBuildingState.markForceRebuild();
+      }
       return null;
     }
     // The caller may be simultaneously trying to mark this node dirty and changed, and the dirty