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

Hang on class loading/initialization involving GC locker

XMLWordPrintable

    • gc
    • generic
    • generic

      Stress test loading and initializing classes intermittenly hangs with stack trace below.

      ----------------- lwp# 17 / thread# 17 --------------------
       feecac65 lwp_cond_wait (81ff248, 81ff230, 0, 0)
       fe9ab82d void os::PlatformEvent::park() (81ff200, febe44a6, 81fe000, fe975001) + bd
       fe9752a3 int Monitor::IWait(Thread*,long long) (80655e0, 81fe000, 0, 0) + 2b3
       fe9783a7 bool Monitor::wait(bool,long,bool) (80655e0, 0, 0, 0) + 11f
       fe68f2ab void GC_locker::stall_until_clear() (a4, 1a, 0, 158, b6a3152b, 0) + 10f
       fe0fb1f8 HeapWord*ParallelScavengeHeap::permanent_mem_allocate(unsigned) (8069678, 1a, febe8ee1, febe8e7c) + d0
       fe1df9f1 methodDataOopDesc*methodDataKlass::allocate(methodHandle,Thread*) (b6a00e58, 81fe9cc, 81fe000, 81fe9cc, 8065b28, fec6e000) + 75
       fe1df978 methodDataOopDesc*oopFactory::new_methodData(methodHandle,Thread*) (81fe9cc, 81fe000, fdc6cba8, fecbdb70) + 20
       fe1cdf22 void methodOopDesc::build_interpreter_method_data(methodHandle,Thread*) (81fe9cc, 81fe000, fdc6cbe8, fe1e0a31) + 3a
       fe1e0b70 int InterpreterRuntime::profile_method(JavaThread*,unsigned char*) (81fe000, b6a31528) + 150
       fac092b0 * java/lang/ref/Reference.access$200()Ljava/lang/ref/Reference;+0
       fac02fa7 * java/lang/ref/Reference$ReferenceHandler.run()V+12 (line 252)
       fac003de * StubRoutines (1)
       fe15f8e6 void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*) (fdc6cec0, fdc6cdd8, fdc6cde0, 81fe000, fdc6ce30, 81fe9b8) + 53e
       fe15fca4 void os::os_exception_wrapper(void(*)(JavaValue*,methodHandle*,JavaCallArguments*,Thread*),JavaValue*,methodHandle*,JavaCallArguments*,Thread*) (fe15f3a8, fdc6cec0, fdc
      6cdd8, fdc6cde0, 81fe000, 81fe000) + 18
       fe220400 void JavaCalls::call_virtual(JavaValue*,Handle,KlassHandle,symbolHandle,symbolHandle,Thread*) (fdc6cec0, 81fe9b8, 81fe9bc, fecd0bd4, fecd0f0c) + 110
       fe23d06e void thread_entry(JavaThread*,Thread*) (81fe000) + e2
       fe237a23 void JavaThread::run() (81fe000, feccc500, 0, fe9a0f82) + 2ff
       fe9a13f4 java_start (81fe000) + 4c8
       feec71d0 _thr_setup (fde47a00) + 4e
       feec74c0 _lwp_start (fde47a00, 0, 0, fdc6cff8, feec74c0, fde47a00)
      ----------------- lwp# 26 / thread# 26 --------------------
       feecac65 lwp_cond_wait (8232a48, 8232a30, 0, 0)
       fe9ab82d void os::PlatformEvent::park() (8232a00, 82003e8, b5729170, 1) + bd
       fe149d7e void ObjectMonitor::enter(Thread*) (82003cc, 8232400, 8232400, fea87ad9) + 59a
       fea87bd3 void ObjectSynchronizer::fast_enter(Handle,BasicLock*,bool,Thread*) (823474c, b5bc74f8, 0, 8232400) + 10b
       fe1c8446 void instanceRefKlass::acquire_pending_list_lock(BasicLock*) (b5bc74f8) + 6e
       feb0bb6d bool VM_GC_Operation::doit_prologue() (b5bc74e0, 1010100, 0, fe1c79d8) + 19
       fe1c7b5d void VMThread::execute(VM_Operation*) (b5bc74e0, a6, 158, a4) + 199
       fe0fb2df HeapWord*ParallelScavengeHeap::permanent_mem_allocate(unsigned) (8069678, a6, 88bbd20, 932e188) + 1b7
       fe5fd4fc constantPoolCacheOopDesc*constantPoolCacheKlass::allocate(int,bool,Thread*) (b6a00f38, 28, 0, 8232400, b5bc75cc, 0) + 7c
       fe9995ce constantPoolCacheOopDesc*oopFactory::new_constantPoolCache(int,bool,Thread*) (28, 0, 8232400, fea08ee5) + 22
       fea08f03 void Rewriter::make_constant_pool_cache(Thread*) (b5bc7750, 8232400, 838c890, fea0a450) + 2f
       fea0ab69 Rewriter::Rewriter #Nvariant 1(instanceKlassHandle,constantPoolHandle,objArrayHandle,Thread*) (b5bc7750, 823473c, 8234740, 8234744, 8232400, b5bc7778) + 72d
       fe198774 void Rewriter::rewrite(instanceKlassHandle,Thread*) (823473c, 8232400, a81f9cdd, 8a5a0) + 15c
       fe1983cf void instanceKlass::rewrite_class(Thread*) (ba9eab10, 8232400, 8232400, 1) + 5f
       fe6dbc85 bool instanceKlass::link_class_impl(instanceKlassHandle,bool,Thread*) (8234730, 1, 8232400, 82346ec) + 831
       fe13fd54 void instanceKlass::link_class(Thread*) (ba9eac40, 8232400, b5bc7918, 8064bc4) + 60
       fe13fddb void instanceKlass::initialize_impl(instanceKlassHandle,Thread*) (823472c) + 2b
       fe130bc2 void instanceKlass::initialize(Thread*) (ba9eac40, 8232400, 8232400, fe1ee1ad) + 7e
       fe1ee427 JVM_FindClassFromClassLoader (8232518, b5bc7ac0, 1, b5bc7ba4, 0, 1) + 28b
       fdddccb9 Java_java_lang_Class_forName0 (8232518, b5bc7b9c, b5bc7bac, 1, b5bc7ba4, b5bc7b74) + c5
       fac0a1d2 * java/lang/Class.forName0(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;+0
       facecf28 * *java/lang/Class.forName(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class; [compiled] +33 (line 518)
       facecf28 * *nsk/sysdict/share/JCKTest$Loader.load(ILnsk/share/sysdict/JCKRuntimeTestCollector$JCKSuite;Lnsk/share/test/ExecutionController;)[Ljava/lang/Class;+194 (line 191)
       b6d07fe8 ???????? () + ffffffffb8f2b3f4

      ... Some more GC threads with similiar stack ...

      ----------------- lwp# 32 / thread# 32 --------------------
       feecac65 lwp_cond_wait (82cee48, 82cee30, 0, 0)
       fe9ab82d void os::PlatformEvent::park() (82cee00, febe44a6, b59dfe58, fe975001) + bd
       fe9752a3 int Monitor::IWait(Thread*,long long) (80655e0, 82cdc00, 0, 0) + 2b3
       fe9783a7 bool Monitor::wait(bool,long,bool) (80655e0, 0, 0, 0) + 11f
       fe68f31f void GC_locker::jni_lock_slow() (109, 832b5c0, fac00308, fe17f5c5, 82cdc00, 0) + 4b
       fe206b21 jni_GetStringCritical (82cdd18, 832b5c0, 0, fdddd2fd) + 121
       fddddacc JNU_GetStringPlatformChars (82cdd18, 832b5c0, 0, fddde274) + 7e0
       fddde2b7 Java_java_io_UnixFileSystem_getBooleanAttributes0 (82cdd18, b59e005c, b59e0060, baa6e0c0, e570d698, e570dbf0) + 57
       fac8c237 * *java/io/UnixFileSystem.getBooleanAttributes0(Ljava/io/File;)I [compiled]
       faca63a4 * *java/io/UnixFileSystem.getBooleanAttributes(Ljava/io/File;)I [compiled] +3 (line 484)
       b6b5da20 ???????? () + ffffffffb8d7f7c0
      ----------------- lwp# 39 / thread# 39 --------------------
       feecac65 lwp_cond_wait (82d8048, 82d8030, 0, 0)
       fe9ab82d void os::PlatformEvent::park() (82d8000, 82003e8, b5592bd0, 1) + bd
       fe149d7e void ObjectMonitor::enter(Thread*) (82003cc, 82d7400, 82d7400, fea87ad9) + 59a
       fea87bd3 void ObjectSynchronizer::fast_enter(Handle,BasicLock*,bool,Thread*) (82d7bf4, b5779a48, 0, 82d7400) + 10b
       fe1c8446 void instanceRefKlass::acquire_pending_list_lock(BasicLock*) (b5779a48) + 6e
       feb0bb6d bool VM_GC_Operation::doit_prologue() (b5779a30, fdd76000, b5779cf8, fe1c79d8) + 19
       fe1c7b5d void VMThread::execute(VM_Operation*) (b5779a30, 6, 158, a4) + 199
       fe0fb2df HeapWord*ParallelScavengeHeap::permanent_mem_allocate(unsigned) (8069678, 6, 83376b0, 2e0800) + 1b7
       fe13f079 instanceOopDesc*instanceKlass::allocate_permanent_instance(Thread*) (b6a0e610, 82d7400, b5779b28, fe145d8d) + 6d
       fe145de1 Handle java_lang_String::create_tenured_from_unicode(unsigned short*,int,Thread*) (b5779b7c, 82d7798, b) + 65
       fe1897ca oopDesc*StringTable::intern(oopDesc*,Thread*) (e5522c88, 82d7400, e5522ce0, fe189949) + 1a6
       fe189a0d JVM_InternString (82d7518, b5779c18, b6c5ed68, fdddcd53) + d5
       fdddcd68 Java_java_lang_String_intern (82d7518, b5779c18, e5522c88, b6ad84b9, e5522ba0, b6ad8b80) + 24
       fac56620 * *java/lang/String.intern()Ljava/lang/String; [compiled]
       fac660e8 * *java/util/jar/Attributes$Name.<init>(Ljava/lang/String;)V [compiled] +42 (line 963)
       fac660e8 * *java/util/jar/Attributes.putValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;+7 (line 336)
       b6e39e28 ???????? () + ffffffffb905d0e4

            ysr Y. Ramakrishna
            nhaustov Nicolay Haustov (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: