Skip to content

Commit 35ba396

Browse files
fmeumcopybara-github
authored andcommitted
Fix NPE in BzlmodRepoRuleFunction
Speculative fix for this crash: ``` FATAL: bazel crashed due to an internal error. Printing stack trace: java.lang.RuntimeException: Unrecoverable error while evaluating node 'BZLMOD_REPO_RULE:@@_main~remote_jdk8_repos~remote_jdk8_macos_aarch64_toolchain_config_repo' (requested by nodes 'REPOSITORY_DIRECTORY:@@_main~remote_jdk8_repos~remote_jdk8_macos_aarch64_toolchain_config_repo') at com.google.devtools.build.skyframe.AbstractParallelEvaluator$Evaluate.run(AbstractParallelEvaluator.java:550) at com.google.devtools.build.lib.concurrent.AbstractQueueVisitor$WrappedRunnable.run(AbstractQueueVisitor.java:414) at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(Unknown Source) at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source) at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source) at java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source) at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) Caused by: java.lang.NullPointerException: Cannot invoke "com.google.devtools.build.lib.bazel.bzlmod.BzlmodRepoRuleValue.getRule()" because the return value of "com.google.devtools.build.lib.skyframe.BzlmodRepoRuleFunction.createRuleFromSpec(com.google.devtools.build.lib.bazel.bzlmod.RepoSpec, net.starlark.java.eval.StarlarkSemantics, com.google.devtools.build.skyframe.SkyFunction$Environment)" is null at com.google.devtools.build.lib.skyframe.BzlmodRepoRuleFunction.compute(BzlmodRepoRuleFunction.java:151) at com.google.devtools.build.skyframe.AbstractParallelEvaluator$Evaluate.run(AbstractParallelEvaluator.java:461) ... 7 more ``` Closes #20807. PiperOrigin-RevId: 597050428 Change-Id: Ie8e5c3800be1a7adbacab4ac115acfd308c0f59e
1 parent 1c45bc5 commit 35ba396

File tree

1 file changed

+1
-5
lines changed

1 file changed

+1
-5
lines changed

src/main/java/com/google/devtools/build/lib/skyframe/BzlmodRepoRuleFunction.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
import com.google.devtools.build.lib.cmdline.RepositoryMapping;
4040
import com.google.devtools.build.lib.cmdline.RepositoryName;
4141
import com.google.devtools.build.lib.packages.NoSuchPackageException;
42-
import com.google.devtools.build.lib.packages.Package;
4342
import com.google.devtools.build.lib.packages.Rule;
4443
import com.google.devtools.build.lib.packages.RuleClass;
4544
import com.google.devtools.build.lib.packages.RuleClassProvider;
@@ -148,10 +147,7 @@ public SkyValue compute(SkyKey skyKey, Environment env)
148147
return BzlmodRepoRuleValue.REPO_RULE_NOT_FOUND_VALUE;
149148
}
150149
RepoSpec extRepoSpec = extensionEval.getGeneratedRepoSpecs().get(internalRepo);
151-
Package pkg = createRuleFromSpec(extRepoSpec, starlarkSemantics, env).getRule().getPackage();
152-
Preconditions.checkNotNull(pkg);
153-
154-
return new BzlmodRepoRuleValue(pkg, repositoryName.getName());
150+
return createRuleFromSpec(extRepoSpec, starlarkSemantics, env);
155151
}
156152

157153
private static Optional<RepoSpec> checkRepoFromNonRegistryOverrides(

0 commit comments

Comments
 (0)