[Bug 481] Shark assert(pc == __null, "should be") / Sigsegv bombs without assertions - Deoptimizer issue

bugzilla-daemon at icedtea.classpath.org bugzilla-daemon at icedtea.classpath.org
Mon May 3 01:19:07 PDT 2010


http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=481





------- Comment #1 from xerxes at zafena.se  2010-05-03 08:19 -------
Created an attachment (id=333)
 --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=333&action=view)
backtrace how the sigsegv crash looks on arm when running without assertions

When running without assertions then the sigsegv crash happens inside the JITed
code block of: sun.net.www.protocol.jar.JarURLConnection::connect

when shark are processing a sharkState merge during the safepointed block.
current_state()->merge(orig_state, orig_block, safepointed_block);

Attached log file for backtrace for ARM.

gdb disassemble on X86 indicates that the crash happens at the same place:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb7fe5b70 (LWP 1877)]
0x03aaf8c7 in sun.net.www.protocol.jar.JarURLConnection_3A__3A_connect ()
(gdb) disassemble
Dump of assembler code for function
sun.net.www.protocol.jar.JarURLConnection_3A__3A_connect:
   0x03aaf7c0 <+0>:     push   %ebp
   0x03aaf7c1 <+1>:     mov    %esp,%ebp
   0x03aaf7c3 <+3>:     push   %ebx
   0x03aaf7c4 <+4>:     push   %edi
   0x03aaf7c5 <+5>:     push   %esi
   0x03aaf7c6 <+6>:     sub    $0x1c,%esp
   0x03aaf7c9 <+9>:     mov    0x10(%ebp),%esi
   0x03aaf7cc <+12>:    mov    0x98(%esi),%eax
   0x03aaf7d2 <+18>:    mov    0x1e0(%esi),%edi
   0x03aaf7d8 <+24>:    sub    0x9c(%esi),%eax
   0x03aaf7de <+30>:    mov    %ebp,%ecx
   0x03aaf7e0 <+32>:    sub    %eax,%ecx
   0x03aaf7e2 <+34>:    cmp    $0x4fff,%ecx
   0x03aaf7e8 <+40>:    mov    0x8(%ebp),%eax
   0x03aaf7eb <+43>:    mov    %eax,-0x10(%ebp)
   0x03aaf7ee <+46>:    ja     0x3aaf816
<sun.net.www.protocol.jar.JarURLConnection_3A__3A_connect+86>
   0x03aaf7f4 <+52>:    sub    $0x10,%esp
   0x03aaf7fa <+58>:    mov    %esi,0x8(%esp)
   0x03aaf7fe <+62>:    mov    0x8(%ebp),%esi
   0x03aaf801 <+65>:    mov    %esi,(%esp)
   0x03aaf804 <+68>:    movl   $0x0,0x4(%esp)
   0x03aaf80c <+76>:    call   0x3b6a40
<_ZN14CppInterpreter12normal_entryEP13methodOopDesciP6Thread>
   0x03aaf811 <+81>:    jmp    0x3aaf8cf
<sun.net.www.protocol.jar.JarURLConnection_3A__3A_connect+271>
   0x03aaf816 <+86>:    add    $0xffffffd4,%edi
   0x03aaf819 <+89>:    mov    %edi,%eax
   0x03aaf81b <+91>:    sub    0x1d8(%esi),%eax
   0x03aaf821 <+97>:    cmp    $0x5000,%eax
   0x03aaf827 <+103>:   jb     0x3aaf7f4
<sun.net.www.protocol.jar.JarURLConnection_3A__3A_connect+52>
   0x03aaf82d <+109>:   mov    %edi,0x18(%edi)
   0x03aaf830 <+112>:   movl   $0x3,0x20(%edi)
   0x03aaf837 <+119>:   mov    0x1e4(%esi),%eax
   0x03aaf83d <+125>:   mov    %eax,0x24(%edi)
   0x03aaf840 <+128>:   lea    0x24(%edi),%eax
   0x03aaf843 <+131>:   mov    %eax,0x1e4(%esi)
   0x03aaf849 <+137>:   mov    0x2c(%edi),%ebx
   0x03aaf84c <+140>:   movsbl 0x1c(%ebx),%eax
   0x03aaf850 <+144>:   test   %eax,%eax
   0x03aaf852 <+146>:   je     0x3aaf8d7
<sun.net.www.protocol.jar.JarURLConnection_3A__3A_connect+279>
   0x03aaf858 <+152>:   cmpl   $0x1,0x65bf20
   0x03aaf85f <+159>:   jne    0x3aaf8b8
<sun.net.www.protocol.jar.JarURLConnection_3A__3A_connect+248>
   0x03aaf865 <+165>:   lea    0x10(%edi),%eax
   0x03aaf868 <+168>:   mov    %eax,0x1e0(%esi)
   0x03aaf86e <+174>:   mov    -0x10(%ebp),%eax
   0x03aaf871 <+177>:   mov    %eax,0x14(%edi)
   0x03aaf874 <+180>:   mov    0xc(%ebp),%eax
   0x03aaf877 <+183>:   add    $0x10,%eax
   0x03aaf87a <+186>:   mov    %eax,0x1c(%edi)
   0x03aaf87d <+189>:   mov    %ebx,0x2c(%edi)
   0x03aaf880 <+192>:   mov    0x1e4(%esi),%ebx
   0x03aaf886 <+198>:   mov    %ebx,0x100(%esi)
   0x03aaf88c <+204>:   sub    $0x8,%esp
   0x03aaf892 <+210>:   mov    %esi,(%esp)
   0x03aaf895 <+213>:   call   0x55d230
<_ZN20SafepointSynchronize5blockEP10JavaThread>
---Type <return> to continue, or q <return> to quit---
   0x03aaf89a <+218>:   add    $0x8,%esp
   0x03aaf89d <+221>:   movl   $0x0,0x100(%esi)
   0x03aaf8a7 <+231>:   mov    0x4(%esi),%ebx
   0x03aaf8aa <+234>:   test   %ebx,%ebx
   0x03aaf8ac <+236>:   mov    0x14(%edi),%eax
   0x03aaf8af <+239>:   mov    0x2c(%edi),%edi
   0x03aaf8b2 <+242>:   jne    0x3aafc0d
<sun.net.www.protocol.jar.JarURLConnection_3A__3A_connect+1101>
   0x03aaf8b8 <+248>:   mov    0x1e4(%esi),%ebx
   0x03aaf8be <+254>:   lea    0xc(%ebx),%edi
   0x03aaf8c1 <+257>:   mov    %edi,0x1e0(%esi)
=> 0x03aaf8c7 <+263>:   mov    (%ebx),%ebx
   0x03aaf8c9 <+265>:   mov    %ebx,0x1e4(%esi)
   0x03aaf8cf <+271>:   lea    -0xc(%ebp),%esp
   0x03aaf8d2 <+274>:   pop    %esi
   0x03aaf8d3 <+275>:   pop    %edi
   0x03aaf8d4 <+276>:   pop    %ebx
   0x03aaf8d5 <+277>:   pop    %ebp
   0x03aaf8d6 <+278>:   ret    

All crashes can be circumvented by creating a .hotspot_compiler file containing
the following lines:
exclude: Send_NoteOn_AllChannels::main
exclude: SoftTestUtils::<init>
exclude: com.sun.media.sound.EmergencySoundbank::createSoundbank
exclude: sun.net.www.protocol.jar.JarURLConnection::connect

Thus preventing jit compilation of all methods that make the JVM crash after
being processed by the deoptimizer.


-- 
Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the distro-pkg-dev mailing list