You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Andrei Pozolotin (JIRA)" <ji...@apache.org> on 2012/05/03 16:08:50 UTC
[jira] [Updated] (FELIX-3496) URLHandlers deadlock in jnlp context
[ https://issues.apache.org/jira/browse/FELIX-3496?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrei Pozolotin updated FELIX-3496:
------------------------------------
Attachment: dead_lock_5.txt
dead_lock_4.txt
dead_lock_3.txt
dead_lock_2.txt
dead_lock_1.txt
dead_lock_0.txt
dead lock stack traces
> URLHandlers deadlock in jnlp context
> ------------------------------------
>
> Key: FELIX-3496
> URL: https://issues.apache.org/jira/browse/FELIX-3496
> Project: Felix
> Issue Type: Bug
> Components: Framework
> Affects Versions: framework-4.0.2
> Environment: oracle jre 1.6.0_31 x64 @ windows
> Reporter: Andrei Pozolotin
> Attachments: dead_lock_0.txt, dead_lock_1.txt, dead_lock_2.txt, dead_lock_3.txt, dead_lock_4.txt, dead_lock_5.txt
>
>
> 1) we are seeing URLHandlers deadlock in jnlp context
> 2) this happens:
> * in jnlp mode only (can not reproduce in non-jnlp)
> * with frequency 1:10
> * with multiple threads, both internal-felix-related and external-embedder-host-related
> doing heavy downloading of url resources;
> 3) seeming problem area is here:
> http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/URLHandlers.java?view=markup
> public static Object getFrameworkFromContext()
> {
> // This is a hack. The idea is to return the only registered framework
> synchronized (m_classloaderToFrameworkLists)
> {
> if (m_classloaderToFrameworkLists.isEmpty())
> {
> synchronized (m_frameworks)
> {
> if ((m_counter == 1) && (m_frameworks.size() == 1))
> {
> return m_frameworks.get(0);
> }
> }
> }
> }
> 4) stack traces attached
> 5) the workaround is to disable URLHandlers service via
> config.put("felix.service.urlhandlers", "false");
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira