harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pavel Afremov (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-1650) [drlvm][exception handling] enqueuing references, doing finalization, running finalizers can lose a risen exception
Date Tue, 03 Oct 2006 11:48:21 GMT
    [ http://issues.apache.org/jira/browse/HARMONY-1650?page=comments#action_12439459 ] 
            
Pavel Afremov commented on HARMONY-1650:
----------------------------------------

Good idea. But I found one issue in the patch.

Java Method can't be started if exception is raised.  So after store exception information
on the stack and before run startFinalization or  enqueue java methods, exn_clear should be
called. Maybe exn_clear should be called from exn_store function to avoid missing in future.


> [drlvm][exception handling] enqueuing references, doing finalization, running finalizers
can lose a risen exception
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-1650
>                 URL: http://issues.apache.org/jira/browse/HARMONY-1650
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Serguei Zapreyev
>            Priority: Minor
>         Attachments: a4.java, H1650.ex_impl.patch, lin.log, testGetMeth.java, win.log
>
>
> Memory allocation within VM causes irregularly enqueuing references, doing finalization,
running 
> finalizers. These processes lead to losing an exception risen within a java programm
executed by VM. 
> Please look at the following stack:
> 	harmonyvm.dll!exn_clear()  Line 113	C++
>  	harmonyvm.dll!Objects_To_Finalize::run_finalizers()  Line 343	C++
>  	harmonyvm.dll!vm_run_pending_finalizers()  Line 472	C++
>  	harmonyvm.dll!vm_hint_finalize()  Line 193	C++
>  	gc.dll!gc_alloc(unsigned int in_size=0x0000000c, unsigned int ah=0x013c1f40, void *
thread_pointer=0x0102d1e8)  Line 243 + 0x8	C++
> <<<...>>>
> or at the following:
>  	vmcore.dll!exn_clear()  Line 106	C++
>  	vmcore.dll!References_To_Enqueue::enqueue_references()  Line 453 + 0x5	C++
>  	vmcore.dll!vm_enqueue_references()  Line 516	C++
>  	vmcore.dll!vm_hint_finalize()  Line 192	C++
>  	gc.dll!Garbage_Collector::check_hint_to_finalize()  Line 208 + 0xc	C++
>  	gc.dll!gc_alloc(unsigned int size=0x0000000c, unsigned int ah=0x00d71b90, void * tp=0x003be070)
 Line 961	C++
> <<<...>>>
> So, this intricated enough bug leads to instability of VM's behaviour.
> I'm going to attach the fix of the issue.
> The detecting test will be attached as well.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message