Possible bug: JVM crash due to GC when using indy
Y. Srinivas Ramakrishna
y.s.ramakrishna at oracle.com
Mon Mar 28 13:56:51 PDT 2011
On 3/28/2011 1:20 PM, shanka.mns at gmail.com wrote:
> 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.
In that case, try the latest repo (b05 or b06); Tom recently fixed a race that might
be affecting you when using one of the parallel collectors:-
http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/d673ef06fe96
-- ramki
> 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
>>
>>
>
>
>
> _______________________________________________
> mlvm-dev mailing list
> mlvm-dev at openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
More information about the mlvm-dev
mailing list