JDK-8026041 : JVM crashes with assert "assert(is_updated()) failed: must not be clear" with -XX:+PrintGCApplicationConcurrentTime in -Xcomp mode
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: hs25
  • Priority: P1
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2013-10-08
  • Updated: 2014-10-08
  • Resolved: 2013-10-12
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 8 Other
8Fixed hs25Fixed
Related Reports
Relates :  
Relates :  
Description
Starting from JDK8-b107 / hs25-b49 JVM crashes with assert "assert(is_updated()) failed: must not be clear" with -XX:+PrintGCApplicationConcurrentTime in -Xcomp mode:

jdk1.8.0-b110/fastdebug/bin/java -server  -Xcomp -XX:+PrintGCApplicationConcurrentTime Test
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc:  SuppressErrorAt=/timer.cpp:94
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/HUDSON/workspace/8-2-build-linux-amd64/jdk8/367/hotspot/src/share/vm/runtime/timer.cpp:94), pid=27643, tid=139688482621184
#  assert(is_updated()) failed: must not be clear
#
# JRE version: Java(TM) SE Runtime Environment (8.0-b110) (build 1.8.0-ea-fastdebug-b110)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.0-b52-fastdebug compiled mode linux-amd64 compressed oops)
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /tmp/hs_err_pid27643.log

Issue could be reproduced with -XX:+PrintGCApplicationConcurrentTime, but not with -XX:+PrintGCApplicationStoppedTime.
I was able to reproduce it only in -Xcomp mode with both C1 and C2, but with -Xint and -Xmixed nothing happens.
Comments
Verified by running hotspot/test/runtime/RedefineObject/Agent.java which initiates 1000 GCs. ======================= Fails under jdk1.8.0_b107, Succeeds under jdk1.8.0_b124: ======================= C:\dev\bug-verify\jdk8\bug_8026041\test>set JAVA_HOME=C:\java-release-eng\debug\jdk1.8.0_b107\jdk1.8.0\fastdebug C:\dev\bug-verify\jdk8\bug_8026041\test>%JAVA_HOME%\bin\java -version java version "1.8.0-ea-fastdebug" Java(TM) SE Runtime Environment (build 1.8.0-ea-fastdebug-b107) Java HotSpot(TM) 64-Bit Server VM (build 25.0-b49-fastdebug, mixed mode) C:\dev\bug-verify\jdk8\bug_8026041\test>%JAVA_HOME%\bin\java -Xinternalversion Java HotSpot(TM) 64-Bit Server VM (25.0-b49-fastdebug) for windows-amd64 JRE (1.8.0-ea-b107), built on Sep 11 2013 16:24:59 by "java _re" with MS VC++ 10.0 (VS2010) C:\dev\bug-verify\jdk8\bug_8026041\test>%JAVA_HOME%\bin\java -jar c:\utils\jtreg\jtreg-41\jtreg\lib\jtreg.jar -va -vmoptions:-XX:+Pr intGCApplicationConcurrentTime -Xcomp ..\test\runtime\RedefineObject -------------------------------------------------- TEST: runtime/RedefineObject/TestRedefineObject.java JDK under test: C:\java-release-eng\debug\jdk1.8.0_b107\jdk1.8.0\fastdebug ACTION: build -- Passed. All files up to date REASON: User specified action: run build Agent TIME: 0.001 seconds messages: command: build Agent reason: User specified action: run build Agent elapsed time (seconds): 0.001 ACTION: build -- Passed. All files up to date REASON: Named class compiled on demand TIME: 0.001 seconds messages: command: build ClassFileInstaller reason: Named class compiled on demand elapsed time (seconds): 0.001 ACTION: main -- Failed. Unexpected exit from test [exit code: 1] REASON: User specified action: run main ClassFileInstaller Agent TIME: 4.6 seconds messages: command: main ClassFileInstaller Agent reason: User specified action: run main ClassFileInstaller Agent elapsed time (seconds): 4.6 STDOUT: # To suppress the following error report, specify this argument # after -XX: or in .hotspotrc: SuppressErrorAt=\timer.cpp:94 # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (C:\re\jdk8\188\hotspot\src\share\vm\runtime\timer.cpp:94), pid=7248, tid=6164 # assert(is_updated()) failed: must not be clear # # JRE version: Java(TM) SE Runtime Environment (8.0-b107) (build 1.8.0-ea-fastdebug-b107) # Java VM: Java HotSpot(TM) 64-Bit Server VM (25.0-b49-fastdebug compiled mode windows-amd64 compressed oops) # Core dump written. Default location: C:\dev\bug-verify\jdk8\bug_8026041\test\JTwork\scratch\hs_err_pid7248.mdmp # # An error report file with more information is saved as: # C:\dev\bug-verify\jdk8\bug_8026041\test\JTwork\scratch\hs_err_pid7248.log # # If you would like to submit a bug report, please visit: # http://bugreport.sun.com/bugreport/crash.jsp # STDERR: Phoning home... Using server: 10.161.186.18, port 4711 rerun: 'JTREG_JAR=c:\utils\jtreg\jtreg-41\jtreg\lib\jtreg.jar' \ 'PATH=c:\utils;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\ WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\utils\TortoiseHg\;C:\utils\wscite;c:\Program Fil es (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL S erver\100\DTS\Binn\;c:\utils\cygwin\bin;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\;C:\Program Files (x86)\Calibre2\ ' \ SystemDrive=C: \ 'SystemRoot=C:\windows' \ 'TEMP=C:\Users\gctriant\AppData\Local\Temp' \ 'TMP=C:\Users\gctriant\AppData\Local\Temp' \ 'windir=C:\windows' \ 'CLASSPATH=C:\utils\jtreg\jtreg-41\jtreg\lib\javatest.jar;C:\utils\jtreg\jtreg-41\jtreg\lib\jtreg.jar;C:\dev\bug-verify\jdk8\bug_802 6041\test\JTwork\classes\runtime\RedefineObject;C:\dev\bug-verify\jdk8\bug_8026041\test\runtime\RedefineObject;C:\dev\bug-verify\jdk 8\bug_8026041\test\JTwork\classes\testlibrary;C:\java-release-eng\debug\jdk1.8.0_b107\jdk1.8.0\fastdebug\lib\tools.jar' \ 'C:\java-release-eng\debug\jdk1.8.0_b107\jdk1.8.0\fastdebug\bin\java' \ -Dtest.vm.opts='-XX:+PrintGCApplicationConcurrentTime -Xcomp' \ -Dcompile.jdk='C:\java-release-eng\debug\jdk1.8.0_b107\jdk1.8.0\fastdebug' \ -Dtest.src.path='C:\dev\bug-verify\jdk8\bug_8026041\test\runtime\RedefineObject;C:\dev\bug-verify\jdk8\bug_8026041\test\test library' \ -Dtest.src='C:\dev\bug-verify\jdk8\bug_8026041\test\runtime\RedefineObject' \ -Dtest.tool.vm.opts='-J-XX:+PrintGCApplicationConcurrentTime -J-Xcomp' \ -Dtest.class.path='C:\dev\bug-verify\jdk8\bug_8026041\test\JTwork\classes\runtime\RedefineObject;C:\dev\bug-verify\jdk8\bug_ 8026041\test\JTwork\classes\testlibrary' \ -Dtest.timeout.factor=1.0 \ -Dtest.classes='C:\dev\bug-verify\jdk8\bug_8026041\test\JTwork\classes\runtime\RedefineObject' \ -Dtest.jdk='C:\java-release-eng\debug\jdk1.8.0_b107\jdk1.8.0\fastdebug' \ -Dtest.java.opts= \ -Dtest.compiler.opts= \ -XX:+PrintGCApplicationConcurrentTime -Xcomp \ com.sun.javatest.regtest.MainWrapper 'C:\dev\bug-verify\jdk8\bug_8026041\test\JTwork\classes\runtime\RedefineObject\ClassFil eInstaller.jta' Agent TEST RESULT: Failed. Unexpected exit from test [exit code: 1] -------------------------------------------------- Test results: failed: 1 Report written to C:\dev\bug-verify\jdk8\bug_8026041\test\JTreport\html\report.html Results written to C:\dev\bug-verify\jdk8\bug_8026041\test\JTwork Error: Some tests failed or other problems occurred. ======================= Succeeds under jdk1.8.0_b124: ======================= C:\dev\bug-verify\jdk8\bug_8026041\test>set JAVA_HOME=C:\java-release-eng\debug\jdk1.8.0_b124\jdk1.8.0\fastdebug C:\dev\bug-verify\jdk8\bug_8026041\test>%JAVA_HOME%\bin\java -version java version "1.8.0-ea-fastdebug" Java(TM) SE Runtime Environment (build 1.8.0-ea-fastdebug-b124) Java HotSpot(TM) 64-Bit Server VM (build 25.0-b66-fastdebug, mixed mode) C:\dev\bug-verify\jdk8\bug_8026041\test>%JAVA_HOME%\bin\java -Xinternalversion Java HotSpot(TM) 64-Bit Server VM (25.0-b66-fastdebug) for windows-amd64 JRE (1.8.0-ea-b124), built on Jan 17 2014 11:58:28 by "java _re" with MS VC++ 10.0 (VS2010) C:\dev\bug-verify\jdk8\bug_8026041\test>%JAVA_HOME%\bin\java -jar c:\utils\jtreg\jtreg-41\jtreg\lib\jtreg.jar -va -vmoptions:-XX:+Pr intGCApplicationConcurrentTime -Xcomp ..\test\runtime\RedefineObject -------------------------------------------------- TEST: runtime/RedefineObject/TestRedefineObject.java JDK under test: (C:\java-release-eng\debug\jdk1.8.0_b124\jdk1.8.0\fastdebug) java version "1.8.0-ea-fastdebug" Java(TM) SE Runtime Environment (build 1.8.0-ea-fastdebug-b124) Java HotSpot(TM) 64-Bit Server VM (build 25.0-b66-fastdebug, compiled mode) Application time: 0.4469050 seconds ACTION: build -- Passed. All files up to date REASON: User specified action: run build Agent TIME: 0.001 seconds messages: command: build Agent reason: User specified action: run build Agent elapsed time (seconds): 0.001 ACTION: build -- Passed. All files up to date REASON: Named class compiled on demand TIME: 0.0 seconds messages: command: build ClassFileInstaller reason: Named class compiled on demand elapsed time (seconds): 0.0 ACTION: main -- Passed. Execution successful REASON: User specified action: run main ClassFileInstaller Agent TIME: 14.205 seconds messages: command: main ClassFileInstaller Agent reason: User specified action: run main ClassFileInstaller Agent elapsed time (seconds): 14.205 STDOUT: STDERR: STATUS:Passed. rerun: 'JTREG_JAR=c:\utils\jtreg\jtreg-41\jtreg\lib\jtreg.jar' \ 'PATH=c:\utils;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\ WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\utils\TortoiseHg\;C:\utils\wscite;c:\Program Fil es (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL S erver\100\DTS\Binn\;c:\utils\cygwin\bin;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\;C:\Program Files (x86)\Calibre2\ ' \ SystemDrive=C: \ 'SystemRoot=C:\windows' \ 'TEMP=C:\Users\gctriant\AppData\Local\Temp' \ 'TMP=C:\Users\gctriant\AppData\Local\Temp' \ 'windir=C:\windows' \ 'CLASSPATH=C:\utils\jtreg\jtreg-41\jtreg\lib\javatest.jar;C:\utils\jtreg\jtreg-41\jtreg\lib\jtreg.jar;C:\dev\bug-verify\jdk8\bug_802 6041\test\JTwork\classes\runtime\RedefineObject;C:\dev\bug-verify\jdk8\bug_8026041\test\runtime\RedefineObject;C:\dev\bug-verify\jdk 8\bug_8026041\test\JTwork\classes\testlibrary;C:\java-release-eng\debug\jdk1.8.0_b124\jdk1.8.0\fastdebug\lib\tools.jar' \ 'C:\java-release-eng\debug\jdk1.8.0_b124\jdk1.8.0\fastdebug\bin\java' \ -Dtest.vm.opts='-XX:+PrintGCApplicationConcurrentTime -Xcomp' \ -Dtest.jdk='C:\java-release-eng\debug\jdk1.8.0_b124\jdk1.8.0\fastdebug' \ -Dtest.timeout.factor=1.0 \ -Dtest.src.path='C:\dev\bug-verify\jdk8\bug_8026041\test\runtime\RedefineObject;C:\dev\bug-verify\jdk8\bug_8026041\test\test library' \ -Dtest.compiler.opts= \ -Dcompile.jdk='C:\java-release-eng\debug\jdk1.8.0_b124\jdk1.8.0\fastdebug' \ -Dtest.classes='C:\dev\bug-verify\jdk8\bug_8026041\test\JTwork\classes\runtime\RedefineObject' \ -Dtest.class.path='C:\dev\bug-verify\jdk8\bug_8026041\test\JTwork\classes\runtime\RedefineObject;C:\dev\bug-verify\jdk8\bug_ 8026041\test\JTwork\classes\testlibrary' \ -Dtest.java.opts= \ -Dtest.src='C:\dev\bug-verify\jdk8\bug_8026041\test\runtime\RedefineObject' \ -Dtest.tool.vm.opts='-J-XX:+PrintGCApplicationConcurrentTime -J-Xcomp' \ -XX:+PrintGCApplicationConcurrentTime -Xcomp \ com.sun.javatest.regtest.MainWrapper 'C:\dev\bug-verify\jdk8\bug_8026041\test\JTwork\classes\runtime\RedefineObject\ClassFil eInstaller.jta' Agent ACTION: build -- Passed. All files up to date REASON: Named class compiled on demand TIME: 0.0 seconds messages: command: build TestRedefineObject reason: Named class compiled on demand elapsed time (seconds): 0.0 ACTION: main -- Passed. Execution successful REASON: User specified action: run main TestRedefineObject TIME: 12.628 seconds messages: command: main TestRedefineObject reason: User specified action: run main TestRedefineObject elapsed time (seconds): 12.628 STDOUT: Application time: 0.5275860 seconds . . . Application time: 0.2235071 seconds STDERR: STATUS:Passed. rerun: 'JTREG_JAR=c:\utils\jtreg\jtreg-41\jtreg\lib\jtreg.jar' \ 'PATH=c:\utils;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\ WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\utils\TortoiseHg\;C:\utils\wscite;c:\Program Fil es (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL S erver\100\DTS\Binn\;c:\utils\cygwin\bin;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\;C:\Program Files (x86)\Calibre2\ ' \ SystemDrive=C: \ 'SystemRoot=C:\windows' \ 'TEMP=C:\Users\gctriant\AppData\Local\Temp' \ 'TMP=C:\Users\gctriant\AppData\Local\Temp' \ 'windir=C:\windows' \ 'CLASSPATH=C:\utils\jtreg\jtreg-41\jtreg\lib\javatest.jar;C:\utils\jtreg\jtreg-41\jtreg\lib\jtreg.jar;C:\dev\bug-verify\jdk8\bug_802 6041\test\JTwork\classes\runtime\RedefineObject;C:\dev\bug-verify\jdk8\bug_8026041\test\runtime\RedefineObject;C:\dev\bug-verify\jdk 8\bug_8026041\test\JTwork\classes\testlibrary;C:\java-release-eng\debug\jdk1.8.0_b124\jdk1.8.0\fastdebug\lib\tools.jar' \ 'C:\java-release-eng\debug\jdk1.8.0_b124\jdk1.8.0\fastdebug\bin\java' \ -Dtest.vm.opts='-XX:+PrintGCApplicationConcurrentTime -Xcomp' \ -Dtest.jdk='C:\java-release-eng\debug\jdk1.8.0_b124\jdk1.8.0\fastdebug' \ -Dtest.timeout.factor=1.0 \ -Dtest.src.path='C:\dev\bug-verify\jdk8\bug_8026041\test\runtime\RedefineObject;C:\dev\bug-verify\jdk8\bug_8026041\test\test library' \ -Dtest.compiler.opts= \ -Dcompile.jdk='C:\java-release-eng\debug\jdk1.8.0_b124\jdk1.8.0\fastdebug' \ -Dtest.classes='C:\dev\bug-verify\jdk8\bug_8026041\test\JTwork\classes\runtime\RedefineObject' \ -Dtest.class.path='C:\dev\bug-verify\jdk8\bug_8026041\test\JTwork\classes\runtime\RedefineObject;C:\dev\bug-verify\jdk8\bug_ 8026041\test\JTwork\classes\testlibrary' \ -Dtest.java.opts= \ -Dtest.src='C:\dev\bug-verify\jdk8\bug_8026041\test\runtime\RedefineObject' \ -Dtest.tool.vm.opts='-J-XX:+PrintGCApplicationConcurrentTime -J-Xcomp' \ -XX:+PrintGCApplicationConcurrentTime -Xcomp \ com.sun.javatest.regtest.MainWrapper 'C:\dev\bug-verify\jdk8\bug_8026041\test\JTwork\classes\runtime\RedefineObject\TestRede fineObject.jta' ACTION: build -- Passed. All files up to date REASON: Named class compiled on demand TIME: 0.0 seconds messages: command: build Agent reason: Named class compiled on demand elapsed time (seconds): 0.0 ACTION: main -- Passed. Execution successful REASON: User specified action: run main/othervm -javaagent:agent.jar -XX:TraceRedefineClasses=5 Agent TIME: 100.143 seconds messages: command: main -javaagent:agent.jar -XX:TraceRedefineClasses=5 Agent reason: User specified action: run main/othervm -javaagent:agent.jar -XX:TraceRedefineClasses=5 Agent elapsed time (seconds): 100.143 STDOUT: Application time: 0.0326594 seconds RedefineClasses-0x1: loading name=java.lang.Object kind=101 (avail_mem=2877680K) Transforming class java/lang/Object RedefineClasses-0x1: loaded name=java.lang.Object (avail_mem=2878052K) Application time: 0.0283087 seconds RedefineClasses-0x1: redefined name=java.lang.Object, count=1 (avail_mem=2877576K) RedefineClasses-0x4: vm_op: all=35 prologue=2 doit=33 RedefineClasses-0x4: redefine_single_class: phase1=31 phase2=2 RedefineClasses-0x1: loading name=java.lang.reflect.Method kind=101 (avail_mem=2877572K) Transforming class java/lang/reflect/Method RedefineClasses-0x1: loaded name=java.lang.reflect.Method (avail_mem=2877572K) Application time: 0.0017464 seconds RedefineClasses-0x1: redefined name=java.lang.reflect.Method, count=2 (avail_mem=2877620K) RedefineClasses-0x4: vm_op: all=1 prologue=1 doit=0 RedefineClasses-0x4: redefine_single_class: phase1=0 phase2=0 RedefineClasses-0x1: loading name=java.lang.ClassLoader kind=101 (avail_mem=2877572K) Transforming class java/lang/ClassLoader RedefineClasses-0x1: loaded name=java.lang.ClassLoader (avail_mem=2877572K) Application time: 0.0029718 seconds RedefineClasses-0x1: redefined name=java.lang.ClassLoader, count=2 (avail_mem=2877572K) RedefineClasses-0x4: vm_op: all=1 prologue=1 doit=0 RedefineClasses-0x4: redefine_single_class: phase1=0 phase2=0 Application time: 1.2000351 seconds . . . Application time: 0.8043312 seconds STDERR: STATUS:Passed. rerun: 'JTREG_JAR=c:\utils\jtreg\jtreg-41\jtreg\lib\jtreg.jar' \ 'PATH=c:\utils;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\ WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\utils\TortoiseHg\;C:\utils\wscite;c:\Program Fil es (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL S erver\100\DTS\Binn\;c:\utils\cygwin\bin;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\;C:\Program Files (x86)\Calibre2\ ' \ SystemDrive=C: \ 'SystemRoot=C:\windows' \ 'TEMP=C:\Users\gctriant\AppData\Local\Temp' \ 'TMP=C:\Users\gctriant\AppData\Local\Temp' \ 'windir=C:\windows' \ 'CLASSPATH=C:\utils\jtreg\jtreg-41\jtreg\lib\javatest.jar;C:\utils\jtreg\jtreg-41\jtreg\lib\jtreg.jar;C:\dev\bug-verify\jdk8\bug_802 6041\test\JTwork\classes\runtime\RedefineObject;C:\dev\bug-verify\jdk8\bug_8026041\test\runtime\RedefineObject;C:\dev\bug-verify\jdk 8\bug_8026041\test\JTwork\classes\testlibrary;C:\java-release-eng\debug\jdk1.8.0_b124\jdk1.8.0\fastdebug\lib\tools.jar' \ 'C:\java-release-eng\debug\jdk1.8.0_b124\jdk1.8.0\fastdebug\bin\java' \ -Dtest.vm.opts='-XX:+PrintGCApplicationConcurrentTime -Xcomp' \ -Dtest.jdk='C:\java-release-eng\debug\jdk1.8.0_b124\jdk1.8.0\fastdebug' \ -Dtest.timeout.factor=1.0 \ -Dtest.src.path='C:\dev\bug-verify\jdk8\bug_8026041\test\runtime\RedefineObject;C:\dev\bug-verify\jdk8\bug_8026041\test\test library' \ -Dtest.compiler.opts= \ -Dcompile.jdk='C:\java-release-eng\debug\jdk1.8.0_b124\jdk1.8.0\fastdebug' \ -Dtest.classes='C:\dev\bug-verify\jdk8\bug_8026041\test\JTwork\classes\runtime\RedefineObject' \ -Dtest.class.path='C:\dev\bug-verify\jdk8\bug_8026041\test\JTwork\classes\runtime\RedefineObject;C:\dev\bug-verify\jdk8\bug_ 8026041\test\JTwork\classes\testlibrary' \ -Dtest.java.opts= \ -Dtest.src='C:\dev\bug-verify\jdk8\bug_8026041\test\runtime\RedefineObject' \ -Dtest.tool.vm.opts='-J-XX:+PrintGCApplicationConcurrentTime -J-Xcomp' \ -XX:+PrintGCApplicationConcurrentTime -Xcomp -javaagent:agent.jar -XX:TraceRedefineClasses=5 \ com.sun.javatest.regtest.MainWrapper 'C:\dev\bug-verify\jdk8\bug_8026041\test\JTwork\classes\runtime\RedefineObject\Agent.jt a' TEST RESULT: Passed. Execution successful -------------------------------------------------- Test results: passed: 1 Report written to C:\dev\bug-verify\jdk8\bug_8026041\test\JTreport\html\report.html Results written to C:\dev\bug-verify\jdk8\bug_8026041\test\JTwork
23-01-2014

You can check for _app_timer.is_updated() - that is what we depend on, after all.
10-10-2013

I would say the bug is here: void RuntimeService::record_safepoint_begin() { #ifndef USDT2 HS_DTRACE_PROBE(hs_private, safepoint__begin); #else /* USDT2 */ HS_PRIVATE_SAFEPOINT_BEGIN(); #endif /* USDT2 */ // Print the time interval in which the app was executing if (PrintGCApplicationConcurrentTime) { gclog_or_tty->date_stamp(PrintGCDateStamps); gclog_or_tty->stamp(PrintGCTimeStamps); gclog_or_tty->print_cr("Application time: %3.7f seconds", last_application_time_sec()); } we are assuming last_application_time_sec() is available when in fact we can be executing before the application has even started. I would suggest the PrintGCApplicationConcurrentTime is and'd with a check that VM initialization has complete - unfortunately as the initialization we are dependent on is actually in JNI_CreateJavaVM I don't see any check that can easily be made.
10-10-2013

Verified that building JDK 8 b107 without the following change 8022595: JSR292: deadlock during class loading of MethodHandles, MethodHandleImpl & MethodHandleNatives Reviewed-by: kvn, coleenp, dholmes does succeed. Adding link to original problem report.
09-10-2013

To clarify: The early generation of code causes the GuaranteedSafepointInterval timer in VMThread::loop() to time out. It then checks SafepointSynchronize::is_cleanup_needed() before starting a safepoint: bool SafepointSynchronize::is_cleanup_needed() { // Need a safepoint if some inline cache buffers is non-empty if (!InlineCacheBuffer::is_empty()) return true; return false; } And I guess because we have generated lots of code the InlineCacheBuffer is not empty at this time, and so we get a safepoint earlier than we are used to.
09-10-2013

(Another) Regression introduced by generating invokedynamic code early in the startup of the JVM. In Threads::create_vm we now cause a lot of code to be run because of these statements: initialize_class(vmSymbols::java_lang_invoke_MethodHandle(), CHECK_0); initialize_class(vmSymbols::java_lang_invoke_MemberName(), CHECK_0); initialize_class(vmSymbols::java_lang_invoke_MethodHandleNatives(), CHECK_0); In particular this is run before RuntimeService::record_application_start() is called JNI_CreateJavaVM(). When we come to RuntimeService::record_safepoint_begin() the _app_timer TimeStamp is not updated yet, and we get the assert.
09-10-2013

Initial evaluation shows that TimeStamp is not setup correctly before use in RuntimeService, reassigning.
09-10-2013

V [libjvm.so+0xe5ea8a] VMError::report_and_die()+0x2da V [libjvm.so+0x6b4294] report_vm_error(char const*, int, char const*, char const*)+0x84 V [libjvm.so+0xdfd1e8] TimeStamp::seconds() const+0x38 V [libjvm.so+0xd08023] RuntimeService::record_safepoint_begin()+0xa3 V [libjvm.so+0xd0a482] SafepointSynchronize::begin()+0xe2 V [libjvm.so+0xe86553] VMThread::loop()+0x453 V [libjvm.so+0xe86990] VMThread::run()+0xb0 V [libjvm.so+0xc21188] java_start(Thread*)+0x108
09-10-2013

According to the log, no GC event has occurred before the crash. The crash seems to occur during entering a safepoint.
08-10-2013

To reproduce crash you have to use some test, that cause GC, such as: public class Test { public static void main(String args[]) { while(true) { byte b[] = new byte[10000]; } } }
08-10-2013