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

assert(thread->osthread()->is_self_suspended(), "Expected self suspension")

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P3 P3
    • None
    • 2.0
    • hotspot
    • None
    • x86
    • generic

      I'm running SPECjvm98 on a vanilla main_baseline build. I'm getting
      occasional

          # assert(thread->osthread()->is_self_suspended(), "Expected self suspension")

      I'm running on a P3-700, running Windohs NT 4.0 SP6+, with

          Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-beta3-b82)

      and a command line of

          main_baseline\compiler2\bin\java_g -server -Xss1m -Xbatch -Xms32m -Xmx32m SpecApplication -s100 -a -m5 -M5 _200_check _227_mtrt _202_jess _201_compress _209_db _222_mpegaudio _228_jack _213_javac

      It doesn't fail every time. I've just run it 10 times and gotten 3
      failures at 3 different points:

          ======= _222_mpegaudio Starting =======
          Run 0 start. Total memory=33226752 free memory=31788952
          MPEG Audio - Decoding input/track2.mp3 1 time

          MPEG Layer-3 Audio - Java Decoder Implementation
             (c) 1997 Fraunhofer IIS, Erlangen/Germany

          #
          # HotSpot Virtual Machine Error, assertion failure
          # Please report this error at
          # http://java.sun.com/cgi-bin/bugreport.cgi
          #
          # Java VM: Java HotSpot(TM) Server VM (1.4-internal-debug mixed mode)
          #
          # assert(thread->osthread()->is_self_suspended(), "Expected self suspension")
          #
          # Error ID: D:\pbk\Workspaces\win32_i486\main_baseline\src\share\vm\runtime\safepoint.cpp, 877
          #
          # Problematic Thread: prio=5 tid=0x0076EB38 nid=0x161 runnable
          #

          ======= _227_mtrt 10% execution - timing ignored
          Run 2 start. Total memory=33226752 free memory=23145696
          +0 to 99 by 200
          +100 to 199 by 200
          #
          # HotSpot Virtual Machine Error, assertion failure
          # Please report this error at
          # http://java.sun.com/cgi-bin/bugreport.cgi
          #
          # Java VM: Java HotSpot(TM) Server VM (1.4-internal-debug mixed mode)
          #
          # assert(thread->osthread()->is_self_suspended(), "Expected self suspension")
          #
          # Error happened during: generation collection for allocation
          #
          # Error ID: D:\pbk\Workspaces\win32_i486\main_baseline\src\share\vm\runtime\safepoint.cpp, 877
          #
          # Problematic Thread: prio=5 tid=0x0078D248 nid=0x15b waiting on monitor
          #

          ======= _227_mtrt 10% execution - timing ignored
          Run 1 start. Total memory=33226752 free memory=15154992
          +0 to 99 by 200
          +100 to 199 by 200
          #
          # HotSpot Virtual Machine Error, assertion failure
          # Please report this error at
          # http://java.sun.com/cgi-bin/bugreport.cgi
          #
          # Java VM: Java HotSpot(TM) Server VM (1.4-internal-debug mixed mode)
          #
          # assert(thread->osthread()->is_self_suspended(), "Expected self suspension")
          #
          # Error happened during: generation collection for allocation
          #
          # Error ID: D:\pbk\Workspaces\win32_i486\main_baseline\src\share\vm\runtime\safepoint.cpp, 877
          #
          # Problematic Thread: prio=5 tid=0x007B5498 nid=0x188 runnable
          #

      I don't think it has anything to do with GC, even though 2 of those say
      it happened during collection for allocation. I think it's just that
      GC causes safepoints. I don't know if it only happens with -server,
      or only on Windohs. Obviously it only fails the assert in debug builds.
      (Don't forget the -Xss1m when running debug server builds!)

      ###@###.### 2001-10-09

      I just caught one of these inside of VC++, so I can give you some more
      information. The threads list is (transcribed by hand):

          Thread ID Suspend Priority Location
          000000c0 0 9 [CompileQueue::get]
          0000013b 1 9
         *00000153 0 9 $L113467
          00000162 0 15 [os::signal_wait]
          00000163 0 11 [ObjectMonitor::wait]
          00000166 0 9 [CompileQueue::get]
          0000016c 0 15 [ObjectMonitor::wait]
          00000176 0 15 [SuspendCheckerThread::run]
          00000183 0 15 [WatcherThread::run]

      and the thread that's failing the assert is at

          CompiledCodeSafepointHandler::setup(ThreadSafepointState * 0x00764668, nmethod * 0x00b7cbc8) line 877 + 47 bytes
          ThreadSafepointState::roll_forward(ThreadSafepointState::suspend_type _compiled_safepoint, nmethod * 0x00b7cbc8, int 0) line 659
          ThreadSafepointState::examine_state_of_thread(int 0) line 595
          SafepointSynchronize::begin() line 83
          VMThread::loop() line 300
          VMThread::run() line 189
          _start(Thread * 0x0076eee8) line 256
          _threadstartex(void * 0x0076eb70) line 212 + 13 bytes
          KERNEL32! 77f04ef0()

      ###@###.### 2001-10-09

            sgoldman Steve Goldman (Inactive)
            pbk Peter Kessler
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: