You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Keith Wall (Commented) (JIRA)" <ji...@apache.org> on 2011/11/30 15:05:40 UTC

[jira] [Commented] (QPID-3601) Failure to delete queue on a broker shutdown

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

Keith Wall commented on QPID-3601:
----------------------------------

Hi Robbie, can you review this change please?
                
> Failure to delete queue on a broker shutdown
> --------------------------------------------
>
>                 Key: QPID-3601
>                 URL: https://issues.apache.org/jira/browse/QPID-3601
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: 0.15
>            Reporter: Alex Rudyy
>            Assignee: Robbie Gemmell
>
> When slow consumer policy is configured and slow consumer is detected the policy fails to delete queue on broker shutdown.
> The registry can be destroyed in a shutdown thread and queue SimpleAMQQueue#reconfigure fails to reconfigure queue.
> As result of it the broker is not shut down and some threads remain running.
> The following exception stack trace demonstrates the issue
> {noformat}
> main 2011-11-09 11:20:47,423 INFO [qpid.test.utils.InternalBrokerHolder] Shutting down Broker instance
> main 2011-11-09 11:20:47,423 INFO [qpid.server.registry.ApplicationRegistry] Shutting down ApplicationRegistry(org.apache.qpid.server.registry.ConfigurationFileApplicationRegistry@6c28aeba)
> IoReceiver - /127.0.0.1:56171 2011-11-09 11:20:47,423 DEBUG [server.configuration.plugins.ConfigurationPlugin] For 'policy' found handlers (1):[
> SlowConsumerDetectionPolicyConfiguration=[ (Policy:TopicDelete)]
> ]
> main 2011-11-09 11:20:47,423 INFO [qpid.server.registry.ApplicationRegistry] Shutting down ApplicationRegistry:org.apache.qpid.server.registry.ConfigurationFileApplicationRegistry@6c28aeba
> main 2011-11-09 11:20:47,424 INFO [qpid.message.broker.shutting_down] [Broker] BRK-1003 : Shuting down : TCP port 15672
> main 2011-11-09 11:20:47,424 DEBUG [qpid.server.connection.ConnectionRegistry] Closing connection registry :0 connections.
> IoReceiver - /127.0.0.1:56171 2011-11-09 11:20:47,424 ERROR [apache.qpid.thread.LoggingUncaughtExceptionHandler] Uncaught exception in thread "IoReceiver - /127.0.0.1:56171"
> java.lang.IllegalStateException: No ApplicationRegistry has been initialised
>         at org.apache.qpid.server.registry.ApplicationRegistry.getInstance(ApplicationRegistry.java:425)
>         at org.apache.qpid.server.configuration.plugins.SlowConsumerDetectionQueueConfiguration.validateConfiguration(SlowConsumerDetectionQueueConfiguration.java:100)
>         at org.apache.qpid.server.configuration.plugins.ConfigurationPlugin.setConfiguration(ConfigurationPlugin.java:144)
>         at org.apache.qpid.server.configuration.plugins.SlowConsumerDetectionQueueConfiguration$SlowConsumerDetectionQueueConfigurationFactory.newInstance(SlowConsumerDetectionQueueConfiguration.java:46)
>         at org.apache.qpid.server.configuration.ConfigurationManager.getConfigurationPlugins(ConfigurationManager.java:47)
>         at org.apache.qpid.server.configuration.plugins.ConfigurationPlugin.offerRemainingConfigurationToOtherPlugins(ConfigurationPlugin.java:172)
>         at org.apache.qpid.server.configuration.plugins.ConfigurationPlugin.setConfiguration(ConfigurationPlugin.java:142)
>         at org.apache.qpid.server.configuration.VirtualHostConfiguration.getQueueConfiguration(VirtualHostConfiguration.java:232)
>         at org.apache.qpid.server.queue.SimpleAMQQueue.reconfigure(SimpleAMQQueue.java:522)
>         at org.apache.qpid.server.queue.SimpleAMQQueue.removeBinding(SimpleAMQQueue.java:545)
>         at org.apache.qpid.server.binding.BindingFactory.removeBinding(BindingFactory.java:252)
>         at org.apache.qpid.server.binding.BindingFactory.removeBinding(BindingFactory.java:221)
>         at org.apache.qpid.server.queue.SimpleAMQQueue.delete(SimpleAMQQueue.java:1364)
>         at org.apache.qpid.server.transport.ServerSessionDelegate$2.doTask(ServerSessionDelegate.java:1020)
>         at org.apache.qpid.server.transport.ServerSession.onClose(ServerSession.java:361)
>         at org.apache.qpid.server.transport.ServerSessionDelegate.closed(ServerSessionDelegate.java:1267)
>         at org.apache.qpid.transport.Session.closed(Session.java:1054)
>         at org.apache.qpid.transport.Connection.closed(Connection.java:551)
>         at org.apache.qpid.server.transport.ServerConnection.closed(ServerConnection.java:408)
>         at org.apache.qpid.transport.network.Assembler.closed(Assembler.java:110)
>         at org.apache.qpid.transport.network.InputHandler.closed(InputHandler.java:202)
>         at org.apache.qpid.server.protocol.ProtocolEngine_0_10.closed(ProtocolEngine_0_10.java:196)
>         at org.apache.qpid.server.protocol.MultiVersionProtocolEngine.closed(MultiVersionProtocolEngine.java:95)
>         at org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:173)
>         at java.lang.Thread.run(Thread.java:662)
> {noformat}
> The simplest work around solution here would be an adding of check into reconfigure method to check if queue is closed and skip reconfigure step.

--
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

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org