Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4513101

VMThread stuck in SafepointSynchronize::begin() during stress profiling

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P4 P4
    • None
    • 1.4.0
    • hotspot
    • None
    • generic
    • generic



      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.

      ======================================================================

            Unassigned Unassigned
            dcubed Daniel Daugherty
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: