Skip to content

docs: document VMConfig thread-local isolation flake - #17

Closed
vividctrlalt wants to merge 3 commits into
developfrom
docs/rocky-vmconfig-root-cause
Closed

docs: document VMConfig thread-local isolation flake#17
vividctrlalt wants to merge 3 commits into
developfrom
docs/rocky-vmconfig-root-cause

Conversation

@vividctrlalt

@vividctrlalt vividctrlalt commented Aug 19, 2026

Copy link
Copy Markdown
Owner

Summary

Document the root cause of intermittent :framework:test failures on Rocky Linux JDK 8 after tronprotocol#6857.

The same commit is green on Debian 11 JDK 8, Ubuntu, and macOS. The failing cases are existing VM / backup / net tests. London and Osaka look off because initAllowTvm*() writes globalSnapshot while current() prefers a leftover thread-local snapshot.

Root cause

tronprotocol#6857 split VM config into a process-global snapshot (block processing) and a thread-local snapshot (constant calls). Getters use current() (local if present). initAllowTvm*() still mutates only the global snapshot and was left for tests. ConfigLoader.disable skips load(), so a leftover local view is never cleared. Tests that still call init* therefore do not observe the flags they just set.

VMConfigIsolationTest does not cover this contract. Pre-tronprotocol#6857 tests (AllowTvmLondonTest and others) were not migrated.

Rocky Linux reproduces the race more often because the host is slower (forkEvery = 100 shares one JVM). A rerun going green is expected.

Related

Closes nothing. Companion context: tronprotocol#6857.

Test plan

@vividctrlalt vividctrlalt changed the title docs: record rocky linux VMConfig isolation root cause docs: document VMConfig thread-local isolation flake Aug 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant