Skip to content

OJ9-WASI-VIRTUAL-DISPATCH-001: OpenJ9 virtual dispatch divergence on inner-class clinit monitor #2

Description

@zacharywhitley

Deviation

ID: OJ9-WASI-VIRTUAL-DISPATCH-001
Backend: openj9
Runtime: semeru
Test: virtual-dispatch
Layer: backend-runtime
FijiLink Impact: none

Description

OpenJ9-WASI currently diverges on virtual dispatch involving inner-class class-initialization monitor behavior. The inner class <clinit> triggers a class init monitor assertion (setInitStatus monitor enter fails under nogc).

Status

  • Blocking for: unified-execution-gate
  • Not blocking for: fijilink-neutralization-gate
  • Release policy: allowed-with-warning

Root Cause

Inner class <clinit> triggers setInitStatus which calls enterObjectMonitor. Under OpenJ9-WASI's single-threaded nogc execution model, the monitor pool is exhausted and the enter operation fails with an assertion. The WASI guard skips the monitor enter but the init state machine does not complete correctly for inner classes.

Resolution Path

  1. Fix OpenJ9 class init monitor for inner classes under nogc/single-threaded WASI
  2. Either extend the monitor pool or bypass monitor acquisition for single-threaded init
  3. Re-run cross-backend conformance suite: target virtual-dispatch PASS

References

  • Deviation ledger: fijilink/deviations/deviation-ledger.json
  • Conformance status: fiji-harness/CONFORMANCE_STATUS.md
  • Tagged: fijilink-rc1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions