I've been implementing path mapping in few rule sets and I think I'm either implementing something incorrectly or I've found an issue with path mapping + multiplex worker sandboxing. I'm seeing errors where the worker doesn't get run because the executable isn't present in the sandbox. IOException while preparing the execution environment of a worker
Both path mapping and multiplex sandboxing work on their own:
Disabling multiplex workers with --noworker_multiplex gets path mapping working.
Disabling path mapping with --experimental_output_paths=off gets multiplex sandboxing working.
Here's a minimal repro case as well as the full error (in the README): https://github.com/lucidsoftware/path-mapping-bug-repro You can repro with bazel build example. The worker doesn't do anything, but it doesn't need to in order to repro the bug as we're not getting to the point where the worker actually runs.
I've been implementing path mapping in few rule sets and I think I'm either implementing something incorrectly or I've found an issue with path mapping + multiplex worker sandboxing. I'm seeing errors where the worker doesn't get run because the executable isn't present in the sandbox.
IOException while preparing the execution environment of a worker
Both path mapping and multiplex sandboxing work on their own:
--noworker_multiplex
gets path mapping working.--experimental_output_paths=off
gets multiplex sandboxing working.Here's a minimal repro case as well as the full error (in the README): https://github.com/lucidsoftware/path-mapping-bug-repro You can repro with
bazel build example
. The worker doesn't do anything, but it doesn't need to in order to repro the bug as we're not getting to the point where the worker actually runs.Originally posted by @jjudd in https://github.com/bazelbuild/bazel/discussions/22658#discussioncomment-10918092