You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Martin Ritchie (JIRA)" <ji...@apache.org> on 2010/06/21 15:41:22 UTC

[jira] Created: (FELIX-2434) DispatchQueue, StartLelve and PacakageAdmin threads holding VM up.

DispatchQueue, StartLelve and PacakageAdmin threads holding VM up.
------------------------------------------------------------------

                 Key: FELIX-2434
                 URL: https://issues.apache.org/jira/browse/FELIX-2434
             Project: Felix
          Issue Type: Bug
          Components: Framework
    Affects Versions: framework-2.0.5
         Environment: Linux (RHEL 4 32Bit), java 1.6 server vm (14-b08)
Linux (RHEL 5 32bit & 64Bit) java 1.6 server vm (13)
            Reporter: Martin Ritchie


Hi, In Qpid we started using Felix more for managing our broker plugins. However we are having random lockups occur during our test broker shutdown.

Our PluginManager (https://svn.apache.org/repos/asf/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/plugins/PluginManager.java) is shutdown via a VM ShutdownHook where it closes Service Trackers and then calls stop() on Felix followed by a waitForStop().

We are frequently seeing the following three Felix threads in a WAITING state that could be holding the VM up. Looking at the 2.0.5 code the EventDispatcher does not use a Daemon thread could this be what is holding our VM open?

Name: FelixDispatchQueue
State: WAITING on java.util.ArrayList@dc904a
Total blocked: 21  Total waited: 22

Stack trace: 
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:485)
org.apache.felix.framework.util.EventDispatcher.run(EventDispatcher.java:917)
org.apache.felix.framework.util.EventDispatcher.access$000(EventDispatcher.java:54)
org.apache.felix.framework.util.EventDispatcher$1.run(EventDispatcher.java:106)
java.lang.Thread.run(Thread.java:619)


Name: FelixStartLevel
State: WAITING on java.util.ArrayList@1c68b20
Total blocked: 7  Total waited: 8

Stack trace: 
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:485)
org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:242)
java.lang.Thread.run(Thread.java:619)


Name: FelixPackageAdmin
State: WAITING on org.apache.felix.framework.PackageAdminImpl@1d4ab05
Total blocked: 0  Total waited: 1

Stack trace: 
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:485)
org.apache.felix.framework.PackageAdminImpl.run(PackageAdminImpl.java:316)
java.lang.Thread.run(Thread.java:619)


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


[jira] Updated: (FELIX-2434) DispatchQueue, StartLevel and PacakageAdmin threads holding VM up.

Posted by "Richard S. Hall (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/FELIX-2434?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Richard S. Hall updated FELIX-2434:
-----------------------------------

    Fix Version/s: framework-3.2.0

> DispatchQueue, StartLevel and PacakageAdmin threads holding VM up.
> ------------------------------------------------------------------
>
>                 Key: FELIX-2434
>                 URL: https://issues.apache.org/jira/browse/FELIX-2434
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: framework-2.0.5
>         Environment: Linux (RHEL 4 32Bit), java 1.6 server vm (14-b08)
> Linux (RHEL 5 32bit & 64Bit) java 1.6 server vm (13)
>            Reporter: Martin Ritchie
>             Fix For: framework-3.2.0
>
>         Attachments: FELIX-EventDispatcher-setDaemon.patch
>
>
> Hi, In Qpid we started using Felix more for managing our broker plugins. However we are having random lockups occur during our test broker shutdown.
> Our PluginManager (https://svn.apache.org/repos/asf/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/plugins/PluginManager.java) is shutdown via a VM ShutdownHook where it closes Service Trackers and then calls stop() on Felix followed by a waitForStop().
> We are frequently seeing the following three Felix threads in a WAITING state that could be holding the VM up. Looking at the 2.0.5 code the EventDispatcher does not use a Daemon thread could this be what is holding our VM open?
> Name: FelixDispatchQueue
> State: WAITING on java.util.ArrayList@dc904a
> Total blocked: 21  Total waited: 22
> Stack trace: 
> java.lang.Object.wait(Native Method)
> java.lang.Object.wait(Object.java:485)
> org.apache.felix.framework.util.EventDispatcher.run(EventDispatcher.java:917)
> org.apache.felix.framework.util.EventDispatcher.access$000(EventDispatcher.java:54)
> org.apache.felix.framework.util.EventDispatcher$1.run(EventDispatcher.java:106)
> java.lang.Thread.run(Thread.java:619)
> Name: FelixStartLevel
> State: WAITING on java.util.ArrayList@1c68b20
> Total blocked: 7  Total waited: 8
> Stack trace: 
> java.lang.Object.wait(Native Method)
> java.lang.Object.wait(Object.java:485)
> org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:242)
> java.lang.Thread.run(Thread.java:619)
> Name: FelixPackageAdmin
> State: WAITING on org.apache.felix.framework.PackageAdminImpl@1d4ab05
> Total blocked: 0  Total waited: 1
> Stack trace: 
> java.lang.Object.wait(Native Method)
> java.lang.Object.wait(Object.java:485)
> org.apache.felix.framework.PackageAdminImpl.run(PackageAdminImpl.java:316)
> java.lang.Thread.run(Thread.java:619)

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


[jira] Commented: (FELIX-2434) DispatchQueue, StartLevel and PacakageAdmin threads holding VM up.

Posted by "Marnie McCormack (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-2434?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12918672#action_12918672 ] 

Marnie McCormack commented on FELIX-2434:
-----------------------------------------

Could someone from the Felix team kindly take a look at this issue please ? Thanks, Marnie Apache Qpid Team

> DispatchQueue, StartLevel and PacakageAdmin threads holding VM up.
> ------------------------------------------------------------------
>
>                 Key: FELIX-2434
>                 URL: https://issues.apache.org/jira/browse/FELIX-2434
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: framework-2.0.5
>         Environment: Linux (RHEL 4 32Bit), java 1.6 server vm (14-b08)
> Linux (RHEL 5 32bit & 64Bit) java 1.6 server vm (13)
>            Reporter: Martin Ritchie
>         Attachments: FELIX-EventDispatcher-setDaemon.patch
>
>
> Hi, In Qpid we started using Felix more for managing our broker plugins. However we are having random lockups occur during our test broker shutdown.
> Our PluginManager (https://svn.apache.org/repos/asf/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/plugins/PluginManager.java) is shutdown via a VM ShutdownHook where it closes Service Trackers and then calls stop() on Felix followed by a waitForStop().
> We are frequently seeing the following three Felix threads in a WAITING state that could be holding the VM up. Looking at the 2.0.5 code the EventDispatcher does not use a Daemon thread could this be what is holding our VM open?
> Name: FelixDispatchQueue
> State: WAITING on java.util.ArrayList@dc904a
> Total blocked: 21  Total waited: 22
> Stack trace: 
> java.lang.Object.wait(Native Method)
> java.lang.Object.wait(Object.java:485)
> org.apache.felix.framework.util.EventDispatcher.run(EventDispatcher.java:917)
> org.apache.felix.framework.util.EventDispatcher.access$000(EventDispatcher.java:54)
> org.apache.felix.framework.util.EventDispatcher$1.run(EventDispatcher.java:106)
> java.lang.Thread.run(Thread.java:619)
> Name: FelixStartLevel
> State: WAITING on java.util.ArrayList@1c68b20
> Total blocked: 7  Total waited: 8
> Stack trace: 
> java.lang.Object.wait(Native Method)
> java.lang.Object.wait(Object.java:485)
> org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:242)
> java.lang.Thread.run(Thread.java:619)
> Name: FelixPackageAdmin
> State: WAITING on org.apache.felix.framework.PackageAdminImpl@1d4ab05
> Total blocked: 0  Total waited: 1
> Stack trace: 
> java.lang.Object.wait(Native Method)
> java.lang.Object.wait(Object.java:485)
> org.apache.felix.framework.PackageAdminImpl.run(PackageAdminImpl.java:316)
> java.lang.Thread.run(Thread.java:619)

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


[jira] Commented: (FELIX-2434) DispatchQueue, StartLevel and PacakageAdmin threads holding VM up.

Posted by "Richard S. Hall (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-2434?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12918694#action_12918694 ] 

Richard S. Hall commented on FELIX-2434:
----------------------------------------

You can't set the Event Dispatcher thread to daemon, because it is the only non-daemon thread created when the framework starts so the VM couldn't stay up otherwise. It will get stopped when the last framework instance is stopped. Are you sure you aren't experiencing a deadlock?

Could you try this on a more recent version of the framework...at least 3.0.2, but 3.0.3 had some locking changes, but there was another bug in that so we have a 3.0.4 release under vote right now so you could also grab that from the staging repo or wait until Thursday when it is released.

If this is even remotely reproducible, let me know the precise steps to reproduce and I can check into it, but try a new version of the framework first...the latest should be a drop-in replacement for 2.0.5.

> DispatchQueue, StartLevel and PacakageAdmin threads holding VM up.
> ------------------------------------------------------------------
>
>                 Key: FELIX-2434
>                 URL: https://issues.apache.org/jira/browse/FELIX-2434
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: framework-2.0.5
>         Environment: Linux (RHEL 4 32Bit), java 1.6 server vm (14-b08)
> Linux (RHEL 5 32bit & 64Bit) java 1.6 server vm (13)
>            Reporter: Martin Ritchie
>         Attachments: FELIX-EventDispatcher-setDaemon.patch
>
>
> Hi, In Qpid we started using Felix more for managing our broker plugins. However we are having random lockups occur during our test broker shutdown.
> Our PluginManager (https://svn.apache.org/repos/asf/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/plugins/PluginManager.java) is shutdown via a VM ShutdownHook where it closes Service Trackers and then calls stop() on Felix followed by a waitForStop().
> We are frequently seeing the following three Felix threads in a WAITING state that could be holding the VM up. Looking at the 2.0.5 code the EventDispatcher does not use a Daemon thread could this be what is holding our VM open?
> Name: FelixDispatchQueue
> State: WAITING on java.util.ArrayList@dc904a
> Total blocked: 21  Total waited: 22
> Stack trace: 
> java.lang.Object.wait(Native Method)
> java.lang.Object.wait(Object.java:485)
> org.apache.felix.framework.util.EventDispatcher.run(EventDispatcher.java:917)
> org.apache.felix.framework.util.EventDispatcher.access$000(EventDispatcher.java:54)
> org.apache.felix.framework.util.EventDispatcher$1.run(EventDispatcher.java:106)
> java.lang.Thread.run(Thread.java:619)
> Name: FelixStartLevel
> State: WAITING on java.util.ArrayList@1c68b20
> Total blocked: 7  Total waited: 8
> Stack trace: 
> java.lang.Object.wait(Native Method)
> java.lang.Object.wait(Object.java:485)
> org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:242)
> java.lang.Thread.run(Thread.java:619)
> Name: FelixPackageAdmin
> State: WAITING on org.apache.felix.framework.PackageAdminImpl@1d4ab05
> Total blocked: 0  Total waited: 1
> Stack trace: 
> java.lang.Object.wait(Native Method)
> java.lang.Object.wait(Object.java:485)
> org.apache.felix.framework.PackageAdminImpl.run(PackageAdminImpl.java:316)
> java.lang.Thread.run(Thread.java:619)

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


[jira] Updated: (FELIX-2434) DispatchQueue, StartLevel and PacakageAdmin threads holding VM up.

Posted by "Martin Ritchie (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/FELIX-2434?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Ritchie updated FELIX-2434:
----------------------------------

    Attachment: FELIX-EventDispatcher-setDaemon.patch

> DispatchQueue, StartLevel and PacakageAdmin threads holding VM up.
> ------------------------------------------------------------------
>
>                 Key: FELIX-2434
>                 URL: https://issues.apache.org/jira/browse/FELIX-2434
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: framework-2.0.5
>         Environment: Linux (RHEL 4 32Bit), java 1.6 server vm (14-b08)
> Linux (RHEL 5 32bit & 64Bit) java 1.6 server vm (13)
>            Reporter: Martin Ritchie
>         Attachments: FELIX-EventDispatcher-setDaemon.patch
>
>
> Hi, In Qpid we started using Felix more for managing our broker plugins. However we are having random lockups occur during our test broker shutdown.
> Our PluginManager (https://svn.apache.org/repos/asf/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/plugins/PluginManager.java) is shutdown via a VM ShutdownHook where it closes Service Trackers and then calls stop() on Felix followed by a waitForStop().
> We are frequently seeing the following three Felix threads in a WAITING state that could be holding the VM up. Looking at the 2.0.5 code the EventDispatcher does not use a Daemon thread could this be what is holding our VM open?
> Name: FelixDispatchQueue
> State: WAITING on java.util.ArrayList@dc904a
> Total blocked: 21  Total waited: 22
> Stack trace: 
> java.lang.Object.wait(Native Method)
> java.lang.Object.wait(Object.java:485)
> org.apache.felix.framework.util.EventDispatcher.run(EventDispatcher.java:917)
> org.apache.felix.framework.util.EventDispatcher.access$000(EventDispatcher.java:54)
> org.apache.felix.framework.util.EventDispatcher$1.run(EventDispatcher.java:106)
> java.lang.Thread.run(Thread.java:619)
> Name: FelixStartLevel
> State: WAITING on java.util.ArrayList@1c68b20
> Total blocked: 7  Total waited: 8
> Stack trace: 
> java.lang.Object.wait(Native Method)
> java.lang.Object.wait(Object.java:485)
> org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:242)
> java.lang.Thread.run(Thread.java:619)
> Name: FelixPackageAdmin
> State: WAITING on org.apache.felix.framework.PackageAdminImpl@1d4ab05
> Total blocked: 0  Total waited: 1
> Stack trace: 
> java.lang.Object.wait(Native Method)
> java.lang.Object.wait(Object.java:485)
> org.apache.felix.framework.PackageAdminImpl.run(PackageAdminImpl.java:316)
> java.lang.Thread.run(Thread.java:619)

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


[jira] Updated: (FELIX-2434) DispatchQueue, StartLevel and PacakageAdmin threads holding VM up.

Posted by "Martin Ritchie (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/FELIX-2434?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Ritchie updated FELIX-2434:
----------------------------------

    Summary: DispatchQueue, StartLevel and PacakageAdmin threads holding VM up.  (was: DispatchQueue, StartLelve and PacakageAdmin threads holding VM up.)

> DispatchQueue, StartLevel and PacakageAdmin threads holding VM up.
> ------------------------------------------------------------------
>
>                 Key: FELIX-2434
>                 URL: https://issues.apache.org/jira/browse/FELIX-2434
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: framework-2.0.5
>         Environment: Linux (RHEL 4 32Bit), java 1.6 server vm (14-b08)
> Linux (RHEL 5 32bit & 64Bit) java 1.6 server vm (13)
>            Reporter: Martin Ritchie
>
> Hi, In Qpid we started using Felix more for managing our broker plugins. However we are having random lockups occur during our test broker shutdown.
> Our PluginManager (https://svn.apache.org/repos/asf/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/plugins/PluginManager.java) is shutdown via a VM ShutdownHook where it closes Service Trackers and then calls stop() on Felix followed by a waitForStop().
> We are frequently seeing the following three Felix threads in a WAITING state that could be holding the VM up. Looking at the 2.0.5 code the EventDispatcher does not use a Daemon thread could this be what is holding our VM open?
> Name: FelixDispatchQueue
> State: WAITING on java.util.ArrayList@dc904a
> Total blocked: 21  Total waited: 22
> Stack trace: 
> java.lang.Object.wait(Native Method)
> java.lang.Object.wait(Object.java:485)
> org.apache.felix.framework.util.EventDispatcher.run(EventDispatcher.java:917)
> org.apache.felix.framework.util.EventDispatcher.access$000(EventDispatcher.java:54)
> org.apache.felix.framework.util.EventDispatcher$1.run(EventDispatcher.java:106)
> java.lang.Thread.run(Thread.java:619)
> Name: FelixStartLevel
> State: WAITING on java.util.ArrayList@1c68b20
> Total blocked: 7  Total waited: 8
> Stack trace: 
> java.lang.Object.wait(Native Method)
> java.lang.Object.wait(Object.java:485)
> org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:242)
> java.lang.Thread.run(Thread.java:619)
> Name: FelixPackageAdmin
> State: WAITING on org.apache.felix.framework.PackageAdminImpl@1d4ab05
> Total blocked: 0  Total waited: 1
> Stack trace: 
> java.lang.Object.wait(Native Method)
> java.lang.Object.wait(Object.java:485)
> org.apache.felix.framework.PackageAdminImpl.run(PackageAdminImpl.java:316)
> java.lang.Thread.run(Thread.java:619)

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