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

Ted Ross commented on DISPATCH-432:
-----------------------------------

Is this not a broker bug?  If Artemis can't recover from a client that doesn't 
close cleanly, it needs to be fixed.
When the router is shut down, it closes all of its connections, but not 
cleanly.  There is no AMQP handshake on the close when the router is shut down 
by signal.


> Qpid Dispatch Router does not close connection to Broker on exit
> ----------------------------------------------------------------
>
>                 Key: DISPATCH-432
>                 URL: https://issues.apache.org/jira/browse/DISPATCH-432
>             Project: Qpid Dispatch
>          Issue Type: Bug
>    Affects Versions: 0.6.0
>            Reporter: Jiri Danek
>
> I have the following configuration for connecting to broker in my 
> {{qdrouterd.conf}}
> {noformat}
> connector {
>   name: ba
>   role: route-container
>   host: 172.28.128.221
>   port: amqp
>   sasl-mechanisms: ANONYMOUS
> }
> address {
>   prefix: jms.queue
>   waypoint: yes
> }
> autoLink {
>   addr: jms.queue.first
>   dir: in
>   connection: ba
> }
> autoLink {
>   addr: jms.queue.first
>   dir: out
>   connection: ba
> }
> autoLink {
>   addr: jms.queue.second
>   dir: in
>   connection: ba
> }
> autoLink {
>   addr: jms.queue.second
>   dir: out
>   connection: ba
> }
> {noformat}
> If I stop dispatch demon with {{sudo service qdrouterd stop}} and then kill 
> Artemis broker with ^C, broker prints the following
> {noformat}
> 12:18:04,721 INFO  [org.apache.activemq.artemis] AMQ241001: HTTP Server 
> started at http://localhost:8161
> 12:18:04,722 INFO  [org.apache.activemq.artemis] AMQ241002: Artemis Jolokia 
> REST API available at http://localhost:8161/jolokia
> ^C12:18:16,881 ERROR [org.apache.activemq.artemis.core.server] AMQ224065: 
> Failed to remove auto-created queue jms.queue.second: 
> java.lang.IllegalStateException: Cannot access JMS Server, core server is not 
> active
>         at 
> org.apache.activemq.artemis.jms.server.impl.JMSServerManagerImpl.checkInitialised(JMSServerManagerImpl.java:1416)
>  [artemis-jms-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.jms.server.impl.JMSServerManagerImpl.destroyQueue(JMSServerManagerImpl.java:766)
>  [artemis-jms-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.jms.server.impl.JMSServerManagerImpl$JMSQueueDeleter.delete(JMSServerManagerImpl.java:1639)
>  [artemis-jms-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.core.server.impl.AutoCreatedQueueManagerImpl$1.run(AutoCreatedQueueManagerImpl.java:50)
>  [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.utils.ReferenceCounterUtil.decrement(ReferenceCounterUtil.java:55)
>  [artemis-commons-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.core.server.impl.AutoCreatedQueueManagerImpl.decrement(AutoCreatedQueueManagerImpl.java:78)
>  [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.core.server.impl.QueueImpl.removeConsumer(QueueImpl.java:768)
>  [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl.removeItself(ServerConsumerImpl.java:500)
>  [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl.close(ServerConsumerImpl.java:446)
>  [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.doClose(ServerSessionImpl.java:345)
>  [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.core.server.impl.ServerSessionImpl$1.done(ServerSessionImpl.java:1160)
>  [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.core.persistence.impl.journal.OperationContextImpl.executeOnCompletion(OperationContextImpl.java:168)
>  [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.close(ServerSessionImpl.java:1152)
>  [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.freezeConnections(ActiveMQServerImpl.java:926)
>  [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.stop(ActiveMQServerImpl.java:741)
>  [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.stop(ActiveMQServerImpl.java:654)
>  [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.stop(ActiveMQServerImpl.java:547)
>  [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.jms.server.impl.JMSServerManagerImpl.stop(JMSServerManagerImpl.java:407)
>  [artemis-jms-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.integration.FileBroker.stop(FileBroker.java:79) 
> [artemis-cli-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at org.apache.activemq.artemis.cli.commands.Run$2.run(Run.java:166) 
> [artemis-cli-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
> 12:18:16,886 ERROR [org.apache.activemq.artemis.core.server] AMQ224065: 
> Failed to remove auto-created queue jms.queue.first: 
> java.lang.IllegalStateException: Cannot access JMS Server, core server is not 
> active
>         at 
> org.apache.activemq.artemis.jms.server.impl.JMSServerManagerImpl.checkInitialised(JMSServerManagerImpl.java:1416)
>  [artemis-jms-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.jms.server.impl.JMSServerManagerImpl.destroyQueue(JMSServerManagerImpl.java:766)
>  [artemis-jms-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.jms.server.impl.JMSServerManagerImpl$JMSQueueDeleter.delete(JMSServerManagerImpl.java:1639)
>  [artemis-jms-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.core.server.impl.AutoCreatedQueueManagerImpl$1.run(AutoCreatedQueueManagerImpl.java:50)
>  [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.utils.ReferenceCounterUtil.decrement(ReferenceCounterUtil.java:55)
>  [artemis-commons-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.core.server.impl.AutoCreatedQueueManagerImpl.decrement(AutoCreatedQueueManagerImpl.java:78)
>  [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.core.server.impl.QueueImpl.removeConsumer(QueueImpl.java:768)
>  [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl.removeItself(ServerConsumerImpl.java:500)
>  [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl.close(ServerConsumerImpl.java:446)
>  [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.doClose(ServerSessionImpl.java:345)
>  [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.core.server.impl.ServerSessionImpl$1.done(ServerSessionImpl.java:1160)
>  [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.core.persistence.impl.journal.OperationContextImpl.executeOnCompletion(OperationContextImpl.java:168)
>  [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.close(ServerSessionImpl.java:1152)
>  [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.freezeConnections(ActiveMQServerImpl.java:926)
>  [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.stop(ActiveMQServerImpl.java:741)
>  [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.stop(ActiveMQServerImpl.java:654)
>  [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.stop(ActiveMQServerImpl.java:547)
>  [artemis-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.jms.server.impl.JMSServerManagerImpl.stop(JMSServerManagerImpl.java:407)
>  [artemis-jms-server-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at 
> org.apache.activemq.artemis.integration.FileBroker.stop(FileBroker.java:79) 
> [artemis-cli-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
>         at org.apache.activemq.artemis.cli.commands.Run$2.run(Run.java:166) 
> [artemis-cli-1.2.0.amq-700007-redhat-1.jar:1.2.0.amq-700007-redhat-1]
> 12:18:16,946 INFO  [org.apache.activemq.artemis.core.server] AMQ221002: 
> Apache ActiveMQ Artemis Message Broker version 1.2.0.amq-700007-redhat-1 
> [f08081ff-3794-11e6-9e79-08002758ce8c] stopped, uptime 15.179 seconds
> {noformat}
> Apparently, qdrouterd does not close autolinks and the connector before it 
> exits. If I delete all these with {{qdmanage}} before I stop the broker, the 
> error is not printed.
> This is a problem because of https://issues.jboss.org/browse/ENTMQ-1701 
> Unable to consume from queue if the previous consumer did not exit cleanly



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

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to