bazelbuild / bazelbuild/reclient

Ninja work dir not added automatically as input dir

Open
#45 2 comments 1 reaction 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.