- Sponsor
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
Open
Labels
ciContinuous integrationContinuous integration
Description
This is an issue for everything that needs to happen, so we can start regularly using the sanitizers, both on CI and elsewhere. It's quite a bit, requires some coordination and I don't want to forget everything, so a long checklist it is.
- Merge Make jl_datatype_size reflect non-padded field size #46322 or Fix stack-buffer-overflow in generated code #46260 or Properly declare alloca alignment #46368 to fix asan complaint in generated code[Optional, but good to have] Do something about asan fake stack can free live stack frames after longjmp/signal google/sanitizers#1561Enable asan on CI
- One CI job every commit running read/channels/spawn
- One nightly job running full bootstrap + testsuite
To pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item. Press space again to drop the item in its new position, or press escape to cancel.Add msan llvm patches to julia build- Backport llvm/llvm-project@15972e3
- And merge it upstream
To pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item. Press space again to drop the item in its new position, or press escape to cancel.- And merge it upstream
To pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item. Press space again to drop the item in its new position, or press escape to cancel.- The patch from Detect dynamic TLS allocations for glibc>=2.19 google/sanitizers#1409 (comment) (or something better)
To pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item. Press space again to drop the item in its new position, or press escape to cancel.Finish and merge Enable MSAN support again #46348- ... and deploy on Yggdrasil (Bump BBB and test dSFMT sanitizer build JuliaPackaging/Yggdrasil#5315)
To pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item. Press space again to drop the item in its new position, or press escape to cancel.Have julia detect its sanitizer status and add platform tags- In the build system (Teach bb-install.mk to pick up special jlls for msan #46418)
- In Pkg
To pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item. Press space again to drop the item in its new position, or press escape to cancel.Fix test failures under msan- compiler/codegen
- compiler/contextual
- atomics
- strings/search
- spawn
- compiler/inference
- regex
- namedtuple
- llvmcall
- float16
- operators
- ryu
- loading
- meta
- stacktraces
- error
- misc
- download
- asyncmap
- LibGit2
- core
- LinearAlgebra/qr (LinearAlgebra/qr: Stop trying to factorize uninitialized memory #46386)
To pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item. Press space again to drop the item in its new position, or press escape to cancel.Patch our dependencies to add __msan_unpoison around asm codeMerge [WIP] Recipe to build libstdcxx with msan JuliaPackaging/Yggdrasil#5308 to get msan-enabled libstdcxxMerge Add a standalone LibStdCxx jll JuliaPackaging/Yggdrasil#5331To pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item. Press space again to drop the item in its new position, or press escape to cancel.Merge New Recipe: FlangClassic JuliaPackaging/Yggdrasil#5311 to get an msan-capable fortran compilerBuild-sanitizer
versions of all our dependenciesTo pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item. Press space again to drop the item in its new position, or press escape to cancel.Set up msan CI[Optional] Add a BinaryBuilder audit pass to make sure that the sanitizing actually happened[Optional] Make sanitizers more precise around our GC allocations.- Add ASAN guards to our GC objects.
To pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item. Press space again to drop the item in its new position, or press escape to cancel.[Optional] Add a way to build sanitizer-enabled sysimages from non-sanitizer builds[Optional] msan test suite- Add an LLVM attribute to set the msan "recover" option on a per-function basis.
To pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item. Press space again to drop the item in its new position, or press escape to cancel.[Optional] Sanitizer symbolization of jit framesTo pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item. Press space again to drop the item in its new position, or press escape to cancel.
Metadata
Metadata
Assignees
Labels
ciContinuous integrationContinuous integration
Type
Projects
Milestone
Relationships
Development
Select code repository
Activity
gbaraldi commentedon Aug 15, 2022
What about TSAN, not sure if it's going to help anywhere, but it looks like we currently just build the julia runtime with it, nothing more.
Keno commentedon Aug 15, 2022
I think tsan is mostly working, but I haven't played with it extensively yet. For now, the target here it get asan/msan working well to hopefully stop memory issues in external libraries from breaking CI as frequently as they have been.
gbaraldi commentedon Aug 15, 2022
What I meant is that we should do something with it. I believe we just build the runtime for now and maybe we should run at least the Threads testset with it on.
gbaraldi commentedon Aug 23, 2022
Deps to build:
9 remaining items