-
Bug
-
Resolution: Fixed
-
P2
-
1.4.2
-
b17
-
generic, sparc
-
solaris_8
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2064234 | 5.0 | Coleen Phillimore | P2 | Closed | Fixed | beta |
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"
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"
- backported by
-
JDK-2064234 Assert when attempting to resolve class during multinewarray
-
- Closed
-
- duplicates
-
JDK-4803892 Assert in markSweep during a full gc
-
- Closed
-
- relates to
-
JDK-4802822 assertion failure as assert(is_null() || obj ->is_klass(), "not a klassOop"
-
- Closed
-