Skip to content

Skip J9+ASAN tests due to OpenJ9 JVM bugs#418

Merged
jbachorik merged 2 commits intomainfrom
jb/j9_asan_workaround
Mar 18, 2026
Merged

Skip J9+ASAN tests due to OpenJ9 JVM bugs#418
jbachorik merged 2 commits intomainfrom
jb/j9_asan_workaround

Conversation

@jbachorik
Copy link
Collaborator

Summary

Details

Nightly ASAN runs on J9 (17-j9, amd64) crash intermittently (~30% of recent runs) with two distinct SIGSEGV patterns:

  1. walkStackFrames null-deref during GC scanSlots — GC Worker scanning thread stacks reads ASCII string data instead of valid J9 stack frame structures
  2. defineClassImpl crash — non-canonical address dereference during reflective accessor class generation (matches confirmed open race eclipse-openj9/openj9#22129)

Both crashes are in J9 internal code (libj9vm29.so, libj9prt29.so), not in our profiler. ASAN widens timing windows that expose these latent J9 bugs. The previous mitigation (fork-every-class + 30min timeout) was insufficient — the JVM crash kills the entire test task regardless.

Test plan

  • Verify J9+ASAN CI jobs are skipped (task reports as SKIPPED not FAILED)
  • Verify non-J9 ASAN tests still run normally
  • Verify J9 non-ASAN tests (debug config) still run normally

🤖 Generated with Claude Code

OpenJ9 has known GC stack-scanning and defineClass race bugs
that are exposed by ASAN timing changes, causing intermittent
JVM crashes (SIGSEGV in walkStackFrames during GC scanSlots).

eclipse-openj9/openj9#23514

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@jbachorik jbachorik added the AI label Mar 16, 2026
@pr-commenter
Copy link

pr-commenter bot commented Mar 16, 2026

Integration Tests

All 40 integration tests passed

📊 Dashboard · 👷 Pipeline · 📦 87477310

@jbachorik jbachorik added test:asan Run CI tests with AddressSanitizer configuration test:tsan Run CI tests with ThreadSanitizer configuration labels Mar 16, 2026
@dd-octo-sts
Copy link

dd-octo-sts bot commented Mar 16, 2026

CI Test Results

Run: #23233538485 | Commit: a54112d | Duration: 11m 18s (longest job)

All 54 test jobs passed

Status Overview

JDK glibc-aarch64/asan glibc-aarch64/debug glibc-amd64/asan glibc-amd64/debug musl-aarch64/debug musl-amd64/debug
8 - - - -
8-ibm - - - -
8-j9 - -
8-librca - - - -
8-orcl - - - -
11 - - - -
11-j9 - -
11-librca - - - -
17 - -
17-graal - -
17-j9 - -
17-librca - - - -
21 - -
21-graal - -
21-librca - - - -
25 - -
25-graal - -
25-librca - - - -

Legend: ✅ passed | ❌ failed | ⚪ skipped | 🚫 cancelled

Summary: Total: 54 | Passed: 54 | Failed: 0


Updated: 2026-03-18 07:49:54 UTC

@jbachorik jbachorik removed the test:tsan Run CI tests with ThreadSanitizer configuration label Mar 16, 2026
@jbachorik jbachorik marked this pull request as ready for review March 17, 2026 13:09
@jbachorik jbachorik requested a review from a team as a code owner March 17, 2026 13:09
@jbachorik jbachorik requested review from rkennke and zhengyu123 March 18, 2026 12:14
Copy link
Contributor

@rkennke rkennke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok.

@jbachorik jbachorik merged commit dbae23b into main Mar 18, 2026
202 of 203 checks passed
@jbachorik jbachorik deleted the jb/j9_asan_workaround branch March 18, 2026 12:31
@github-actions github-actions bot added this to the 1.40.0 milestone Mar 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AI test:asan Run CI tests with AddressSanitizer configuration

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants