Fix rare SIGABRTs due to missing libgcc_s.so.1#765
Conversation
2e22d4c to
2cba912
Compare
|
🤖 SemverChecks 🤖 No breaking API changes detected Note: this does not mean API is unchanged, or even that there are no breaking changes; simply, none of the detections triggered. |
CvvT
left a comment
There was a problem hiding this comment.
Thanks @jaybosamiya-ms for the fix! I wonder how you figure out the root cause. Also, we may extend the fix to search for all potential libs loaded at runtime, e.g.,
strings /lib/x86_64-linux-gnu/libc.so.6 | grep gcc
libgcc_s.so.1
__gcc_personality_v0
libgcc_s.so.1 must be installed for unwinding to work
libgcc_s.so.1 must be installed for pthread_cancel to work
libgcc_s.so.1 must be installed for pthread_exit to work
.gcc_except_table
We don't need to do it now, just leave a comment for future reference.
|
Root cause: the CI jobs where it failed had this somewhat consistently in the error logs (e.g., https://github.com/microsoft/litebox/actions/runs/24112381641/job/70349522828): So Unfortunately, I was unable to reproduce that nicely enough locally with like 100 executions in a loop, so I gave the above error message + instructions to try to get a Good point to do a better search for runtime-loaded libs, I'll open an issue to track it, thanks @CvvT! |
We have a somewhat rare flaky CI for
iperf3. This is caused becausepthread_canceldoes a dlopen oflibgcc_s.so.1which does not exist inside the sandbox (becauseldddoes not report it foriperf3). This, in rare cases, causes a SIGABRT. As I understand it, it is triggered only if theiperf3threads have not spun down fast enough, which is why it is flaky rather than a consistent failure.Relevant reference: https://sourceware.org/pipermail/libc-help/2009-October/001071.html