Skip to content

Commit 0d37fb9

Browse files
a10yclaude
andcommitted
debug: set ASAN_OPTIONS=protect_shadow_gap=0 for GPU compress fuzz
The compress_gpu fuzz job aborts on the very first input with a "deadly signal": CudaSession::try_default() returns Err and .expect("Failed to initialize CUDA device 0") panics (vortex-cuda/src/session.rs:168). It is input-independent (even the empty seed trips it) because the session is a LazyLock initialized on first use. cargo-fuzz builds with AddressSanitizer, which mprotects the shadow gap PROT_NONE. That collides with the large virtual-address range the CUDA driver reserves, so device init fails with an OOM-style error. Setting protect_shadow_gap=0 stops ASan protecting the gap and frees the VA range for CUDA. Temporary debugging change on this branch; revert with the rest once the GPU fuzz job is healthy. Signed-off-by: Andrew Duffy <andrew@a10y.dev> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 957312b commit 0d37fb9

1 file changed

Lines changed: 4 additions & 0 deletions

File tree

.github/workflows/fuzz.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,10 @@ jobs:
207207
fuzz_target: compress_gpu
208208
runner: gpu
209209
extra_features: "cuda"
210+
# ASan mprotects the shadow gap PROT_NONE by default, which collides with the large
211+
# virtual-address range the CUDA driver reserves and makes device init fail with an
212+
# OOM-style error. protect_shadow_gap=0 frees that VA range for CUDA.
213+
extra_env: "ASAN_OPTIONS=protect_shadow_gap=0"
210214
jobs: 1
211215
secrets:
212216
R2_FUZZ_ACCESS_KEY_ID: ${{ secrets.R2_FUZZ_ACCESS_KEY_ID }}

0 commit comments

Comments
 (0)