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

VM hangs of CodeCache_lock

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P2 P2
    • 1.4.0
    • 1.4.0
    • hotspot
    • beta
    • generic, x86
    • solaris_7, windows_nt



      The VM thread and a Java thread are deadlocking on the CodeCache_lock

      The VM thread

      current thread: t@4
        [1] __lwp_sema_wait(0xfd681e78, 0x0, 0x0, 0xff3989c4, 0x0, 0x0), at 0xff317aec
        [2] _park(0xfd681dc8, 0xfd681e78, 0x0, 0xfd681e54, 0xfd681e50, 0xfd681e4c), at 0xff36b1e4
        [3] _mutex_adaptive_lock(0x394f0, 0x4c00, 0xff38ca04, 0x1, 0x4d58, 0xfffeffff), at 0xff36c768
        [4] _cmutex_lock(0x394f0, 0xff, 0x7f480, 0xfdd04688, 0x0, 0x0), at 0xff36c518
      =>[5] os::Solaris::mutex_lock(mx = 0x394f0), line 151 in "os_solaris.hpp"
        [6] os::Solaris::Event::lock(this = 0x394e8), line 249 in "os_solaris.hpp"
        [7] Mutex::wait_for_lock_implementation(this = 0x39490), line 33 in "mutex_solaris.inline.hpp"
        [8] Mutex::lock(this = 0x39490), line 45 in "mutex.cpp"
        [9] MutexLocker::MutexLocker(this = 0xfd681550, mutex = 0x39490), line 94 in "mutexLocker.hpp"
        [10] BufferBlob::free(blob = 0xfa49c5c8), line 218 in "codeBlob.cpp"
        [11] ThreadCodeBuffer::~ThreadCodeBuffer(this = 0xd5618), line 41 in "threadCodeBuffer.cpp"
        [12] ThreadSafepointState::destroy_code_buffer(this = 0x103148), line 685 in "safepoint.cpp"
        [13] CompiledCodeSafepointHandler::release(this = 0x1031a0, state = 0x103148), line 875 in "safepoint.cpp"
        [14] ThreadSafepointState::restart(this = 0x103148), line 640 in "safepoint.cpp"
        [15] SafepointSynchronize::end(), line 183 in "safepoint.cpp"
        [16] VMThread::loop(this = 0xf2210), line 280 in "vmThread.cpp"
        [17] VMThread::run(this = 0xf2210), line 165 in "vmThread.cpp"
        [18] _start(data = 0xf2210), line 503 in "os_solaris.cpp"


      The other thread

      current thread: t@23
        [1] __lwp_sema_wait(0xf2881e78, 0x0, 0xff38ca04, 0x1, 0x4d58, 0xfffeffff), at 0xff317aec
        [2] _park(0xf2881dc8, 0xf2881e78, 0x0, 0x7, 0xff38d798, 0xf3681dc8), at 0xff36b1e4
        [3] _swtch(0x5, 0xff38ca04, 0xf2881e58, 0xf2881e54, 0xf2881e50, 0xf2881e4c), at 0xff36aed8
        [4] _mutex_adaptive_lock(0x27800, 0x4c00, 0xff38ca04, 0x1, 0x4d58, 0xfffeffff), at 0xff36c768
        [5] _cmutex_lock(0x27800, 0xff, 0x78a00, 0xfdd04688, 0x0, 0xf8166c19), at 0xff36c518
      =>[6] os::Solaris::mutex_lock(mx = 0x27800), line 151 in "os_solaris.hpp"
        [7] os::Solaris::Event::lock(this = 0x277f8), line 249 in "os_solaris.hpp"
        [8] Mutex::wait_for_lock_implementation(this = 0x27790), line 33 in "mutex_solaris.inline.hpp"
        [9] Mutex::lock_without_safepoint_check(this = 0x27790), line 94 in "mutex.cpp"
        [10] SafepointSynchronize::block(thread = 0x15d348), line 288 in "safepoint.cpp"
        [11] ThreadStateTransition::transition(thread = 0x15d348, from = _thread_blocked, to = _thread_in_vm), line 96 in "interfaceSupport.hpp"
        [12] ThreadStateTransition::trans(this = 0xf287f6ec, from = _thread_blocked, to = _thread_in_vm), line 108 in "interfaceSupport.hpp"
        [13] ThreadBlockInVM::~ThreadBlockInVM(this = 0xf287f6ec), line 187 in "interfaceSupport.hpp"
        [14] Mutex::wait_for_lock_blocking_implementation(this = 0x39490, thread = 0x15d348), line 41 in "mutex_solaris.inline.hpp"
        [15] Mutex::lock(this = 0x39490), line 47 in "mutex.cpp"
        [16] MutexLocker::MutexLocker(this = 0xf287f864, mutex = 0x39490), line 94 in "mutexLocker.hpp"
        [17] CodeCache::mark_for_deoptimization(dependee = 0xf8166f18), line 333 in "codeCache.cpp"
        [18] Universe::flush_dependents_on(dependee = CLASS), line 642 in "universe.cpp"
        [19] SystemDictionary::add_to_hierarchy(k = CLASS, __the_thread__ = 0x15d348), line 792 in "systemDictionary.cpp"
        [20] SystemDictionary::define_instance_class(k = CLASS, __the_thread__ = 0x15d348), line 649 in "systemDictionary.cpp"
        [21] SystemDictionary::load_instance_class(class_name = CLASS, class_loader = CLASS, __the_thread__ = 0x15d348), line 597 in "systemDictionary.cpp"
        [22] SystemDictionary::resolve_instance_class_or_null(class_name = CLASS, class_loader = CLASS, protection_domain = CLASS, __the_thread__ = 0x15d348), line 472 in "systemDictionary.cpp"
        [23] SystemDictionary::resolve_or_null(class_name = CLASS, class_loader = CLASS, protection_domain = CLASS, __the_thread__ = 0x15d348), line 346 in "systemDictionary.cpp"
        [24] SystemDictionary::resolve_or_fail(class_name = CLASS, class_loader = CLASS, protection_domain = CLASS, throw_error = 0x1, __the_thread__ = 0x15d348), line 313 in "systemDictionary.cpp"
        [25] ClassFileParser::parse_interfaces(this = 0xf28801f8, cp = CLASS, class_loader = CLASS, protection_domain = CLASS, __the_thread__ = 0x15d348), line 271 in "classFileParser.cpp"
        [26] ClassFileParser::parseClassFile(this = 0xf28801f8, name = CLASS, class_loader = CLASS, protection_domain = CLASS, __the_thread__ = 0x15d348), line 933 in "classFileParser.cpp"
        [27] ClassLoader::load_classfile(h_name = CLASS, __the_thread__ = 0x15d348), line 359 in "classLoader.cpp"
        [28] SystemDictionary::load_instance_class(class_name = CLASS, class_loader = CLASS, __the_thread__ = 0x15d348), line 595 in "systemDictionary.cpp"
        [29] SystemDictionary::resolve_instance_class_or_null(class_name = CLASS, class_loader = CLASS, protection_domain = CLASS, __the_thread__ = 0x15d348), line 472 in "systemDictionary.cpp"
        [30] SystemDictionary::resolve_or_null(class_name = CLASS, class_loader = CLASS, protection_domain = CLASS, __the_thread__ = 0x15d348), line 346 in "systemDictionary.cpp"
        [31] SystemDictionary::resolve_or_fail(class_name = CLASS, class_loader = CLASS, protection_domain = CLASS, throw_error = 0x1, __the_thread__ = 0x15d348), line 313 in "systemDictionary.cpp"
        [32] constantPoolOopDesc::klass_at_impl(this_oop = CLASS, which = 0x6, __the_thread__ = 0x15d348), line 48 in "constantPoolOop.cpp"
        [33] constantPoolOopDesc::klass_at(this = 0xf8154b08, which = 0x6, __the_thread__ = 0x15d348), line 162 in "constantPoolOop.hpp"
        [34] InterpreterRuntime::_new(thread = 0x15d348, pool = 0xf8154b08, index = 0x6), line 103 in "interpreterRuntime.cpp"
        [35] 0xfa4277f4(0xf2880924, 0xb7, 0x0, 0xfa41b2a8, 0x4, 0xf2880848), at 0xfa4277f3
        [36] 0xfa406c10(0xf288099c, 0x15d348, 0x0, 0xfa4266a8, 0x4, 0xf28808c8), at 0xfa406c0f
        [37] 0xfa400518(0xf2880a2c, 0xfe5fdd48, 0xa, 0xf8157dd0, 0x4, 0xf2880940), at 0xfa400517
        [38] JavaCalls::call_helper(result = 0xfe5fdd40, m = 0xf2880c38, args = 0xf2880bf8, __the_thread__ = 0x15d348), line 353 in "javaCalls.cpp"
        [39] os::os_exception_wrapper(f = 0xfdb710f0 = &JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*), value = 0xfe5fdd40, method = 0xf2880c38, args = 0xf2880bf8, thread = 0x15d348), line 1839 in "os_solaris.cpp"
        [40] JavaCalls::call(result = 0xfe5fdd40, method = CLASS, args = 0xf2880bf8, __the_thread__ = 0x15d348), line 290 in "javaCalls.cpp"
        [41] JavaCalls::call_default_constructor(thread = 0x15d348, method = CLASS, receiver = CLASS, __the_thread__ = 0x15d348), line 171 in "javaCalls.cpp"
        [42] JVM_NewInstance(env = 0x15d3e0, cls = 0xf2880e8c), line 1155 in "jvm.cpp"
        [43] 0xfa40f0a8(0xf2880e8c, 0xf2880f10, 0x0, 0xfa423890, 0x0, 0x109a0), at 0xfa40f0a7
        [44] 0xfa4069b8(0xf2880f14, 0xb6, 0x0, 0xfa4266a8, 0x4, 0xf2880e28), at 0xfa4069b7
        [45] 0xfa4069b8(0xf2880fb0, 0xb8, 0x0, 0xfa426ae8, 0x4, 0xf2880ea8), at 0xfa4069b7
        [46] 0xfa4069b8(0xf288104c, 0xb7, 0x0, 0xfa426ae8, 0x0, 0xf2880f48), at 0xfa4069b7
        [47] 0xfa406c10(0xf28810cc, 0xb7, 0x0, 0xfa4266a8, 0x8, 0xf2880fe0), at 0xfa406c0f
        [48] 0xfa406c10(0xf2881154, 0xb7, 0x0, 0xfa4266a8, 0xc, 0xf2881068), at 0xfa406c0f
        [49] 0xfa406c10(0xf28811cc, 0x15d348, 0x0, 0xfa4266a8, 0x4, 0xf28810e8), at 0xfa406c0f
        [50] 0xfa400518(0xf288125c, 0xfe5fdd48, 0xa, 0xf80e5818, 0x4, 0xf2881170), at 0xfa400517
        [51] JavaCalls::call_helper(result = 0xfe5fdd40, m = 0xf2881468, args = 0xf2881428, __the_thread__ = 0x15d348), line 353 in "javaCalls.cpp"
        [52] os::os_exception_wrapper(f = 0xfdb710f0 = &JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*), value = 0xfe5fdd40, method = 0xf2881468, args = 0xf2881428, thread = 0x15d348), line 1839 in "os_solaris.cpp"
        [53] JavaCalls::call(result = 0xfe5fdd40, method = CLASS, args = 0xf2881428, __the_thread__ = 0x15d348), line 290 in "javaCalls.cpp"
        [54] JavaCalls::call_default_constructor(thread = 0x15d348, method = CLASS, receiver = CLASS, __the_thread__ = 0x15d348), line 171 in "javaCalls.cpp"
        [55] JVM_NewInstance(env = 0x15d3e0, cls = 0xf28816bc), line 1155 in "jvm.cpp"
        [56] 0xfa40f0a8(0xf28816bc, 0xf2881740, 0x0, 0xfa423890, 0x0, 0x109a0), at 0xfa40f0a7
        [57] 0xfa4069b8(0xf2881744, 0xb6, 0x0, 0xfa4266a8, 0x4, 0xf2881658), at 0xfa4069b7
        [58] 0xfa4069b8(0xf28817d4, 0x15d348, 0x0, 0xfa426214, 0x4, 0xf28816d8), at 0xfa4069b7
        [59] 0xfa400518(0xf2881864, 0xf2881bc0, 0xa, 0xf80c2c20, 0x4, 0xf2881778), at 0xfa400517
        [60] JavaCalls::call_helper(result = 0xf2881bb8, m = 0xf2881a40, args = 0xf2881afc, __the_thread__ = 0x15d348), line 353 in "javaCalls.cpp"
        [61] os::os_exception_wrapper(f = 0xfdb710f0 = &JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*), value = 0xf2881bb8, method = 0xf2881a40, args = 0xf2881afc, thread = 0x15d348), line 1839 in "os_solaris.cpp"
        [62] JavaCalls::call(result = 0xf2881bb8, method = CLASS, args = 0xf2881afc, __the_thread__ = 0x15d348), line 290 in "javaCalls.cpp"
        [63] JavaCalls::call_virtual(result = 0xf2881bb8, spec_klass = CLASS, name = CLASS, signature = CLASS, args = 0xf2881afc, __the_thread__ = 0x15d348), line 186 in "javaCalls.cpp"
        [64] JavaCalls::call_virtual(result = 0xf2881bb8, receiver = CLASS, spec_klass = CLASS, name = CLASS, signature = CLASS, __the_thread__ = 0x15d348), line 192 in "javaCalls.cpp"
        [65] thread_entry(thread = 0x15d348, __the_thread__ = 0x15d348), line 1709 in "jvm.cpp"
        [66] JavaThread::thread_main_inner(this = 0x15d348), line 782 in "thread.cpp"
        [67] JavaThread::run(this = 0x15d348), line 766 in "thread.cpp"
        [68] _start(data = 0x15d348), line 503 in "os_solaris.cpp"

      jon.masamitsu@Eng 2000-12-01

            jmasa Jon Masamitsu (Inactive)
            jmasa Jon Masamitsu (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: