how does the native_engine.so get built in remotin...
# development
f
how does the native_engine.so get built in remoting? Is it built locally and then uploaded to the CAS, or is it built in the remoting environment?
context is I’m seeing the following error when running a Pants build against a Buildgrid instance with a worker running rquests in a container similar to the Ubuntu 16 container used on RBE. the client side is Ubuntu 20.04 LTS though:
Copy code
E   ImportError: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /toolchain/operations/src/python/pants/engine/internals/native_engine.so)
h
Exactly. See
engine/internals/BUILD
. It’s simply a
files()
target
Compiling the binary is entirely controlled outside of Pants, I think
build-support/bin/native/bootstrap_code.sh
f
for integration tests running remotely, does that
files
target cause Pants to upload the
native_engine.so
into the CAS for use in the remote execution request to run the integration test?
w
yea, this is the multi-platform execution stuff. client and server need to be fairly aligned currently, unfortunately.
for integration tests running remotely, does that 
files
 target cause Pants to upload the 
native_engine.so
 into the CAS for use in the remote execution request to run the integration test?
yes
(although iirc, it's a
resources
target)
f
okay so that behavior will be an issue when the client environment differs from the remoting environment
w
yea. that’s the whole thrust of the multi-platform speculation stuff.
f
for now I think I need to get the new remote execution image up as a PR for pants, and then get that pushed to docker hub
👍 1
I’ll use it locally on the client-side before then as well although that will complicate my testing a bit
also, a pants local executor using a Docker container would probably be a useful feature in the future
w
yea, almost certainly.