You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Peter Novodvorsky (JIRA)" <ji...@apache.org> on 2007/03/07 14:44:24 UTC

[jira] Commented: (HARMONY-3010) [drlvm][thread manager] VM crashes with seg fault on the recursive call of a synchronized method

    [ https://issues.apache.org/jira/browse/HARMONY-3010?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12478768 ] 

Peter Novodvorsky commented on HARMONY-3010:
--------------------------------------------

The problem is not in thread manager code. With the help of Pavel Afremov I've found that stack overflow happens, but it cannot be thrown while execution happens in code called from asm-helper (which is the case with thread_thin_monitor_try_enter). It tries to find previous M2N frame but it appears to be M2N frame above our thread starter which doesn't allow to throw exceptions from. 

The reason why the fault happens in thread_thin_monitor_try_enter is because it's the most often called piece of code in the program.

Magics support in compiler could fix this problem.



> [drlvm][thread manager] VM crashes with seg fault on the recursive call of a synchronized method
> ------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3010
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3010
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Elena Semukhina
>         Assigned To: weldon washburn
>         Attachments: MyStack.java, MyStack2.java
>
>
> The attached test crashes with the following message on Linux SUSE9 ia32:
> SIGSEGV in VM code.
> Stack trace:
>         1: locktable_get_fat_monitor (/nfs/ins/proj/drl/coreapi/esemukhi/svn/drlvm/trunk/vm/thread/src/thread_native_thin_monitor.c:655)
>         2: hythread_thin_monitor_try_enter (/nfs/ins/proj/drl/coreapi/esemukhi/svn/drlvm/trunk/vm/thread/src/thread_native_thin_monitor.c:310)
>         3: IP is 0x416A05BD <native code>
>         4: ?? (??:-1)
> <end of stack trace>
> Segmentation fault
> If to remove the "synchronized" modifier from the "test()" method declaration, the test passes.
> On SUSE9 Linux em64t the crash does not depend on the "synchronized" modifier: it just crashes with the wording:
> Segmentation fault
> (see HARMONY-2972)
> The attached test is the slightly modified smoke test stress.Stack.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.