Name: dd4877 Date: 10/10/2001
daniel.daugherty@Sun 2001-10-10
One of my profiling stress runs hung during a safepoint:
java_g -XX:+SafepointALot -Xrunhprof:cpu=samples PepTest
The VMThread is stuck in the "while (_waiting_to_block > 0)" loop:
dbx> print _waiting_to_block
_waiting_to_block = 1
However, the has_called_back() check in the loop did not list any
threads that failed to call back. We were waiting for 6 threads to
call back:
dbx> print nof_threads
nof_threads = 6
_waiting_to_block is usually decremented in a call to
signal_thread_at_safepoint() which is called by roll_forward()
when the thread's safepoint state is set to _at_safepoint.
It is also directly decremented in SafepointSynchronize::block()
when the thread's state is _thread_in_vm_trans or _thread_in_Java
Five of the six JavaThreads have a safepoint_state->_type field value
of _at_safepoint. One JavaThread has a value of _compiled_safepoint.
======================================================================
- duplicates
-
JDK-4472904 JDK 1.3.1/1.3 - Deadlock in safepoint code (Java Application hangs)
- Closed
- relates to
-
JDK-4641232 Slow case for ArrayCopyStub allows method to escape compiled code safepoint
- Resolved