You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Barry Kaplan (JIRA)" <ji...@apache.org> on 2015/10/17 13:17:05 UTC

[jira] [Commented] (AMQ-1577) FailoverTransport doesn't shut-down cleanly, complains about underlying transport going down

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

Barry Kaplan commented on AMQ-1577:
-----------------------------------

I appear to be seeing this behavior in 5.12. When disconnected from the broker and jmv receives a sigterm the jvm is prevented from exiting (some daemon thread?)

2015-10-17 11:13:21,690 INFO  mono-server - Stopping mono-server server ---------------------------------------------------- | tenant=tft, name=mono-server [shutdownHook1] 
2015-10-17 11:13:21,696 INFO  s.can.server.HttpListener - Unbound from /0.0.0.0:8282 | akkaSource=akka://mono-server/user/IO-HTTP/listener-0, sourceThread=mono-server-akka.actor.default-dispatcher-5, tenant=tft, name=mono-server [mono-server-akka.actor.default-dispatcher-2] 
2015-10-17 11:13:21,697 INFO  s.restapi.service.RestApi - Stopped REST API | tenant=tft, name=mono-server [shutdownHook1] 
2015-10-17 11:13:21,703 INFO  c.b.f.WatchServiceTask - Interrupting, bye! | tenant=tft, name=mono-server [WatchService] 
2015-10-17 11:13:41,828 DEBUG o.a.a.t.f.FailoverTransport - urlList connectionList:[tcp://localhost:61616], from: [tcp://localhost:61616] | name=mono-server [ActiveMQ Task-1] 
2015-10-17 11:13:41,828 DEBUG o.a.a.t.f.FailoverTransport - Attempting  13th  connect to: tcp://localhost:61616 | name=mono-server [ActiveMQ Task-1] 
2015-10-17 11:13:41,829 DEBUG o.a.a.t.f.FailoverTransport - Connect fail to: tcp://localhost:61616, reason: java.net.ConnectException: Connection refused | name=mono-server [ActiveMQ Task-1] 
2015-10-17 11:13:41,829 DEBUG o.a.a.t.tcp.TcpTransport - Stopping transport tcp://localhost:61616 | name=mono-server [ActiveMQ Task-1] 
2015-10-17 11:13:41,830 DEBUG o.a.a.t.tcp.TcpTransport - Closed socket Socket[unconnected] | name=mono-server [ActiveMQ Task-1] 
2015-10-17 11:13:41,830 DEBUG o.a.a.t.f.FailoverTransport - Waiting 30000 ms before attempting connection | name=mono-server [ActiveMQ Task-1] 
2015-10-17 11:14:11,831 DEBUG o.a.a.t.f.FailoverTransport - urlList connectionList:[tcp://localhost:61616], from: [tcp://localhost:61616] | name=mono-server [ActiveMQ Task-1] 
2015-10-17 11:14:11,832 DEBUG o.a.a.t.f.FailoverTransport - Attempting  14th  connect to: tcp://localhost:61616 | name=mono-server [ActiveMQ Task-1] 
2015-10-17 11:14:11,832 DEBUG o.a.a.t.f.FailoverTransport - Connect fail to: tcp://localhost:61616, reason: java.net.ConnectException: Connection refused | name=mono-server [ActiveMQ Task-1] 
2015-10-17 11:14:11,832 DEBUG o.a.a.t.tcp.TcpTransport - Stopping transport tcp://localhost:61616 | name=mono-server [ActiveMQ Task-1] 
2015-10-17 11:14:11,833 DEBUG o.a.a.t.tcp.TcpTransport - Closed socket Socket[unconnected] | name=mono-server [ActiveMQ Task-1] 
2015-10-17 11:14:11,833 DEBUG o.a.a.t.f.FailoverTransport - Waiting 30000 ms before attempting connection | name=mono-server [ActiveMQ Task-1] 
2015-10-17 11:14:41,836 DEBUG o.a.a.t.f.FailoverTransport - urlList connectionList:[tcp://localhost:61616], from: [tcp://localhost:61616] | name=mono-server [ActiveMQ Task-1] 
2015-10-17 11:14:41,837 DEBUG o.a.a.t.f.FailoverTransport - Attempting  15th  connect to: tcp://localhost:61616 | name=mono-server [ActiveMQ Task-1] 
2015-10-17 11:14:41,838 DEBUG o.a.a.t.f.FailoverTransport - Connect fail to: tcp://localhost:61616, reason: java.net.ConnectException: Connection refused | name=mono-server [ActiveMQ Task-1] 
2015-10-17 11:14:41,838 DEBUG o.a.a.t.tcp.TcpTransport - Stopping transport tcp://localhost:61616 | name=mono-server [ActiveMQ Task-1] 
2015-10-17 11:14:41,838 DEBUG o.a.a.t.tcp.TcpTransport - Closed socket Socket[unconnected] | name=mono-server [ActiveMQ Task-1] 
2015-10-17 11:14:41,838 DEBUG o.a.a.t.f.FailoverTransport - Waiting 30000 ms before attempting connection | name=mono-server [ActiveMQ Task-1] 
2015-10-17 11:15:11,842 DEBUG o.a.a.t.f.FailoverTransport - urlList connectionList:[tcp://localhost:61616], from: [tcp://localhost:61616] | name=mono-server [ActiveMQ Task-1] 
2015-10-17 11:15:11,842 DEBUG o.a.a.t.f.FailoverTransport - Attempting  16th  connect to: tcp://localhost:61616 | name=mono-server [ActiveMQ Task-1] 
2015-10-17 11:15:11,842 DEBUG o.a.a.t.f.FailoverTransport - Connect fail to: tcp://localhost:61616, reason: java.net.ConnectException: Connection refused | name=mono-server [ActiveMQ Task-1] 
2015-10-17 11:15:11,842 DEBUG o.a.a.t.tcp.TcpTransport - Stopping transport tcp://localhost:61616 | name=mono-server [ActiveMQ Task-1] 
2015-10-17 11:15:11,843 DEBUG o.a.a.t.tcp.TcpTransport - Closed socket Socket[unconnected] | name=mono-server [ActiveMQ Task-1] 
2015-10-17 11:15:11,843 DEBUG o.a.a.t.f.FailoverTransport - Waiting 30000 ms before attempting connection | name=mono-server [ActiveMQ Task-1] 
2015-10-17 11:15:41,846 DEBUG o.a.a.t.f.FailoverTransport - urlList connectionList:[tcp://localhost:61616], from: [tcp://localhost:61616] | name=mono-server [ActiveMQ Task-1] 
2015-10-17 11:15:41,846 DEBUG o.a.a.t.f.FailoverTransport - Attempting  17th  connect to: tcp://localhost:61616 | name=mono-server [ActiveMQ Task-1] 
2015-10-17 11:15:41,847 DEBUG o.a.a.t.f.FailoverTransport - Connect fail to: tcp://localhost:61616, reason: java.net.ConnectException: Connection refused | name=mono-server [ActiveMQ Task-1] 

> FailoverTransport doesn't shut-down cleanly, complains about underlying transport going down
> --------------------------------------------------------------------------------------------
>
>                 Key: AMQ-1577
>                 URL: https://issues.apache.org/jira/browse/AMQ-1577
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Transport
>    Affects Versions: 5.0.0
>         Environment: 5.1-SNAPSHOT
>            Reporter: Jason Rosenberg
>            Assignee: Rob Davies
>             Fix For: 5.1.0
>
>         Attachments: ConnectionPool.java, FailoverTransport.java
>
>
> Hello,
> There's a problem with the FailoverTransport not shutting down cleanly.  It appears that it shuts down it's underlying transport, e.g. TcpTransport, but then doesn't disable it's handleTransportFailure thread, which then complains that the underlying transport has gone away, and tries to restart it again.
> Looking at the code in FailoverTransport.java, there appears to be a simple fix, to check the 'started' variable in the method 'handleTransportFailure' before logging a warning and trying to restart the underlying transport.
> Here's a log snippet that demonstrates the problem:
> DEBUG [2008-02-04 03:44:05,752] thread:main                                FailoverTransport -- Stopped.
> DEBUG [2008-02-04 03:44:05,753] thread:main                                     TcpTransport -- Stopping transport tcp://localhost/127.0.0.1:61616
> WARN  [2008-02-04 03:44:05,760] thread:ActiveMQ Transport: tcp://localhost/127.0.0.1:61616              FailoverTransport -- Transport failed, attempting to automatically reconnect due to: java.net.SocketException: Socket closed
> java.net.SocketException: Socket closed
>         at java.net.SocketInputStream.socketRead0(Native Method)
>         at java.net.SocketInputStream.read(SocketInputStream.java:129)
>         at org.apache.activemq.transport.tcp.TcpBufferedInputStream.fill(TcpBufferedInputStream.java:50)
>         at org.apache.activemq.transport.tcp.TcpBufferedInputStream.read(TcpBufferedInputStream.java:58)
>         at java.io.DataInputStream.readInt(DataInputStream.java:351)
>         at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:267)
>         at org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:203)
>         at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:195)
>         at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:183)
>         at java.lang.Thread.run(Thread.java:637)
> Jason



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)