[ 
https://issues.apache.org/jira/browse/CXF-8259?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17085036#comment-17085036
 ] 

Freeman Yue Fang commented on CXF-8259:
---------------------------------------

I believe this is caused by the CXF-8161, especially this 
5a4fd020bc87a552345425541bb62a35b0e5d8b7
{code}
-    protected void restartConnection() {
+    protected synchronized void restartConnection() {
{code}

And restartConnection method will always run if something wrong during 
restartConnection(such as Jms broker is already down in the container) and 
never release the monitor lock of JMSDestination instance, since JMSDestination 
is subclass of org.apache.cxf.transport.AbstractObservable, so 
org.apache.cxf.transport.AbstractObservable will never get the moniter entry 
lock to finish the endpoint shutdown process. This is how the deadlock comes 
from.

Freeman

> Blocked thread of JMS transport during jboss shutdown
> -----------------------------------------------------
>
>                 Key: CXF-8259
>                 URL: https://issues.apache.org/jira/browse/CXF-8259
>             Project: CXF
>          Issue Type: Bug
>          Components: JMS
>    Affects Versions: 3.3.5, 3.3.6
>            Reporter: Alessandro Proscia
>            Priority: Major
>         Attachments: jboss.log
>
>
> We have a soap over jms webservice implemented with a camel route (Camel 
> 3.2.0) and CXF that uses activemq as message broker. The webservice is 
> deployed on a jboss eap 7.1 with jdk 1.8. Following the CXF upgrade from 
> version 3.3.4 to 3.3.5 (and also with 3.3.6), jboss hangs on shutdown due to 
> a blocking thread of CXF:
> "ServerService Thread Pool – 82" #231 prio=5 os_prio=0 tid=0x0000000002981800 
> nid=0x66d2 waiting for monitor entry [0x00007f0d60d2f000]
>  java.lang.Thread.State: BLOCKED (on object monitor)
>  at 
> org.apache.cxf.transport.AbstractObservable.setMessageObserver(AbstractObservable.java:42)
> Therefore, we can have to kill the Jboss process to complete the shutdown.
>  The connection to activemq is managed by a resource adapter on jboss. Url is 
> configured with a failover as follows:
> failover://(tcp://amqdev.internal:61616,tcp://amqdev.internal:61616,tcp://amqdev.internal:61616)?timeout=1000&initialReconnectDelay=2000&maxReconnectAttempts=2
> Attached you can find the thread dump taken from logs.
>   
>   



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to