Possible bug: JVM crash due to GC when using indy
shanka.mns at gmail.com
shanka.mns at gmail.com
Mon Mar 28 13:20:40 PDT 2011
On Mon, Mar 28, 2011 at 11:44 AM, Christian Thalinger <
christian.thalinger at oracle.com> wrote:
> -XX:+UseSerialGC. It seems my previous email didn't make it to the list.
>
This worked. Well sort of. The JVM doesn't crash because of a GC issue now.
However, this uncovered another issue. The JVM crashes when doing an indy
dispatch I think.
The crash log:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007fd2186de2a7, pid=15004, tid=140540348679936
#
# JRE version: 7.0
# Java VM: OpenJDK 64-Bit Server VM (21.0-b01 mixed mode linux-amd64
compressed oops)
# Problematic frame:
# V [libjvm.so+0x5ad2a7] Klass::external_name() const+0x47
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
--------------- T H R E A D ---------------
Current thread (0x0000000001a73000): JavaThread "MainThread"
[_thread_in_vm, id=15005,
stack(0x00007fd2197f4000,0x00007fd2198f5000)]
siginfo:si_signo=SIGSEGV: si_errno=0, si_code=128 (), si_addr=0x0000000000000000
Registers:
RAX=0x000000005f0a105f, RBX=0x00000000fc44dbd0,
RCX=0x0000000000000000, RDX=0x00007fd2198efee0
RSP=0x00000000dc6ae130, RBP=0x00000000dc6ae180,
RSI=0x00007fd218953015, RDI=0xbf8101c00700997f
R8 =0x0000000000000002, R9 =0x0000000000000002,
R10=0x00007fd218d15ac0, R11=0x00007fd213f24df0
R12=0x00007fd218953015, R13=0x00000000fc44dbc0,
R14=0x00007fd2198eff50, R15=0x0000000001a73000
RIP=0x00007fd2186de2a7, EFLAGS=0x0000000000010206,
CSGSFS=0x0000000000000033, ERR=0x0000000000000000
TRAPNO=0x000000000000000d
Top of Stack: (sp=0x00000000dc6ae130)
0x00000000dc6ae130: dc6ad9b000000000 0000000000000005
0x00000000dc6ae140: dc6ae118fb233430 0000000000000005
0x00000000dc6ae150: e595de68fb208800 6c010035fd182600
0x00000000dc6ae160: 0000000001a73000 00007fd218953015
0x00000000dc6ae170: 00000000fc44dbc0 00007fd2198eff50
0x00000000dc6ae180: 00000000dc6ae1f0 00007fd2185f5724
0x00000000dc6ae190: 0000000001a70530 0000000001a735d0
0x00000000dc6ae1a0: 0000000001a735e0 0000000001a739b8
0x00000000dc6ae1b0: 0000000001a73000 0000000000000005
0x00000000dc6ae1c0: 0000000001a73000 0000001a00000000
0x00000000dc6ae1d0: 0000000000000000 00000000fc44dbb8
0x00000000dc6ae1e0: 0000000000000000 00000000fc44dbc0
0x00000000dc6ae1f0: 00007fd2198eff20 00007fd213e23a1c
0x00000000dc6ae200: 00007fd213e239da 0000000000000001
0x00000000dc6ae210: 00000006faea3dd8 0000000000000000
0x00000000dc6ae220: 0000000000000000 0000000000000000
0x00000000dc6ae230: 0000000000000005 0000000ffb98f9e0
0x00000000dc6ae240: e5dedb40e5dedb18 e5dedb90e5dedb68
0x00000000dc6ae250: e5dedbe0e5dedbb8 dc6adfa0e5dedd08
0x00000000dc6ae260: 00000000dc6adfa0 0000000000000005
0x00000000dc6ae270: 0000002bfb990948 e5dedd90e5dedd70
0x00000000dc6ae280: e5deddd0e5deddb0 e5dede10e5deddf0
0x00000000dc6ae290: dc6adfa0e5dedf28 00000000dc6adfa0
0x00000000dc6ae2a0: 0000000000000005 0000002cfb991f90
0x00000000dc6ae2b0: e5dee568e5dee358 e5dee988e5dee778
0x00000000dc6ae2c0: e5deeda8e5deeb98 dc6adfa0e5def0b0
0x00000000dc6ae2d0: 00000000dc6adfa0 0000000000000005
0x00000000dc6ae2e0: 00000000fb995a90 0000000800000000
0x00000000dc6ae2f0: dc6adfa000000000 00000000dc6ae308
0x00000000dc6ae300: 0000000000000000 0000000000000005
0x00000000dc6ae310: 00000008faed3040 dc6ae8d000000008
0x00000000dc6ae320: 0000000000000001 00000168fae011a0
Instructions: (pc=0x00007fd2186de2a7)
0x00007fd2186de287: d8 31 c0 8b 47 08 85 c0 0f 8e cb 00 00 00 48 83
0x00007fd2186de297: bf f8 00 00 00 00 0f 84 bd 00 00 00 48 8b 7f 68
0x00007fd2186de2a7: 48 8b 17 48 89 d0 83 e0 07 48 83 f8 01 0f 84 fe
0x00007fd2186de2b7: 00 00 00 48 89 d0 83 e0 03 48 83 f8 03 0f 84 d6
Register to memory mapping:
RAX=0x000000005f0a105f is an unknown value
RBX=0x00000000fc44dbd0 is an oop
{constMethod}
- klass: {other class}
- method: 0x00000000fc44ded8 {method} '_qformat$25'
'(Lorg/python/core/PyFrame;Lorg/python/core/ThreadState;)Lorg/python/core/PyObject;'
in 'difflib$py'
- exceptions: 0x00000000fae01d30
bci_from(0xfc44dbd0) = 264; print_codes():
RCX=0x0000000000000000 is an unknown value
RDX=0x00007fd2198efee0 is pointing into the stack for thread: 0x0000000001a73000
RSP=
[error occurred during error reporting (printing register info), id 0xb]
Stack: [0x00007fd2197f4000,0x00007fd2198f5000],
sp=0x00000000dc6ae130, free space=18014261266660072k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x5ad2a7] Klass::external_name() const+0x47
V [libjvm.so+0x4c4724]
InterpreterRuntime::create_klass_exception(JavaThread*, char*,
oopDesc*)+0x74
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j difflib$py._qformat$25(Lorg/python/core/PyFrame;Lorg/python/core/ThreadState;)Lorg/python/core/PyObject;+248
j difflib$py.call_function(ILorg/python/core/PyFrame;Lorg/python/core/ThreadState;)Lorg/python/core/PyObject;+320
J org.python.core.PyTableCode.call(Lorg/python/core/ThreadState;Lorg/python/core/PyFrame;Lorg/python/core/PyObject;)Lorg/python/core/PyObject;
j org.python.core.PyGenerator.__iternext__(Lorg/python/core/ThreadState;)Lorg/python/core/PyObject;+63
j org.python.core.PyGenerator.__iternext__()Lorg/python/core/PyObject;+4
j difflib$py._fancy_replace$23(Lorg/python/core/PyFrame;Lorg/python/core/ThreadState;)Lorg/python/core/PyObject;+2658
j difflib$py.call_function(ILorg/python/core/PyFrame;Lorg/python/core/ThreadState;)Lorg/python/core/PyObject;+312
J org.python.core.PyTableCode.call(Lorg/python/core/ThreadState;Lorg/python/core/PyFrame;Lorg/python/core/PyObject;)Lorg/python/core/PyObject;
j org.python.core.PyGenerator.__iternext__(Lorg/python/core/ThreadState;)Lorg/python/core/PyObject;+63
j org.python.core.PyGenerator.__iternext__()Lorg/python/core/PyObject;+4
j difflib$py.compare$20(Lorg/python/core/PyFrame;Lorg/python/core/ThreadState;)Lorg/python/core/PyObject;+815
j difflib$py.call_function(ILorg/python/core/PyFrame;Lorg/python/core/ThreadState;)Lorg/python/core/PyObject;+300
J org.python.core.PyTableCode.call(Lorg/python/core/ThreadState;Lorg/python/core/PyFrame;Lorg/python/core/PyObject;)Lorg/python/core/PyObject;
j org.python.core.PyGenerator.__iternext__(Lorg/python/core/ThreadState;)Lorg/python/core/PyObject;+63
j org.python.core.PyGenerator.__iternext__()Lorg/python/core/PyObject;+4
J org.python.core.WrappedIterIterator.hasNext()Z
The complete log is pasted here:
http://pylonshq.com/pasties/b8c342db8d9a342d058584a958d434a4
The point where it crashes: (at the function _qformat) is where the JVM
should actually invoke via invokedynamic.
I have tested this functionality to work with simple tests, but when it
comes to this class, it fails.
What is more weird is that in my machine (using a 32bit JVM) this test cases
causes the cpu to run at 100% and does not return.
In my other machine, using a 64-bit JVM, it crashes and produces a log
atleast.
Any pointers on how to debug this?
Thanks!
Shashank
-- Christian
>
> _______________________________________________
> mlvm-dev mailing list
> mlvm-dev at openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/mlvm-dev/attachments/20110328/e24d8221/attachment.html
More information about the mlvm-dev
mailing list