[
https://issues.apache.org/jira/browse/QPID-6524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=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:
> {quote}
> qpid-config add queue testQueue1
> qpid-send --address testQueue1 -m 13 --content-size=1024
> qpid-config del queue testQueue1 --force
> {quote}
> the statistics show:
> {quote}
> 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}
> {quote}
> See e.g. msgDepth:0 or msgTotalDequeues:13.
> Those values are correct from the technical point of view (broker can delete
> only empty queue, after purging all its messages and deleting all bindings
> etc.), but they are not right from end-user perspective who sees the broker
> had some messages in the queue, but a log for deleting the queue does not
> mention them.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]