Skip to content

Action conflicts due to differing affected by starlark transition value #14239

@fmeum

Description

@fmeum

Description of the problem / feature request:

Since 711c44e, transitions that lead to configs with differing affected by starlark transition value but otherwise identical configs lead to action conflicts.

Bugs: what's the simplest, easiest way to reproduce this bug? Please provide a minimal example if possible.

  1. Check out https://github.com/bazelbuild/rules_go/tree/v0.29.0.
  2. Run bazel build //... with Bazel at 2255ce4, the parent of the breaking commit.
  3. Observe that the build passes.
  4. Run bazel build //... with Bazel at 711c44e.
  5. Observe that there are action conflicts such as:
ERROR: file 'external/com_google_protobuf/_objs/protoc_lib/java_primitive_field.o' is generated by these conflicting actions:
Label: @com_google_protobuf//:protoc_lib
RuleClass: cc_library rule
Configuration: 00a60040d64dca849a5217221376411c93467de0d0a93ae55d94f0b96a6d631c, 4fe5f6ed614cebd8a30e459cb1e450bd49548bab2576c90c2155c97782853372
Mnemonic: CppCompile
Action key: 5d046af47458a54c0933bf1911899f17c727e1eec656b0b9728c7f3fbc5b0a22
Progress message: Compiling src/google/protobuf/compiler/java/java_primitive_field.cc
PrimaryInput: File:[/home/fhenneke/.cache/bazel/_bazel_fhenneke/da2ee2360ba14ac857bdb47dfbba9b7d/external/com_google_protobuf[source]]src/google/protobuf/compiler/java/java_primitive_field.cc
PrimaryOutput: File:[[<execution_root>]bazel-out/k8-opt-exec-2B5CBBC6-ST-10e8eac0bed8/bin]external/com_google_protobuf/_objs/protoc_lib/java_primitive_field.o
Owner information: ConfiguredTargetKey{label=@com_google_protobuf//:protoc_lib, config=BuildConfigurationKey[00a60040d64dca849a5217221376411c93467de0d0a93ae55d94f0b96a6d631c]}, ConfiguredTargetKey{label=@com_google_protobuf//:protoc_lib, config=BuildConfigurationKey[4fe5f6ed614cebd8a30e459cb1e450bd49548bab2576c90c2155c97782853372]}
MandatoryInputs: are equal
Outputs: are equal

The config diff:

$ bazel config 00a60040d64dca849a5217221376411c93467de0d0a93ae55d94f0b96a6d631c 4fe5f6ed614cebd8a30e459cb1e450bd49548bab2576c90c2155c97782853372
INFO: Invocation ID: eb06f0c4-ddc7-4bc6-8cc6-e8fd2e7e0e4e
INFO: Displaying diff between configs 00a60040d64dca849a5217221376411c93467de0d0a93ae55d94f0b96a6d631c and 4fe5f6ed614cebd8a30e459cb1e450bd49548bab2576c90c2155c97782853372
Displaying diff between configs 00a60040d64dca849a5217221376411c93467de0d0a93ae55d94f0b96a6d631c and 4fe5f6ed614cebd8a30e459cb1e450bd49548bab2576c90c2155c97782853372
FragmentOptions com.google.devtools.build.lib.analysis.config.CoreOptions {
  affected by starlark transition: [//go/private:bootstrap_nogo], [//go/config:pure, //go/private:bootstrap_nogo]
}

What operating system are you running Bazel on?

Linux

What's the output of bazel info release?

development version

If bazel info release returns "development version" or "(@Non-Git)", tell us how you built Bazel.

From 2255ce4 resp. 711c44e

What's the output of git remote get-url origin ; git rev-parse master ; git rev-parse HEAD ?

https://github.com/bazelbuild/bazel
fad4933ea3c7cd757f32b0760ac268788b3b1d0a
711c44ea79db14406972cc2204a43c589a2debce

Have you found anything relevant by searching the web?

Related to the discussion at #14023.

Any other information, logs, or outputs that you want to share?

@sdtwigg @gregestren

Metadata

Metadata

Assignees

Labels

P1I'll work on this now. (Assignee required)team-Configurabilityplatforms, toolchains, cquery, select(), config transitionstype: bug

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions