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 Thu, 05 Oct 2006 08:48:21 GMT
    [ http://issues.apache.org/jira/browse/HARMONY-1650?page=comments#action_12440071 ] 
Pavel Afremov commented on HARMONY-1650:

I think we should take into account  JVMTI events "Exception" and "ExceptionCatch". Also I
understand that enumeration issues for GC purpose is missed in your patch. It should be fixed.

Maybe it will be OK to use "ususal" combination of exn_get(), exn_clear() and exn_raise_object()
at the end. It will be a bit slower in the case when exception is raised, but enumeration
issues will be fixed automatically by local handle usage.

> [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,
> 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


View raw message