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

jck test unbind_Unbind001 hangs when exiting in solaris i486 on set_thread

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P4 P4
    • 1.3.1
    • 1.3.1
    • hotspot
    • None
    • beta
    • x86
    • solaris_8

        The JCK test unbind_Unbind001 hangs when exiting on Solaris i486. The call
        stack indicates that a set_thread call is made which causes a thread to
        hold the malloc lock. The thread holding the lock gets interrupted by a gc
        event, it appears. This causes the test to hang. It's intermittent - about
        1 in every 20 times, and has been reproduced with a ladybird baseline,
        product build, and on a lightly loaded 2 cpu system.

        The interesting thread stacks are below. I'll attach an output file of the
        dbx session which I've attached to the hanging application.

        (dbx) where
        current thread: t@21
        =>[1] __lwp_sema_wait(0xd52f0d74), at 0xdfaeab46
          [2] _park(), at 0xdfb893ad
          [3] _swtch(), at 0xdfb891d3
          [4] _dopreempt(), at 0xdfb8b366
          [5] _sigsuspnd(), at 0xdfb8d863
          [6] _siglwp(), at 0xdfb8d8a6
          [7] __sighndlr(), at 0xdfb878bf
          [8] sigacthandler(), at 0xdfb958db
          ---- called from signal handler with signal 33 (SIGLWP) ------
          [9] _smalloc(), at 0xdfaf583e
          [10] _malloc_unlocked(), at 0xdfaf5958
          [11] realloc(), at 0xdfaf5a96
          [12] pthread_setspecific(), at 0xdfb91fd6
          [13] os::thread_local_storage_at_put(), at 0xdee2a2d9
          [14] ThreadLocalStorage::set_thread(), at 0xdee5afa2
          [15] Thread::initialize_thread_local_storage(), at 0xdee5690a
          [16] JavaThread::run(), at 0xdee57bb3
          [17] _start(), at 0xdee29905

        and

        (dbx) where t@17
        current thread: t@17
        =>[1] _swtch(0x0), at 0xdfb892ab
          [2] _mutex_adaptive_lock(0x804e900), at 0xdfb8a682
          [3] _cmutex_lock(0x804e900), at 0xdfb8a4ac
          [4] Mutex::wait_for_lock_implementation(0x804e8d0), at 0xdee1ff5b
          [5] Mutex::lock_without_safepoint_check(0x804e8d0), at 0xdee1fd28
          [6] SafepointSynchronize::block(0x8156c70), at 0xdee398be
          [7] ObjectMonitor::wait(0x80f4634), at 0xdee24d5b
          [8] ObjectSynchronizer::wait(0x81535d0), at 0xdee448a9
          [9] JVM_MonitorWait(0x8156cf4), at 0xdedeea43
          [10] 0x8099ca3(0x0), at 0x8099ca2
          [11] 0x8096fdc(0x0), at 0x8096fdb
          [12] 0x8097094(0x0), at 0x8097093
          [13] 0x80971a8(0xd5862ab8), at 0x80971a7
          [14] 0xdefed2d6(0xd5430b64), at 0xdefed2d5
          [15] JavaCalls::call_helper(0xd5430cdc), at 0xdedd6cd8
          [16] os::os_exception_wrapper(0xdedd6b88), at 0xdee2b46f
          [17] JavaCalls::call(0xd5430cdc), at 0xdedd6b7b
          [18] JavaCalls::call_virtual(0xd5430cdc), at 0xdedd6514
          [19] JavaCalls::call_virtual(0xd5430cdc), at 0xdedd6595
          [20] thread_entry(0x8156c70), at 0xdedf555d
          [21] JavaThread::thread_main_inner(0x8156c70), at 0xdee57c70
          [22] JavaThread::run(0x8156c70), at 0xdee57c1b
          [23] _start(0x8156c70), at 0xdee29905

        (dbx) where t@1
        current thread: t@1
        =>[1] _swtch(0x0), at 0xdfb892ab
          [2] cond_wait(0x804f4c8), at 0xdfb880ef
          [3] Monitor::wait(0x804f480), at 0xdee20e76
          [4] VMThread::execute(0x8046354), at 0xdee65f61
          [5] os::exit(0x5f), at 0xdee2a527
          [6] vm_exit(0x5f), at 0xdedd5c69
          [7] JVM_Halt(0x5f), at 0xdedee315
          [8] Java_java_lang_Shutdown_halt(0x80501fc), at 0xdf8edd84
          [9] 0x8099ca3(0xd983c8a8), at 0x8099ca2
          [10] 0x8096fdc(0x0), at 0x8096fdb
          [11] 0x8096fdc(0xd58404b0), at 0x8096fdb
          [12] 0x8096fdc(0x5f), at 0x8096fdb
          [13] 0x8096fdc(0xd58099c8), at 0x8096fdb
          [14] 0x8096fdc(0xd5840348), at 0x8096fdb
          [15] 0xdefed2d6(0x8046534), at 0xdefed2d5
          [16] JavaCalls::call_helper(0x8046698), at 0xdedd6cd8
          [17] os::os_exception_wrapper(0xdedd6b88), at 0xdee2b46f
          [18] JavaCalls::call(0x8046698), at 0xdedd6b7b
          [19] jni_invoke(0x80501fc), at 0xdeddc35d
          [20] jni_CallStaticVoidMethod(0x80501fc), at 0xdede4717
          [21] main(0x4), at 0x8049a05
        (dbx) where t@4
        current thread: t@4
        =>[1] __lwp_sema_wait(0xdf605d74), at 0xdfaeab46
          [2] _park(), at 0xdfb893ad
          [3] _swtch(), at 0xdfb88fe8
          [4] _mutex_adaptive_lock(), at 0xdfb8a682
          [5] _cmutex_lock(), at 0xdfb8a4ac
          [6] SuspendThread_Callback::execute(), at 0xdee2c464
          [7] suspend_thread_impl(), at 0xdee29f42
          [8] os::suspend_thread(), at 0xdee29ff7
          [9] os::suspend_thread_async(), at 0xdee2a019
          [10] VM_Exit::doit(), at 0xdee2c3c9
          [11] VM_Operation::evaluate(), at 0xdee663a5
          [12] VMThread::evaluate_operation(), at 0xdee65b46
          [13] VMThread::loop(), at 0xdee65d41
          [14] VMThread::run(), at 0xdee659ce
          [15] _start(), at 0xdee29905



              coleenp Coleen Phillimore
              coleenp Coleen Phillimore
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: