JDK-6786195 : many nsk.monitoring tests fail with -server -Xcomp
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: hs14
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2008-12-17
  • Updated: 2011-03-08
  • Resolved: 2011-03-08
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 6 JDK 7 Other
6u14Fixed 7Fixed hs14Fixed
Related Reports
Relates :  
Description
Sample hs_err file:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/hotspot-gc/src/share/vm/runtime/signature.cpp:126), pid=26356, tid=2
#  Error: ShouldNotReachHere()
#
# Java VM: Java HotSpot(TM) Server VM (14.0-b08-hotspot-gc.20081216115750-fastdebug compiled mode solaris-x86 )
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#

---------------  T H R E A D  ---------------

Current thread (0x0807d400):  JavaThread "main" [_thread_in_vm, id=2, stack(0xfc71a000,0xfc76a000)]

Stack: [0xfc71a000,0xfc76a000]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J  java.lang.Class.getDeclaredConstructors0(Z)[Ljava/lang/reflect/Constructor;
J  java.lang.Class.privateGetDeclaredConstructors(Z)[Ljava/lang/reflect/Constructor;
J  java.lang.Class.getConstructor0([Ljava/lang/Class;I)Ljava/lang/reflect/Constructor;
J  java.lang.Class.getConstructor([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
J  java.lang.reflect.Proxy.newProxyInstance(Ljava/lang/ClassLoader;[Ljava/lang/Class;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object;
j  sun.reflect.annotation.AnnotationParser.annotationForMap(Ljava/lang/Class;Ljava/util/Map;)Ljava/lang/annotation/Annotation;+21
j  sun.reflect.annotation.AnnotationParser.parseAnnotation(Ljava/nio/ByteBuffer;Lsun/reflect/ConstantPool;Ljava/lang/Class;Z)Ljava/lang/annotation/Annotation;+258
J  sun.reflect.annotation.AnnotationParser.parseAnnotations2([BLsun/reflect/ConstantPool;Ljava/lang/Class;)Ljava/util/Map;
J  sun.reflect.annotation.AnnotationParser.parseAnnotations([BLsun/reflect/ConstantPool;Ljava/lang/Class;)Ljava/util/Map;
J  java.lang.Class.initAnnotationsIfNecessary()V
J  sun.reflect.annotation.AnnotationType.<init>(Ljava/lang/Class;)V
J  sun.reflect.annotation.AnnotationType.getInstance(Ljava/lang/Class;)Lsun/reflect/annotation/AnnotationType;
J  sun.reflect.annotation.AnnotationParser.parseAnnotation(Ljava/nio/ByteBuffer;Lsun/reflect/ConstantPool;Ljava/lang/Class;Z)Ljava/lang/annotation/Annotation;
J  sun.reflect.annotation.AnnotationParser.parseAnnotations2([BLsun/reflect/ConstantPool;Ljava/lang/Class;)Ljava/util/Map;
J  sun.reflect.annotation.AnnotationParser.parseAnnotations([BLsun/reflect/ConstantPool;Ljava/lang/Class;)Ljava/util/Map;
J  java.lang.Class.initAnnotationsIfNecessary()V
J  java.lang.Class.getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
j  sun.reflect.annotation.AnnotationType.<init>(Ljava/lang/Class;)V+260
J  sun.reflect.annotation.AnnotationType.getInstance(Ljava/lang/Class;)Lsun/reflect/annotation/AnnotationType;
j  sun.reflect.annotation.AnnotationParser.parseAnnotation(Ljava/nio/ByteBuffer;Lsun/reflect/ConstantPool;Ljava/lang/Class;Z)Ljava/lang/annotation/Annotation;+94
j  sun.reflect.annotation.AnnotationParser.parseAnnotations2([BLsun/reflect/ConstantPool;Ljava/lang/Class;)Ljava/util/Map;+39
J  sun.reflect.annotation.AnnotationParser.parseAnnotations([BLsun/reflect/ConstantPool;Ljava/lang/Class;)Ljava/util/Map;
J  java.lang.reflect.Constructor.declaredAnnotations()Ljava/util/Map;
J  java.lang.reflect.Constructor.getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
j  com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$CompositeBuilderViaConstructor.applicable([Ljava/lang/reflect/Method;)Ljava/lang/String;+60
j  com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$CompositeMapping.makeCompositeBuilder()V+184
J  com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$CompositeMapping.checkReconstructible()V
J  com.sun.jmx.mbeanserver.ConvertingMethod.checkCallFromOpen()V
J  com.sun.jmx.mbeanserver.MXBeanIntrospector.checkMethod(Ljava/lang/Object;)V
J  com.sun.jmx.mbeanserver.PerInterface$InitMaps.visitAttribute(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
J  com.sun.jmx.mbeanserver.MBeanAnalyzer.visit(Lcom/sun/jmx/mbeanserver/MBeanAnalyzer$MBeanVisitor;)V
J  com.sun.jmx.mbeanserver.PerInterface.<init>(Ljava/lang/Class;Lcom/sun/jmx/mbeanserver/MBeanIntrospector;Lcom/sun/jmx/mbeanserver/MBeanAnalyzer;Ljavax/management/MBeanInfo;)V
J  com.sun.jmx.mbeanserver.MBeanIntrospector.getPerInterface(Ljava/lang/Class;)Lcom/sun/jmx/mbeanserver/PerInterface;
J  com.sun.jmx.mbeanserver.MBeanSupport.<init>(Ljava/lang/Object;Ljava/lang/Class;Ljavax/management/openmbean/MXBeanMappingFactory;)V
J  javax.management.StandardMBean.construct(Ljava/lang/Object;Ljava/lang/Class;ZLjavax/management/JMX$MBeanOptions;)V
J  javax.management.StandardMBean.<init>(Ljava/lang/Class;Z)V
J  sun.management.LockDataConverter.toLockInfoCompositeData(Ljava/lang/management/LockInfo;)Ljavax/management/openmbean/CompositeData;
j  sun.management.ThreadInfoCompositeData.<clinit>()V+312
v  ~StubRoutines::call_stub
j  java.lang.management.ThreadInfo.<init>(Ljavax/management/openmbean/CompositeData;)V+5
j  java.lang.management.ThreadInfo.from(Ljavax/management/openmbean/CompositeData;)Ljava/lang/management/ThreadInfo;+26
v  ~StubRoutines::call_stub
J  sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
J  sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
J  sun.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
J  java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
j  nsk.share.monitoring.server.ServerMXBean.convertObject(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;+37
J  nsk.share.monitoring.server.ServerThreadMXBean.getThreadInfo(Ljava/lang/Object;)Ljava/lang/management/ThreadInfo;
j  nsk.share.monitoring.server.ServerThreadMXBean.getThreadInfo(JI)Ljava/lang/management/ThreadInfo;+47
J  nsk.share.monitoring.thread.MonitoringThread.check(Ljava/lang/management/ThreadMXBean;)V
j  nsk.monitoring.ThreadMXBean.ThreadInfo.RunningThread.RunningThread001.RunningThread001.runOne()V+98
j  nsk.monitoring.ThreadMXBean.ThreadInfo.RunningThread.RunningThread001.RunningThread001.run()V+61
j  nsk.share.test.Tests$TestRunner.execute(Ljava/lang/Object;)V+29
J  nsk.share.test.Tests$TestRunner.run()V
j  nsk.share.monitoring.Monitoring.runTest(Lnsk/share/test/Test;[Ljava/lang/String;)V+9
j  nsk.monitoring.ThreadMXBean.ThreadInfo.RunningThread.RunningThread001.RunningThread001.main([Ljava/lang/String;)V+8
v  ~StubRoutines::call_stub

---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
  0x08711400 JavaThread "nsk.share.monitoring.thread.BlockedThread@21307627[id=10]" daemon [_thread_blocked, id=25, stack(0xb104c000,0xb109c000)]
  0x0883d400 JavaThread "Thread-1" [_thread_blocked, id=24, stack(0xb109e000,0xb10ee000)]
  0x084bc400 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=22, stack(0xb252a000,0xb257a000)]
  0x083fac00 JavaThread "CompilerThread1" daemon [_thread_blocked, id=21, stack(0xb257c000,0xb25bc000)]
  0x083f8c00 JavaThread "CompilerThread0" daemon [_thread_blocked, id=20, stack(0xb25be000,0xb25fe000)]
  0x083f6000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=19, stack(0xb4a02000,0xb4a52000)]
  0x083dc000 JavaThread "Finalizer" daemon [_thread_blocked, id=18, stack(0xb4a54000,0xb4aa4000)]
  0x083da800 JavaThread "Reference Handler" daemon [_thread_blocked, id=17, stack(0xb4aa6000,0xb4af6000)]
=>0x0807d400 JavaThread "main" [_thread_in_vm, id=2, stack(0xfc71a000,0xfc76a000)]

Other Threads:
  0x083d6800 VMThread [stack: 0xb4af8000,0xb4b38000] [id=16]
  0x084bf400 WatcherThread [stack: 0xb1234000,0xb1274000] [id=23]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread:  ([mutex/lock_event])
[0x0807c358] AdapterHandlerLibrary_lock - owner thread: 0x0807d400

Heap
 PSYoungGen      total 51968K, used 3563K [0xf2000000, 0xf5a00000, 0xf9200000)
  eden space 44544K, 8% used [0xf2000000,0xf237af10,0xf4b80000)
  from space 7424K, 0% used [0xf52c0000,0xf52c0000,0xf5a00000)
  to   space 7424K, 0% used [0xf4b80000,0xf4b80000,0xf52c0000)
 ParOldGen       total 466944K, used 0K [0xb9000000, 0xd5800000, 0xf2000000)
  object space 466944K, 0% used [0xb9000000,0xb9000000,0xd5800000)
 PSPermGen       total 16384K, used 4541K [0xb5000000, 0xb6000000, 0xb9000000)
  object space 16384K, 27% used [0xb5000000,0xb546f788,0xb6000000)

Dynamic libraries:
0x08050000 	/export/nobody/jdk1.7.0/bin/java
0xfefa0000 	/lib/libthread.so.1
0xfef70000 	/export/nobody/jdk1.7.0/bin/../jre/lib/i386/jli/libjli.so
0xfef50000 	/lib/libdl.so.1
0xfee60000 	/lib/libc.so.1
0xfca00000 	/export/nobody/jdk1.7.0/jre/lib/i386/refc2f/libjvm.so
0xfee30000 	/lib/libsocket.so.1
0xfee50000 	/usr/lib/libsched.so.1
0xfc9e0000 	/lib/libm.so.1
0xfc9b0000 	/usr/lib/libCrun.so.1
0xfc990000 	/lib/libdoor.so.1
0xfc8e0000 	/lib/libnsl.so.1
0xfc880000 	/lib/libm.so.2
0xfc850000 	/lib/libscf.so.1
0xfc830000 	/lib/libuutil.so.1
0xfc810000 	/lib/libgen.so.1
0xfc7e0000 	/lib/libmd.so.1
0xfc7b0000 	/lib/libmp.so.2
0xfc6e0000 	/export/nobody/jdk1.7.0/jre/lib/i386/libverify.so
0xfc6a0000 	/export/nobody/jdk1.7.0/jre/lib/i386/libjava.so
0xfc640000 	/export/nobody/jdk1.7.0/jre/lib/i386/native_threads/libhpi.so
0xfc5e0000 	/export/nobody/jdk1.7.0/jre/lib/i386/libzip.so
0xb11a0000 	/export/nobody/jdk1.7.0/jre/lib/i386/libnet.so
0xf9210000 	/export/nobody/jdk1.7.0/jre/lib/i386/libmanagement.so
0xb1180000 	/export/nobody/jdk1.7.0/jre/lib/i386/libnio.so
0xb1160000 	/lib/librt.so.1
0xb1140000 	/lib/libaio.so.1
0xb1110000 	/usr/lib/libsendfile.so.1
0xb10f0000 	/net/sqenfs-1.sfbay/export1/comp/vm/testbase/sqe/vm/6/build/r23/vm/bin/lib/solaris-i586/nsk/share/monitoring/thread/libRecursiveMonitoringThread.so

VM Arguments:
jvm_args: -XX:+UseParallelOldGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xcomp 
java_command: nsk.monitoring.ThreadMXBean.ThreadInfo.RunningThread.RunningThread001.RunningThread001 -scenarioType=blocked -testMode=server
Launcher Type: SUN_STANDARD

Environment Variables:
CLASSPATH=/home/nobody/js/projects/gc/parcompact/fillerobjs/refc2f-pcgc-nsk.monitoring.testlist/nobody.SunOS.x86/BlockedThread002:/java/sqe/comp/vm/testbase/sqe/vm/6/build/latest/vm/bin/classes:/export/nobody/jdk1.7.0/lib/tools.jar
PATH=/export/nobody/jdk1.7.0/bin:/java/sqe/comp/vm/testbase/sqe/vm/6/build/latest/vm/src/nsk/share/classes:/bin
LD_LIBRARY_PATH=/export/nobody/jdk1.7.0/jre/lib/i386/refc2f:/export/nobody/jdk1.7.0/jre/lib/i386:/export/nobody/jdk1.7.0/jre/../lib/i386:/export/nobody/jdk1.7.0/jre/lib/i386/server:/java/sqe/comp/vm/testbase/sqe/vm/6/build/latest/vm/bin/lib/solaris-i586/nsk/share/monitoring/thread
SHELL=/bin/sh
DISPLAY=

Signal Handlers:
SIGSEGV: [libjvm.so+0x15d1204], sa_mask[0]=0xffbffeff, sa_flags=0x0000000c
SIGBUS: [libjvm.so+0x15d1204], sa_mask[0]=0xffbffeff, sa_flags=0x0000000c
SIGFPE: [libjvm.so+0x11ecbfc], sa_mask[0]=0xffbffeff, sa_flags=0x0000000c
SIGPIPE: [libjvm.so+0x11ecbfc], sa_mask[0]=0xffbffeff, sa_flags=0x0000000c
SIGXFSZ: [libjvm.so+0x11ecbfc], sa_mask[0]=0xffbffeff, sa_flags=0x0000000c
SIGILL: [libjvm.so+0x11ecbfc], sa_mask[0]=0xffbffeff, sa_flags=0x0000000c
SIGUSR1: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
SIGUSR2: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
SIGQUIT: [libjvm.so+0x11e874c], sa_mask[0]=0xffbffeff, sa_flags=0x00000004
SIGHUP: SIG_IGN, sa_mask[0]=0x00000000, sa_flags=0x00000000
SIGINT: SIG_IGN, sa_mask[0]=0x00000000, sa_flags=0x00000000
SIGTERM: [libjvm.so+0x11e874c], sa_mask[0]=0xffbffeff, sa_flags=0x00000004
SIG39: [libjvm.so+0x11ecc28], sa_mask[0]=0x00000000, sa_flags=0x00000008
SIG40: [libjvm.so+0x11ecbfc], sa_mask[0]=0xffbffeff, sa_flags=0x0000000c


---------------  S Y S T E M  ---------------

OS:                        Solaris 10 8/07 s10x_u4wos_12b X86
           Copyright 2007 Sun Microsystems, Inc.  All Rights Reserved.
                        Use is subject to license terms.
                            Assembled 16 August 2007

uname:SunOS 5.10 Generic_120012-14 i86pc  (T2 libthread)
rlimit: STACK 10240k, CORE infinity, NOFILE 65536, AS infinity
load average:0.61 1.30 1.73

CPU:total 16 (4 cores per cpu, 1 threads per core) family 6 model 15 stepping 11, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3

Memory: 4k page, physical 33547524k(29693044k free)

vm_info: Java HotSpot(TM) Server VM (14.0-b08-hotspot-gc.20081216115750-fastdebug) for solaris-x86 JRE (1.7.0), built on Dec 16 2008 12:05:07 by "nobody" with Workshop 5.9

time: Tue Dec 16 18:22:18 2008
elapsed time: 13 seconds

Comments
SUGGESTED FIX Remove Universe::_fillerArrayKlassObj and associated code. diff --git a/src/share/vm/gc_interface/collectedHeap.cpp b/src/share/vm/gc_interface/collectedHeap.cpp --- a/src/share/vm/gc_interface/collectedHeap.cpp +++ b/src/share/vm/gc_interface/collectedHeap.cpp @@ -178,8 +178,7 @@ // Set the length first for concurrent GC. ((arrayOop)start)->set_length((int)len); - post_allocation_setup_common(Universe::fillerArrayKlassObj(), start, - words); + post_allocation_setup_common(Universe::intArrayKlassObj(), start, words); DEBUG_ONLY(zap_filler_array(start, words);) } diff --git a/src/share/vm/memory/universe.cpp b/src/share/vm/memory/universe.cpp --- a/src/share/vm/memory/universe.cpp +++ b/src/share/vm/memory/universe.cpp @@ -49,7 +49,6 @@ klassOop Universe::_constantPoolCacheKlassObj = NULL; klassOop Universe::_compiledICHolderKlassObj = NULL; klassOop Universe::_systemObjArrayKlassObj = NULL; -klassOop Universe::_fillerArrayKlassObj = NULL; oop Universe::_int_mirror = NULL; oop Universe::_float_mirror = NULL; oop Universe::_double_mirror = NULL; @@ -127,7 +126,6 @@ f(instanceKlassKlassObj()); f(constantPoolKlassObj()); f(systemObjArrayKlassObj()); - f(fillerArrayKlassObj()); } void Universe::oops_do(OopClosure* f, bool do_all) { @@ -182,7 +180,6 @@ f->do_oop((oop*)&_constantPoolCacheKlassObj); f->do_oop((oop*)&_compiledICHolderKlassObj); f->do_oop((oop*)&_systemObjArrayKlassObj); - f->do_oop((oop*)&_fillerArrayKlassObj); f->do_oop((oop*)&_the_empty_byte_array); f->do_oop((oop*)&_the_empty_short_array); f->do_oop((oop*)&_the_empty_int_array); @@ -268,7 +265,6 @@ _compiledICHolderKlassObj = compiledICHolderKlass::create_klass(CHECK); _systemObjArrayKlassObj = objArrayKlassKlass::cast(objArrayKlassKlassObj())->allocate_system_objArray_klass(CHECK); - _fillerArrayKlassObj = typeArrayKlass::create_klass(T_INT, sizeof(jint), "<filler>", CHECK); _the_empty_byte_array = oopFactory::new_permanent_byteArray(0, CHECK); _the_empty_short_array = oopFactory::new_permanent_shortArray(0, CHECK); diff --git a/src/share/vm/memory/universe.hpp b/src/share/vm/memory/universe.hpp --- a/src/share/vm/memory/universe.hpp +++ b/src/share/vm/memory/universe.hpp @@ -133,7 +133,6 @@ static klassOop _constantPoolCacheKlassObj; static klassOop _compiledICHolderKlassObj; static klassOop _systemObjArrayKlassObj; - static klassOop _fillerArrayKlassObj; // Known objects in the VM @@ -266,7 +265,6 @@ static klassOop constantPoolCacheKlassObj() { return _constantPoolCacheKlassObj; } static klassOop compiledICHolderKlassObj() { return _compiledICHolderKlassObj; } static klassOop systemObjArrayKlassObj() { return _systemObjArrayKlassObj; } - static klassOop fillerArrayKlassObj() { return _fillerArrayKlassObj; } // Known objects in tbe VM static oop int_mirror() { return check_mirror(_int_mirror);
18-12-2008

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/d593294016c3
18-12-2008

EVALUATION Tests pass if the data member Universe::_fillerArrayKlassObj added as part of 6578152 is removed.
17-12-2008

EVALUATION Tests pass with -client, and with -server when -Xcomp is not used. Introduced by the changes for 6578152: fill_region_with_object has usability and safety issues.
17-12-2008