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

Assert when attempting to resolve class during multinewarray

XMLWordPrintable

    • b17
    • generic, sparc
    • solaris_8

        I have been able to reliably reproduce this bug on cast (48 cpu e10k)
        running volanotest. The bug reproduces in product, fastdebug, and debug
        builds of the sparc 64 bit VM. The product mode failures appear different
        because they are not caught in an assert, and the VM goes a bit further
        off the deep end before failing, usually with an attempt by the interpreter
        to execute an illegal byte code.

        Here is the assert from a fastdebug build:

        # To suppress the following error report, specify this argument
        # after -XX: or in .hotspotrc: SuppressErrorAt=/handles.cpp:16
        #
        # HotSpot Virtual Machine Error, assertion failure
        # Please report this error at
        # http://java.sun.com/cgi-bin/bugreport.cgi
        #
        # Java VM: Java HotSpot(TM) 64-Bit Server VM (1.4.1-internal-debug mixed mode)
        #
        # assert(obj->is_oop(), "sanity check")
        #
        # Error ID: /net/ghopper/LocalBuild/gc_baseline/src/share/vm/runtime/handles.cpp, 16 [ Patched ]
        #
        # Problematic Thread: prio=5 tid=0x0000000100419d38 nid=0x172 runnable
        #
        assertion failure
        assert(obj->is_oop(), "sanity check")

        Do you want to debug the problem?

        -------------------------------------------------------------

        From dbx:

        cast:/bt/VolanoTestrun.5473.-d64> ps -ef | grep java
        ovrskeek 17162 15294 0 20:44:15 pts/1 0:49 /net/ghopper/LocalBuild/jdk1.4.2/bin/sparcv9/java -XX:+ShowMessageBoxOnError -X
        ovrskeek 17393 858 0 15:22:12 pts/3 0:00 grep java
        ovrskeek 15324 15294 0 Jan 28 pts/1 1317:26 /net/ghopper/LocalBuild/jdk1.4.2/bin/sparcv9/java -XX:+ShowMessageBoxOnError -m
        cast:/bt/VolanoTestrun.5473.-d64> dbx - 17162
        Reading -
        Reading ld.so.1
        Reading libthread.so.1
        Reading libdl.so.1
        Reading libc.so.1
        Reading libc_psr.so.1
        Reading libjvm.so
        Reading libCrun.so.1
        Reading libsocket.so.1
        Reading libnsl.so.1
        Reading libm.so.1
        Reading libsched.so.1
        Reading libw.so.1
        Reading libmp.so.2
        Reading librt.so.1
        Reading libaio.so.1
        Reading libmd5.so.1
        Reading libmd5_psr.so.1
        Reading libhpi.so
        Reading libverify.so
        Reading libjava.so
        Reading libzip.so
        Reading libnet.so
        detected a multithreaded program
        Attached to process 17162 with 410 LWPs
        t@1 (l@1) stopped in ___lwp_cond_wait at 0xffffffff7efa4fd8
        0xffffffff7efa4fd8: ___lwp_cond_wait+0x0004: ta %icc,%g0 + 64
        Current function is os::Solaris::Event::down (optimized)
          339 }
        (/java/devtools/sparc/SUNWspro/SC6.1/bin/../WS6U1/bin/sparcv9/dbx) t@370 <
        Current function is os::message_box (optimized)
         2543 }
        t@370 (l@370) stopped in _libc_nanosleep at 0xffffffff7efa24b0
        0xffffffff7efa24b0: _libc_nanosleep+0x0004: ta %icc,%g0 + 64
        (/java/devtools/sparc/SUNWspro/SC6.1/bin/../WS6U1/bin/sparcv9/dbx) where -q
        current thread: t@370
          [1] _libc_nanosleep()
          [2] sleep()
        =>[3] os::message_box(const char*,const char*) (optimized)
          [4] report_error(int,const char*,int,const char*,const char*,...)
          [5] report_assertion_failure(const char*,const char*,int,const char*)
          [6] HandleArea::allocate_handle(oopDesc*)
          [7] objArrayKlass::array_klass_impl(objArrayKlassHandle,int,int,Thread*)
          [8] objArrayKlass::array_klass_impl(int,int,Thread*)
          [9] instanceKlass::array_klass_impl(instanceKlassHandle,int,int,Thread*)
          [10] instanceKlass::array_klass_impl(int,int,Thread*)
          [11] SystemDictionary::resolve_array_class_or_null(symbolHandle,Handle,Handle,Thread*)
          [12] SystemDictionary::resolve_or_null(symbolHandle,Handle,Handle,Thread*)
          [13] SystemDictionary::resolve_or_fail(symbolHandle,Handle,Handle,int,Thread*)
          [14] constantPoolOopDesc::klass_at_impl(constantPoolHandle,int,Thread*)
          [15] InterpreterRuntime::multianewarray(JavaThread*,int*)
          [16] 0xffffffff38434474()
          [17] 0xffffffff38406f3c()
          [18] 0xffffffff38406f3c()
          [19] 0xffffffff38407914()
          [20] 0xffffffff38406f3c()
          [21] 0xffffffff38406f3c()
          [22] 0xffffffff38407914()
          [23] 0xffffffff384001fc()
          [24] JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)
          [25] JavaCalls::call(JavaValue*,methodHandle,JavaCallArguments*,Thread*)
          [26] JavaCalls::call_virtual(JavaValue*,KlassHandle,symbolHandle,symbolHandle,JavaCallArguments*,Thread*)
          [27] JavaCalls::call_virtual(JavaValue*,Handle,KlassHandle,symbolHandle,symbolHandle,Thread*)
          [28] thread_entry(JavaThread*,Thread*)
          [29] JavaThread::thread_main_inner()
          [30] _start() (optimized)
        (/java/devtools/sparc/SUNWspro/SC6.1/bin/../WS6U1/bin/sparcv9/dbx) frame 7
        Current function is objArrayKlass::array_klass_impl (optimized)
          194 }
        (/java/devtools/sparc/SUNWspro/SC6.1/bin/../WS6U1/bin/sparcv9/dbx) where
        current thread: t@370
          [1] _libc_nanosleep(0xfffffffefc3fd090, 0xfffffffefc3fd080, 0xffffffff7f0bb310, 0x0, 0x73, 0x0), at 0xffffffff7efa24b0
          [2] sleep(0x64, 0x400, 0xffffffff7f0bb310, 0xfffffffefc3fd60c, 0xa8f7c0, 0xffffffff7dd7d420), at 0xffffffff7f210bfc
          [3] os::message_box(title = ???, message = ???) (optimized), at 0xffffffff7dd786ac (line ~2543) in "os_solaris.cpp"
          [4] report_error(is_vm_internal_error = ???, file_name = ???, line_no = ???, title = ???, format = ???, ...) (optimized), at 0xffffffff7d9165a8 (line ~460) in "debug.cpp"
          [5] report_assertion_failure(code_str = ???, file_name = ???, line_no = ???, message = ???) (optimized), at 0xffffffff7d915bd8 (line ~240) in "debug.cpp"
          [6] HandleArea::allocate_handle(this = ???, obj = ???) (optimized), at 0xffffffff7d9cb378 (line ~18) in "handles.cpp"
        =>[7] objArrayKlass::array_klass_impl(this_oop = CLASS, or_null = ???, n = ???, __the_thread__ = ???) (optimized), at 0xffffffff7dd54998 (line ~194) in "objArrayKlass.cpp"
          [8] objArrayKlass::array_klass_impl(this = ???, or_null = ???, n = ???, __the_thread__ = ???) (optimized), at 0xffffffff7dd54140 (line ~134) in "objArrayKlass.cpp"
          [9] instanceKlass::array_klass_impl(this_oop = CLASS, or_null = ???, n = ???, __the_thread__ = ???) (optimized), at 0xffffffff7d9f67d8 (line ~527) in "instanceKlass.cpp"
          [10] instanceKlass::array_klass_impl(this = ???, or_null = ???, n = ???, __the_thread__ = ???) (optimized), at 0xffffffff7d9f6098 (line ~480) in "instanceKlass.cpp"
          [11] SystemDictionary::resolve_array_class_or_null(class_name = CLASS, class_loader = CLASS, protection_domain = CLASS, __the_thread__ = ???) (optimized), at 0xffffffff7de9d058 (line ~406) in "systemDictionary.cpp"
          [12] SystemDictionary::resolve_or_null(class_name = CLASS, class_loader = CLASS, protection_domain = CLASS, __the_thread__ = ???) (optimized), at 0xffffffff7de9cd28 (line ~362) in "systemDictionary.cpp"
          [13] SystemDictionary::resolve_or_fail(class_name = CLASS, class_loader = CLASS, protection_domain = CLASS, throw_error = ???, __the_thread__ = ???) (optimized), at 0xffffffff7de9c738 (line ~345) in "systemDictionary.cpp"
          [14] constantPoolOopDesc::klass_at_impl(this_oop = CLASS, which = ???, __the_thread__ = ???) (optimized), at 0xffffffff7d90d5c4 (line ~91) in "constantPoolOop.cpp"
          [15] InterpreterRuntime::multianewarray(thread = ???, first_size_address = ???) (optimized), at 0xffffffff7da39210 (line ~150) in "interpreterRuntime.cpp"
          [16] 0xffffffff38434474(0xfffffffefc3ff0e8, 0xb7, 0x0, 0xffffffff3843089c, 0x8, 0xfffffffefc3fef30), at 0xffffffff38434473
          [17] 0xffffffff38406f3c(0xfffffffefc3ff228, 0xd, 0x0, 0xffffffff38431a5c, 0x10, 0xfffffffefc3ff020), at 0xffffffff38406f3b
          [18] 0xffffffff38406f3c(0xfffffffefc3ff348, 0xffffffff32d89450, 0x0, 0xffffffff38431a5c, 0x18, 0xfffffffefc3ff140), at 0xffffffff38406f3b
          [19] 0xffffffff38407914(0xfffffffefc3ff468, 0xfffffffefc3ff568, 0x0, 0xffffffff3843239c, 0x18, 0xfffffffefc3ff280), at 0xffffffff38407913
          [20] 0xffffffff38406f3c(0xfffffffefc3ff578, 0xffffffffffffffeb, 0x0, 0xffffffff3843149c, 0x10, 0xfffffffefc3ff3b0), at 0xffffffff38406f3b
          [21] 0xffffffff38406f3c(0xfffffffefc3ff688, 0xffffffff32c302b8, 0x0, 0xffffffff38431a5c, 0x10, 0xfffffffefc3ff4b0), at 0xffffffff38406f3b
          [22] 0xffffffff38407914(0xfffffffefc3ff778, 0xffffffff7e904eb4, 0x0, 0xffffffff3843239c, 0x8, 0xfffffffefc3ff5d0), at 0xffffffff38407913
          [23] 0xffffffff384001fc(0xfffffffefc3ff878, 0xfffffffefc3ffd58, 0xa, 0xffffffff32c311b0, 0x8, 0xfffffffefc3ff6c0), at 0xffffffff384001fb
          [24] JavaCalls::call_helper(result = ???, m = ???, args = ???, __the_thread__ = ???) (optimized), at 0xffffffff7da7a128 (line ~395) in "javaCalls.cpp"
          [25] JavaCalls::call(result = ???, method = CLASS, args = ???, __the_thread__ = ???) (optimized), at 0xffffffff7da79ba0 (line ~305) in "javaCalls.cpp"
          [26] JavaCalls::call_virtual(result = ???, spec_klass = CLASS, name = CLASS, signature = CLASS, args = ???, __the_thread__ = ???) (optimized), at 0xffffffff7da79360 (line ~188) in "javaCalls.cpp"
          [27] JavaCalls::call_virtual(result = ???, receiver = CLASS, spec_klass = CLASS, name = CLASS, signature = CLASS, __the_thread__ = ???) (optimized), at 0xffffffff7da793f4 (line ~194) in "javaCalls.cpp"
          [28] thread_entry(thread = ???, __the_thread__ = ???) (optimized), at 0xffffffff7db792ac (line ~1845) in "jvm.cpp"
          [29] JavaThread::thread_main_inner(this = ???) (optimized), at 0xffffffff7dee90e8 (line ~1145) in "thread.cpp"
          [30] _start(data = ???) (optimized), at 0xffffffff7dd72eac (line ~746) in "os_solaris.cpp"

              coleenp Coleen Phillimore
              jmcilreesunw James Mcilree (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: