You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi, this product is really nice especially since it has an easy configuration to work with. However it runs into some compatibility issues with buildstream (buildstream.build). I figured since there is no issue here yet I'd go ahead and create one. The two issues i've run into and some solutions i've found:
Direct use of nativelink as the artifact cache server fails when buildstream tries to initialize remote caches with:
[--:--:--][ ][ main:core activity ] WARNING Failed to initialize remote http://localhost:50051: Remote initialisation failed with status UNKNOWN: FetchBlob: 2: Stream removed
I was able to work around this funny enough by putting a buildbox-casd local cache via
buildbox-casd --cas-remote grpc://localhost:50051 --cas-instance main --bind 127.0.0.1:50052 /tmp/casd
Then it looks like everything was happy
And similar to with buildbarn it runs into this fun shenanigans:
Staging the input root as the filesystem root[](https://docs.buildstream.build/2.3/using_configuring_remote_execution.html#staging-the-input-root-as-the-filesystem-root)
BuildStream requires that the input root given to the remote execution service be treated as the absolute filesystem root.
This is because BuildStream provides guarantees that all build dependencies, including the base runtime and compilers, are defined by elements and run within a sandboxed and isolated build environment, but the [REAPI](https://github.com/bazelbuild/remote-apis) was originally developped without this determinism and control in mind. Instead, typically it is up to the user to configure a cluster to use a docker image to build payloads with, rather than allowing the REAPI client to control the entire sandbox.
Unfortunately the ability to dictate that the input root be treated as the filesystem root in a container on remote workers in the cluster is not yet standardized in the REAPI protocol.
Note
The input root is referred to as the input_root_digest member of the Action message as defined in the [protocol](https://github.com/bazelbuild/remote-apis/blob/main/build/bazel/remote/execution/v2/remote_execution.proto)
This manifests in having permission denied on the work environment since it expects to use absolute paths, One way to address this could be to allow some sort of method to tell nativelink workers to run everything through buildbox-run-bubblewrap or something of the sort.
The text was updated successfully, but these errors were encountered:
Hi, this product is really nice especially since it has an easy configuration to work with. However it runs into some compatibility issues with buildstream (buildstream.build). I figured since there is no issue here yet I'd go ahead and create one. The two issues i've run into and some solutions i've found:
I was able to work around this funny enough by putting a buildbox-casd local cache via
Then it looks like everything was happy
This manifests in having permission denied on the work environment since it expects to use absolute paths, One way to address this could be to allow some sort of method to tell nativelink workers to run everything through buildbox-run-bubblewrap or something of the sort.
The text was updated successfully, but these errors were encountered: