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

verify_memory() causes an assert when trying to report a memory corruption

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P4 P4
    • 11
    • 9
    • hotspot
    • None

      JDK-8156223 is in regards to a memory corruption. Sometimes when trying to report this corruption, verify_memory() calls tty->print_cr(), which results in the following assert:

      # Internal Error (/opt/jprt/T/P1/111506.mgerdin/s/hotspot/src/share/vm/runtime/mutex.cpp:454), pid=26316, tid=31
      # assert(_OnDeck != Self->_MutexEvent) failed: invariant

      Below is the stack trace:

      V [libjvm.so+0x2185a16] void VMError::report(outputStream*,bool)+0xef6
      V [libjvm.so+0x2187d23] void VMError::report_and_die(int,const char*,const char*,__va_list_element*,Thread*,unsigned char*,void*,void*,const char*,int,unsigned long)+0x8e3
      V [libjvm.so+0x21873d2] void VMError::report_and_die(Thread*,const char*,int,const char*,const char*,__va_list_element*)+0x42
      V [libjvm.so+0x14ea3b9] void report_vm_error(const char*,int,const char*,const char*,...)+0xf9
      V [libjvm.so+0x21868eb] void VMError::report(outputStream*,bool)+0x1dcb
      V [libjvm.so+0x2187d23] void VMError::report_and_die(int,const char*,const char*,__va_list_element*,Thread*,unsigned char*,void*,void*,const char*,int,unsigned long)+0x8e3
      V [libjvm.so+0x21873d2] void VMError::report_and_die(Thread*,const char*,int,const char*,const char*,__va_list_element*)+0x42
      V [libjvm.so+0x14ea3b9] void report_vm_error(const char*,int,const char*,const char*,...)+0xf9
      V [libjvm.so+0x20caa3a] void Thread::print_on_error(outputStream*,char*,int)const+0x1ea
      V [libjvm.so+0x2185841] void VMError::report(outputStream*,bool)+0xd21
      V [libjvm.so+0x2187d23] void VMError::report_and_die(int,const char*,const char*,__va_list_element*,Thread*,unsigned char*,void*,void*,const char*,int,unsigned long)+0x8e3
      V [libjvm.so+0x21873d2] void VMError::report_and_die(Thread*,const char*,int,const char*,const char*,__va_list_element*)+0x42
      V [libjvm.so+0x14ea3b9] void report_vm_error(const char*,int,const char*,const char*,...)+0xf9
      V [libjvm.so+0x1db3e30] void Monitor::ILock(Thread*)+0x4c0
      V [libjvm.so+0x1db53fa] void Monitor::lock_without_safepoint_check(Thread*)+0x2a
      V [libjvm.so+0x1e38abd] long defaultStream::hold(long)+0xdd
      V [libjvm.so+0x1e38c2a] void defaultStream::write(const char*,unsigned long)+0x2a
      V [libjvm.so+0x1e34fcb] void outputStream::print_cr(const char*,...)+0x39b
      V [libjvm.so+0x1e0edaa] void verify_memory(void*)+0xea
      V [libjvm.so+0x1e0f8ed] void os::free(void*)+0x6d
      V [libjvm.so+0x20c9a00] Thread::~Thread #Nvariant 1()+0x1b0
      V [libjvm.so+0x20dcf44] __SLIP.DELETER__B+0x14
      V [libjvm.so+0x20d03e3] void JavaThread::thread_main_inner()+0x393
      V [libjvm.so+0x20cfe7c] void JavaThread::run()+0x35c
      V [libjvm.so+0x1e1e192] java_start+0x132
      C [libc.so.1+0x1251f1] _thrp_setup+0xa5
      C [libc.so.1+0x125490] _lwp_start+0x0

      The assert might have something to do with the fact that the current Thread is in the process of being destroyed.

            gziemski Gerard Ziemski
            cjplummer Chris Plummer
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: