New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
thread::scope
aborts with futex()
EPERM
unexpected error code.
#124920
Comments
Rust built by CI links against an old glibc version for backwards compatibility. Maybe symbol versioning makes a difference? Having |
Local libc version:
They are indeed very different for the CI toolchain with abort:
With the locally built toolchain it never reaches
|
Your from-source toolchain is also 1.78? There were some recent changes around thread locals and thread parking on master. |
Yes:
But let me try with latest |
Same result as above. |
System:
OS: Fedora 40
Arch: x86_64
Toolchain:
https://sh.rustup.rs
v1.78.0
Disclaimer
The following bug is really really weird, and I struggle to make a minimal working example.
Unfortunately, I don't want to share the code it appears in publicly yet. But will invite everyone who wants to fix it, to the repo.
Description
When compiling something like the following code, with the toolchain installed via
curl sh.rustup.rs
,thread::scope
aborts withThe futex facility returned an unexpected error code.
.The
strace
shows that the thread is trying to attach itself to a futex, it is not allowed to attach to (according to the man pages):Now to the funny part. This error only happens with the toolchain obtained from
sh.rustup.rs
.I built the same version locally with and without debug symbols and the error goes away. I assume this happens due to different optimizations done by my locally built toolchains and the
rustup
one?Also, with my locally built toolchains
futex
is not called at all (in the function where the abort happens).Additional clues
Logs
Full
strace
:Valgrind stacktrace
The text was updated successfully, but these errors were encountered: