-
Notifications
You must be signed in to change notification settings - Fork 4.4k
Closed as not planned
Closed as not planned
Copy link
Labels
P3We're not considering working on this, but happy to review a PR. (No assignee)We're not considering working on this, but happy to review a PR. (No assignee)query bugsBugs related to "bazel (c)query"Bugs related to "bazel (c)query"staleIssues or PRs that are stale (no activity for 30 days)Issues or PRs that are stale (no activity for 30 days)team-Rules-CPPIssues for C++ rulesIssues for C++ rulestype: bug
Description
Description of the problem / feature request:
If I pass files with incorrect extensions to cc_common.compile.srcs, bazel crashes with a Java stacktrace, instead of just reporting the problem like other incorrect starlark operations.
Bugs: what's the simplest, easiest way to reproduce this bug? Please provide a minimal example if possible.
rules.bzl:
load("@rules_cc//cc:toolchain_utils.bzl", "find_cpp_toolchain")
def _impl(ctx):
cc_toolchain = find_cpp_toolchain(ctx)
feature_configuration = cc_common.configure_features(
ctx = ctx,
cc_toolchain = cc_toolchain,
requested_features = ctx.features,
unsupported_features = ctx.disabled_features,
)
cc_common.compile(
name = "abc",
actions = ctx.actions,
feature_configuration = feature_configuration,
cc_toolchain = cc_toolchain,
srcs = ctx.files.srcs,
)
r = rule(
attrs = {
"srcs": attr.label_list(allow_files = True),
"_cc_toolchain": attr.label(default = Label("@bazel_tools//tools/cpp:current_cc_toolchain")),
},
fragments = ["cpp"],
toolchains = ["@bazel_tools//tools/cpp:toolchain_type"],
implementation = _impl,
)BUILD:
load(":rule.bzl", "r")
genrule(
name = "gen_header",
outs = ["foo.h"],
cmd = "touch $@",
)
r(
name = "r",
srcs = [
"foo.h",
],
)What operating system are you running Bazel on?
Debian Buster, amd64
What's the output of bazel info release?
release 5.0.0
Have you found anything relevant by searching the web?
No
Any other information, logs, or outputs that you want to share?
Stacktrace does include starlark line numbers despite crashing, which is really helpful for fixing my starlark despite the bazel crash!
FATAL: bazel crashed due to an internal error. Printing stack trace:
java.lang.RuntimeException: Unrecoverable error while evaluating node 'ConfiguredTargetKey{label=//:r, config=BuildConfigurationValue.Key[28ff57593ba01d914893f9cd455c859110ce813ccf3771961541220915f453dc]}' (requested by nodes )
at com.google.devtools.build.skyframe.AbstractParallelEvaluator$Evaluate.run(AbstractParallelEvaluator.java:674)
at com.google.devtools.build.lib.concurrent.AbstractQueueVisitor$WrappedRunnable.run(AbstractQueueVisitor.java:382)
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: net.starlark.java.eval.Starlark$UncheckedEvalException: IllegalStateException thrown during Starlark evaluation (//:r)
at <starlark>.compile(<builtin>:0)
at <starlark>._impl(/tmp/ajskdflaj/rule.bzl:12)
Caused by: java.lang.IllegalStateException
at com.google.common.base.Preconditions.checkState(Preconditions.java:494)
at com.google.devtools.build.lib.rules.cpp.CcCompilationHelper.addSource(CcCompilationHelper.java:551)
at com.google.devtools.build.lib.rules.cpp.CcCompilationHelper.addSources(CcCompilationHelper.java:487)
at com.google.devtools.build.lib.rules.cpp.CcModule.compile(CcModule.java:2163)
at com.google.devtools.build.lib.bazel.rules.cpp.BazelCcModule.compile(BazelCcModule.java:120)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at net.starlark.java.eval.MethodDescriptor.call(MethodDescriptor.java:162)
at net.starlark.java.eval.BuiltinFunction.fastcall(BuiltinFunction.java:77)
at net.starlark.java.eval.Starlark.fastcall(Starlark.java:619)
at net.starlark.java.eval.Eval.evalCall(Eval.java:672)
at net.starlark.java.eval.Eval.eval(Eval.java:489)
at net.starlark.java.eval.Eval.exec(Eval.java:271)
at net.starlark.java.eval.Eval.execStatements(Eval.java:82)
at net.starlark.java.eval.Eval.execFunctionBody(Eval.java:66)
at net.starlark.java.eval.StarlarkFunction.fastcall(StarlarkFunction.java:191)
at net.starlark.java.eval.Starlark.fastcall(Starlark.java:619)
at com.google.devtools.build.lib.analysis.starlark.StarlarkRuleConfiguredTargetUtil.buildRule(StarlarkRuleConfiguredTargetUtil.java:98)
at com.google.devtools.build.lib.analysis.ConfiguredTargetFactory.createRule(ConfiguredTargetFactory.java:353)
at com.google.devtools.build.lib.analysis.ConfiguredTargetFactory.createConfiguredTarget(ConfiguredTargetFactory.java:188)
at com.google.devtools.build.lib.skyframe.SkyframeBuildView.createConfiguredTarget(SkyframeBuildView.java:1108)
at com.google.devtools.build.lib.skyframe.ConfiguredTargetFunction.createConfiguredTarget(ConfiguredTargetFunction.java:980)
at com.google.devtools.build.lib.skyframe.ConfiguredTargetFunction.compute(ConfiguredTargetFunction.java:368)
at com.google.devtools.build.skyframe.AbstractParallelEvaluator$Evaluate.run(AbstractParallelEvaluator.java:590)
at com.google.devtools.build.lib.concurrent.AbstractQueueVisitor$WrappedRunnable.run(AbstractQueueVisitor.java:382)
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)
Metadata
Metadata
Assignees
Labels
P3We're not considering working on this, but happy to review a PR. (No assignee)We're not considering working on this, but happy to review a PR. (No assignee)query bugsBugs related to "bazel (c)query"Bugs related to "bazel (c)query"staleIssues or PRs that are stale (no activity for 30 days)Issues or PRs that are stale (no activity for 30 days)team-Rules-CPPIssues for C++ rulesIssues for C++ rulestype: bug