bazelbuild / bazelbuild/reclient
Ninja work dir not added automatically as input dir
- Dominant language
- Go
- Stars
- 114
- Forks
- 25
- PR merge metrics
- No merged PRs in 30d
Description
I am currently working to configure reclient to use a buildfarm remote execution backend, and presently testing on Linux in its remote-only mode (NOT racing or fallback; I want to be sure this configuration works for remote execution).
One problem I have encountered now that I finally have a working remote end, is that Chromium's //third_party/angle submodule have 300+ targets that trigger this kind of error:
```
reclient[]: RemoteErrorResultStatus: rpc error: code = FailedPrecondition desc = Action /147 is invalid: working directory is not an input directory. details = violations: {
type: "INVALID"
subject: "The `Command` of the `Action` was invalid."
description: "working directory is not an input directory"
}
```
Inspecting the command and treelayout shows that these commands does not include the out/foo directory as an input, unless it is referenced in the command somehow, e.g. -Igen causes "set_by_reclient/a/gen/" to be added as a input directory, and those builds work (unless there are other compile issues; separate issue). If the remote working dir "set_by_reclient/a" is not included somehow in the input directory the result is the above error.
Contributor guide
Research direction
Reproduce the failure in Linux remote-only mode using the Chromium //third_party/angle targets, then inspect the generated command and tree layout. Compare actions where the remote working directory is absent from the input directories with those using -Igen; done means the working directory is included automatically and the remote action passes validation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100