Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2176747 | 7 | Daniel Daugherty | P3 | Closed | Fixed | b03 |
JDK-2171812 | 6u4 | Daniel Daugherty | P3 | Closed | Fixed | b03 |
During nightly results analysis following problem was found: since b92 execution of ThreadReference.ownedMonitors() and ThreadReference.ownedMonitorsAndFrames() take 6sec if thread for which this methods are called sleepeng (with previous builds this method take several ms). Attached test case demonstrates this, debuggee starts 2 threads, one of this threads calls sleep(Long.MAX_VALUE) another one executes infinite loop.
Test output for b92:
Time for SleepengThread
ownedMonitors: Time: 6s (6668ms)
ownedMonitorsAndFrames: Time: 6s (6668ms)
Time for LoopThread
ownedMonitors: Time: 0s (1ms)
ownedMonitorsAndFrames: Time: 0s (1ms)
debuggee out>>>Command received: QUIT
debuggee out>>>Exit
Test output for b91:
Time for SleepengThread
ownedMonitors: Time: 0s (1ms)
ownedMonitorsAndFrames: Time: 0s (1ms)
Time for LoopThread
ownedMonitors: Time: 0s (0ms)
ownedMonitorsAndFrames: Time: 0s (0ms)
debuggee out>>>Command received: QUIT
debuggee out>>>Exit
Also I couldn't reproduce this problem just calling JVMTI functions 'GetOwnedMonitorStackDepthInfo' and 'GetOwnedMonitorInfo'.
Test output for b92:
Time for SleepengThread
ownedMonitors: Time: 6s (6668ms)
ownedMonitorsAndFrames: Time: 6s (6668ms)
Time for LoopThread
ownedMonitors: Time: 0s (1ms)
ownedMonitorsAndFrames: Time: 0s (1ms)
debuggee out>>>Command received: QUIT
debuggee out>>>Exit
Test output for b91:
Time for SleepengThread
ownedMonitors: Time: 0s (1ms)
ownedMonitorsAndFrames: Time: 0s (1ms)
Time for LoopThread
ownedMonitors: Time: 0s (0ms)
ownedMonitorsAndFrames: Time: 0s (0ms)
debuggee out>>>Command received: QUIT
debuggee out>>>Exit
Also I couldn't reproduce this problem just calling JVMTI functions 'GetOwnedMonitorStackDepthInfo' and 'GetOwnedMonitorInfo'.
- backported by
-
JDK-2171812 Performance regression in ThreadReference.ownedMonitors()
-
- Closed
-
-
JDK-2176747 Performance regression in ThreadReference.ownedMonitors()
-
- Closed
-
- duplicates
-
JDK-6515686 Some debug actions are sometimes slow for DestroyJavaVM thread.
-
- Closed
-
- relates to
-
JDK-6440070 NotifyFramePop throws unexpected error: JVMTI_ERROR_THREAD_NOT_SUSPENDED
-
- Closed
-
-
JDK-6471657 JNI Direct Buffer API calls don't set the correct thread state during initialization
-
- Closed
-