SlowConsumerDetection continues to check (and holds references to) deleted queues ---------------------------------------------------------------------------------
Key: QPID-3649 URL: https://issues.apache.org/jira/browse/QPID-3649 Project: Qpid Issue Type: Bug Components: Java Broker Affects Versions: 0.12, 0.10, 0.14, 0.15 Reporter: Keith Wall SlowConsumerDetection maintains a list of queues to periodically test for the presence of slow consumers. If a queue is deleted however, the queue is not removed from the list. This could cause performance problems for users of the SlowConsumerDetection plugin, and may pose the risk of a memory leak since the data structure caches references to AMQQueue. To reproduce, configure SCD in the virtualhost xml, and use JMX to create/delete queues: 1) Create three queues: {code} 2011-11-29 14:42:28,604 INFO [RMI TCP Connection(4)-169.24.25.106] (Log4jMessageLogger.java:72) - [mng:N/A(169.24.25.106)] [vh(/localhost)/qu(queue1)] QUE-1001 : Create : Owner: String Durable 2011-11-29 14:42:28,611 INFO [RMI TCP Connection(4)-169.24.25.106] (Log4jMessageLogger.java:72) - [mng:N/A(169.24.25.106)] [vh(/localhost)/ex(direct/<<default>>)/qu(queue1)/rk(queue1)] BND-1001 : Create 2011-11-29 14:42:34,260 INFO [RMI TCP Connection(3)-169.24.25.106] (Log4jMessageLogger.java:72) - [mng:N/A(169.24.25.106)] [vh(/localhost)/qu(queue2)] QUE-1001 : Create : Owner: String Durable 2011-11-29 14:42:34,267 INFO [RMI TCP Connection(3)-169.24.25.106] (Log4jMessageLogger.java:72) - [mng:N/A(169.24.25.106)] [vh(/localhost)/ex(direct/<<default>>)/qu(queue2)/rk(queue2)] BND-1001 : Create 2011-11-29 14:42:37,661 INFO [RMI TCP Connection(4)-169.24.25.106] (Log4jMessageLogger.java:72) - [mng:N/A(169.24.25.106)] [vh(/localhost)/qu(queue3)] QUE-1001 : Create : Owner: String Durable 2011-11-29 14:42:37,667 INFO [RMI TCP Connection(4)-169.24.25.106] (Log4jMessageLogger.java:72) - [mng:N/A(169.24.25.106)] [vh(/localhost)/ex(direct/<<default>>)/qu(queue3)/rk(queue3)] BND-1001 : Create {code} 2) Observe SCD checking the 3 queues: {code} 2011-11-29 14:43:01,357 INFO [localhost:SlowConsumerDetection] (Log4jMessageLogger.java:72) - localhost:SlowConsumerDetectionSCD-1001 : Running 2011-11-29 14:43:01,358 INFO [localhost:SlowConsumerDetection] (Log4jMessageLogger.java:72) - localhost:SlowConsumerDetectionSCD-1003 : Checking Status of Queue queue2 2011-11-29 14:43:01,360 INFO [localhost:SlowConsumerDetection] (Log4jMessageLogger.java:72) - localhost:SlowConsumerDetectionSCD-1003 : Checking Status of Queue queue3 2011-11-29 14:43:01,361 INFO [localhost:SlowConsumerDetection] (Log4jMessageLogger.java:72) - localhost:SlowConsumerDetectionSCD-1003 : Checking Status of Queue queue1 2011-11-29 14:43:01,362 INFO [localhost:SlowConsumerDetection] (Log4jMessageLogger.java:72) - localhost:SlowConsumerDetectionSCD-1002 : Complete {code} 3) Delete a queue {code} 2011-11-29 14:43:14,178 INFO [RMI TCP Connection(3)-169.24.25.106] (Log4jMessageLogger.java:72) - [mng:N/A(169.24.25.106)] [vh(/localhost)/ex(direct/<<default>>)/qu(queue2)/rk(queue2)] BND-1002 : Deleted 2011-11-29 14:43:14,179 INFO [RMI TCP Connection(3)-169.24.25.106] (Log4jMessageLogger.java:72) - [mng:N/A(169.24.25.106)] [vh(/localhost)/qu(queue2)] QUE-1002 : Deleted {code} 4) Observe the SCD continues to check all queues {code} 2011-11-29 14:44:01,358 INFO [localhost:SlowConsumerDetection] (Log4jMessageLogger.java:72) - localhost:SlowConsumerDetectionSCD-1001 : Running 2011-11-29 14:44:01,359 INFO [localhost:SlowConsumerDetection] (Log4jMessageLogger.java:72) - localhost:SlowConsumerDetectionSCD-1003 : Checking Status of Queue queue2 2011-11-29 14:44:01,361 INFO [localhost:SlowConsumerDetection] (Log4jMessageLogger.java:72) - localhost:SlowConsumerDetectionSCD-1003 : Checking Status of Queue queue3 2011-11-29 14:44:01,362 INFO [localhost:SlowConsumerDetection] (Log4jMessageLogger.java:72) - localhost:SlowConsumerDetectionSCD-1003 : Checking Status of Queue queue1 2011-11-29 14:44:01,363 INFO [localhost:SlowConsumerDetection] (Log4jMessageLogger.java:72) - localhost:SlowConsumerDetectionSCD-1002 : Complete {code} -- 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-subscr...@qpid.apache.org