-
Notifications
You must be signed in to change notification settings - Fork 38
Open
Description
Using the Pyoxidizer configuration (#109) I was able to build a static musl binary, but when executing the binary on VMware ESXi 7 the execution fails while it works on the Docker image (quay.io/pypa/manylinux2014_x86_64).
The error as shown below is triggered because it cannot obtain the current path of the executable, because /self/proc/exe (https://github.com/indygreg/PyOxidizer/blob/b78b0cb75f4317c45408bbc9a569c062c482c679/pyembed/src/config.rs#L478) is not available on VMware ESXi 7.
I don't understand well enough how Pyoxidizer works to determine what causes this error and how this issue can be resolved, but I will look into this.
*VMWare ESXi 7*
vmware -v
VMware ESXi 7.0.3 build-21930508
./acquire --help
error instantiating embedded Python interpreter: could not obtain current executable
strace ./acquire
[...]
mmap(0x7221612000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7221612000
readlink("/proc/self/exe", 0x7221612000, 256) = -1 EINVAL (Invalid argument)
[...]
ls -al /proc/self/exe
ls: /proc/self/exe: No such file or directory*quay.io/pypa/manylinux2014_x86_64*
acquire --help
[...]
If no options are given, the collection profile 'default' is used.
ls -al /proc/self/exe
lrwxrwxrwx 1 root root 0 Nov 20 16:23 /proc/self/exe -> /usr/bin/ls*Alpine Linux 3.18*
acquire --help
[...]
If no options are given, the collection profile 'default' is used.
strace ./acquire --help
[...]
readlink("/proc/self/exe", "/tmp/acquire", 256) = 12
open("/tmp/acquire", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_PATH) = 3
readlink("/proc/self/fd/3", "/tmp/acquire", 4095) = 12
fstat(3, {st_mode=S_IFREG|0750, st_size=112942000, ...}) = 0
stat("/tmp/acquire", {st_mode=S_IFREG|0750, st_size=112942000, ...}) = 0
close(3)
[...]
ls -al /proc/self/exe
lrwxrwxrwx 1 root root 0 Nov 20 16:37 /proc/self/exe -> /bin/busyboxReactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels