United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
JDK-6786195 : many nsk.monitoring tests fail with -server -Xcomp

Details
Type:
Bug
Submit Date:
2008-12-17
Status:
Closed
Updated Date:
2011-03-08
Project Name:
JDK
Resolved Date:
2011-03-08
Component:
hotspot
OS:
generic
Sub-Component:
gc
CPU:
generic
Priority:
P2
Resolution:
Fixed
Affected Versions:
hs14
Fixed Versions:
hs14 (b10)

Related Reports
Backport:
Backport:
Relates:

Sub Tasks

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);
                                     
2008-12-18
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/d593294016c3
                                     
2008-12-18
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.
                                     
2008-12-17
EVALUATION

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



Hardware and Software, Engineered to Work Together