harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexey Varlamov (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-1833) [DRLVM] deadlock during finalization
Date Thu, 12 Oct 2006 05:08:36 GMT
    [ http://issues.apache.org/jira/browse/HARMONY-1833?page=comments#action_12441618 ] 
Alexey Varlamov commented on HARMONY-1833:

1) I believe this scenario can be fixed via separating locks for classloading and loader-pool
2) Chances for deadlock can be lowered a bit if Java_java_lang_VMClassRegistry_getSystemPackages()
does not hold bootstrap classloader lock while allocating in Java heap (say copies table of
system packages in native heap and releases the lock).

> [DRLVM] deadlock during finalization
> ------------------------------------
>                 Key: HARMONY-1833
>                 URL: http://issues.apache.org/jira/browse/HARMONY-1833
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: SLES 9 32-bit SP2; CPU 2xXeon x64
> gcc 3.3.3 drlvm debug build
>            Reporter: Alexey Varlamov
> The classlib tests hang sporadically, usually in JNDI module when running all classlib
unit tests (single runs of JNDI alone always ok).
> Investigation shows that there are deadlocks happening between main thread (MT) and finalizer
thread (FT): 
> 1) MT performs classloading, it grabs ClassLoader::_lock;
> 2) GC happens, FinalizerThread.startFinalization() is called, FT activates;
> 3) FT invokes some finalize() method, compilation starts and grabs g_compileLock;
> 4) FT waits for ClassLoader::_lock to allocate code_chunk_info;
> 5) MT proceeds to compilation of FinalizerThread.spawnBalanceThreads() and waits for

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