-
Bug
-
Resolution: Won't Fix
-
P4
-
15-pool, 17-pool, 18
1) Following assertion:
assert(MemTracker::tracking_level() >= NMT_summary, "Must be");
in ThreadStackTracker::record/release_thread_stack() is unreliable. The full fence after downgrading tracking level is *not* sufficient to avoid the racy.
2) NMT tracking level is downgraded without ThreadCritical lock held. But, it does require ThreadCritical lock to be held when it actually downgrade internal tracking data structure, so checking internal state is reliable to determine current tracking state.
Add assertion to ensure correct tracking state
3) thread counter is updated with ThreadCritical lock, but is read without the lock. Change to atomic update to ensure reader will not read stale value.
assert(MemTracker::tracking_level() >= NMT_summary, "Must be");
in ThreadStackTracker::record/release_thread_stack() is unreliable. The full fence after downgrading tracking level is *not* sufficient to avoid the racy.
2) NMT tracking level is downgraded without ThreadCritical lock held. But, it does require ThreadCritical lock to be held when it actually downgrade internal tracking data structure, so checking internal state is reliable to determine current tracking state.
Add assertion to ensure correct tracking state
3) thread counter is updated with ThreadCritical lock, but is read without the lock. Change to atomic update to ensure reader will not read stale value.
- relates to
-
JDK-8277788 NMT: Re-examine virtual memory tracker shutdown sequence
-
- Closed
-
-
JDK-8277990 NMT: Remove NMT shutdown capability
-
- Resolved
-
- links to
-
Review openjdk/jdk/6504