-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
ASAN fixes. #51755
ASAN fixes. #51755
Conversation
c03702a
to
2e17bb5
Compare
What does |
Hard to tell. |
IIRC, I had |
Use same trick as dlopen to support siglongjmp bypass.
@Keno seemed like the main problem with that approach is that the stack will almost always be entirely unpoisoned, IIUC, which should miss issues not cause them. But I suppose it also would only unpoison the main stack, which might confuse it when running on alternate stacks. But anyways, I have now implemented the strategy used by dlopen for this, which seems to be working locally for me. I didn't run all of the tests, but the ones I ran (such as channels) were generally seeming to be working. |
ASAN is failing, timing out after two hours more specifically: https://buildkite.com/julialang/julia-master/builds/30174#018bd9c4-922a-4e1d-9321-1290ad23019f/705-1659 |
@giordano this is not expected to change the time taken by the test or to fix that incorrect timeout threshold set in the buildkite CI configuration |
For the `sigsetjmp` bypass; looks like glibc removed the `__libc_siglongjmp` symbol in glibc 2.34, so change to using the approach taking by our `dlopen` wrapper instead. Adopts topolarity's fixes from JuliaLang#50170 Resolves JuliaLang#47698 Co-authored-by: Jameson Nash <vtjnash@gmail.com>
For the `sigsetjmp` bypass; looks like glibc removed the `__libc_siglongjmp` symbol in glibc 2.34, so change to using the approach taking by our `dlopen` wrapper instead. Adopts topolarity's fixes from #50170 Resolves #47698 Co-authored-by: Jameson Nash <vtjnash@gmail.com> (cherry picked from commit 5cb0e51)
Backported PRs: - [x] #51755 <!-- ASAN fixes. --> - [x] #55329 <!-- mapreduce: don't inbounds unknown functions --> - [x] #55365 <!-- ml-matches: ensure all methods are included --> - [x] #55483 <!-- fix hierarchy level of "API reference" in `Dates` documentation --> - [x] #55268 <!-- simplify complex atanh and remove singularity perturbation --> - [x] #55504 <!-- Update symmetric docstring to reflect the type of uplo --> - [x] #55524 <!-- Set `.jl` sources as read-only during installation --> - [x] #41244 <!-- Fix shell `cd` error when working dir has been deleted --> - [x] #55829 <!-- [Dates] Make test more robust against non-UTC timezones --> - [x] #55641 <!-- fall back to slower stat filesize if optimized filesize fails --> - [x] #55849 <!-- Mmap: fix grow! for non file IOs --> - [x] #55945 <!-- Fix logic in `?` docstring example --> - [x] #55743 <!-- doc: heap snapshot viewing --> - [x] #56023 <!-- Sockets: Warn when local network access not granted. --> - [x] #54276 <!-- Fix solve for complex `Hermitian` with non-vanishing imaginary part on diagonal --> - [x] #54669 <!-- Improve error message in inplace transpose --> - [x] #55295 <!-- LAPACK: Aggressive constprop to concretely infer syev!/syevd! --> - [x] #55303 <!-- avoid overflowing show for OffsetArrays around typemax --> - [x] #55342 <!-- Ensure bidiagonal setindex! does not read indices in error message --> - [x] #55507 <!-- Fix fast getptls ccall lowering. --> - [x] #55522 <!-- Fix tr for Symmetric/Hermitian block matrices --> - [x] #55854 <!-- 🤖 [master] Bump the Downloads stdlib from 1061ecc to 89d3c7d --> - [x] #55863 <!-- Update TaskLocalRNG docstring according to #49110 --> - [x] #55567 <!-- Initialize threadpools correctly during sysimg build --> - [x] #55506 <!-- Fix indexing in _mapreducedim for OffsetArrays --> - [x] #54737 <!-- LazyString in interpolated error messages involving types -->
Taking @topolarity's fixes from #50170. Resolves #47698
For the
sigsetjmp
bypass; looks like glibc removed the__libc_siglongjmp
symbol in glibc 2.34, so I guess that's the cutoff:@Keno What kind of code required bypassing the ASAN siglongjmp interceptor? Stuff seems to work fine without it.