[
https://issues.apache.org/jira/browse/QPID-6524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14521348#comment-14521348
]
Pavel Moravec commented on QPID-6524:
-
Currently, debugStats method responsible for the log is called from Queue class
destructor. That is necessary for queues being deleted during broker shutdown,
when no other method like Queue::destroyed() is called. So, the current log -
until I see there is a simple test to detect shutting down broker - should
remain as is.
To limit the user confusion, I suggest adding a new log based on patch:
{noformat}
Index: qpid/broker/Queue.cpp
===
--- qpid/broker/Queue.cpp (revision 1676937)
+++ qpid/broker/Queue.cpp (working copy)
@@ -1136,6 +1136,8 @@
void Queue::destroyed()
{
+if (mgmtObject != 0)
+mgmtObject-debugStats(deleting);
unbind(broker-getExchanges());
remove(0, 0, boost::bind(Queue::abandoned, this, _1), REPLICATOR/*even
acquired message are treated as abandoned*/, false);
if (alternateExchange.get()) {
{noformat}
In case of a queue deleted during broker runtime, trace logs will be:
{noformat}
2015-04-30 12:36:05 [Model] trace Mgmt deleting queue. id:testQueue1
Statistics: {acquires:0, bindingCount:1, bindingCountHigh:1, bindingCountLow:0,
byteDepth:14183, byteFtdDepth:0, byteFtdDequeues:0, byteFtdEnqueues:0,
bytePersistDequeues:0, bytePersistEnqueues:0, byteTotalDequeues:0,
byteTotalEnqueues:14183, byteTxnDequeues:0, byteTxnEnqueues:0, consumerCount:0,
consumerCountHigh:0, consumerCountLow:0, creator:anonymous, discardsLvq:0,
discardsOverflow:0, discardsPurge:0, discardsRing:0, discardsSubscriber:0,
discardsTtl:0, flowStopped:False, flowStoppedCount:0, messageLatencyAvg:0,
messageLatencyCount:0, messageLatencyMax:0, messageLatencyMin:0, msgDepth:13,
msgFtdDepth:0, msgFtdDequeues:0, msgFtdEnqueues:0, msgPersistDequeues:0,
msgPersistEnqueues:0, msgTotalDequeues:0, msgTotalEnqueues:13,
msgTxnDequeues:0, msgTxnEnqueues:0, redirectPeer:, redirectSource:False,
releases:0, reroutes:0, unackedMessages:0, unackedMessagesHigh:0,
unackedMessagesLow:0}
2015-04-30 12:36:05 [Model] trace Mgmt destroying queue. id:testQueue1
Statistics: {acquires:0, bindingCount:0, bindingCountHigh:1, bindingCountLow:0,
byteDepth:0, byteFtdDepth:0, byteFtdDequeues:0, byteFtdEnqueues:0,
bytePersistDequeues:0, bytePersistEnqueues:0, byteTotalDequeues:14183,
byteTotalEnqueues:14183, byteTxnDequeues:0, byteTxnEnqueues:0, consumerCount:0,
consumerCountHigh:0, consumerCountLow:0, creator:anonymous, discardsLvq:0,
discardsOverflow:0, discardsPurge:0, discardsRing:0, discardsSubscriber:0,
discardsTtl:0, flowStopped:False, flowStoppedCount:0, messageLatencyAvg:0,
messageLatencyCount:0, messageLatencyMax:0, messageLatencyMin:0, msgDepth:0,
msgFtdDepth:0, msgFtdDequeues:0, msgFtdEnqueues:0, msgPersistDequeues:0,
msgPersistEnqueues:0, msgTotalDequeues:13, msgTotalEnqueues:13,
msgTxnDequeues:0, msgTxnEnqueues:0, redirectPeer:, redirectSource:False,
releases:0, reroutes:0, unackedMessages:0, unackedMessagesHigh:0,
unackedMessagesLow:0}
{noformat}
I.e. the 1st one with proper counters (e.g. msgDepth:13, msgTotalDequeues:0),
second one with counters after the purge.
In case of a queue deleted during broker shutting-down, trace logs will be:
{noformat}
2015-04-30 12:36:10 [Model] trace Mgmt destroying queue. id:testQueue1
Statistics: {acquires:0, bindingCount:0, bindingCountHigh:1, bindingCountLow:0,
byteDepth:14183, byteFtdDepth:0, byteFtdDequeues:0, byteFtdEnqueues:0,
bytePersistDequeues:0, bytePersistEnqueues:0, byteTotalDequeues:0,
byteTotalEnqueues:14183, byteTxnDequeues:0, byteTxnEnqueues:0, consumerCount:0,
consumerCountHigh:0, consumerCountLow:0, creator:anonymous, discardsLvq:0,
discardsOverflow:0, discardsPurge:0, discardsRing:0, discardsSubscriber:0,
discardsTtl:0, flowStopped:False, flowStoppedCount:0, messageLatencyAvg:0,
messageLatencyCount:0, messageLatencyMax:0, messageLatencyMin:0, msgDepth:13,
msgFtdDepth:0, msgFtdDequeues:0, msgFtdEnqueues:0, msgPersistDequeues:0,
msgPersistEnqueues:0, msgTotalDequeues:0, msgTotalEnqueues:13,
msgTxnDequeues:0, msgTxnEnqueues:0, redirectPeer:, redirectSource:False,
releases:0, reroutes:0, unackedMessages:0, unackedMessagesHigh:0,
unackedMessagesLow:0}
{noformat}
I.e. with proper counters.
[C++ broker]: Fix for QPID-5107 incomplete for queues
-
Key: QPID-6524
URL: https://issues.apache.org/jira/browse/QPID-6524
Project: Qpid
Issue Type: Bug
Components: C++ Broker
Affects Versions: 0.30
Reporter: Pavel Moravec
Priority: Minor
QPID-5107 fixes all except the very basic scenario when the queue is deleted
before broker shutdown. I.e. in use case: