qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pavel Moravec (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (QPID-5116) QMF method "queueMoveMessages" loses one message when moving to full queue
Date Thu, 05 Sep 2013 12:27:52 GMT

     [ https://issues.apache.org/jira/browse/QPID-5116?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Pavel Moravec updated QPID-5116:
--------------------------------

    Attachment: QPID-5116.patch

Patch proposal. Though it works for the provided scenario (fromQueue has 900 messages at the
end), I am not sure if it does not break anything else.

I tested it also with durable queues & messages to check if "removed" dequeue has proper
messages in, to call dequeueFromStore only to really moved messages. This was ok.
                
> QMF method "queueMoveMessages" loses one message when moving to full queue
> --------------------------------------------------------------------------
>
>                 Key: QPID-5116
>                 URL: https://issues.apache.org/jira/browse/QPID-5116
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Broker
>    Affects Versions: 0.22
>            Reporter: Pavel Moravec
>            Priority: Minor
>         Attachments: QPID-5116.patch
>
>
> Invoking QMF method "queueMoveMessages" where destination queue can't handle all moved
messages due to its capacity, one message is lost.
> Reproducer:
> $ qpid-receive -a "tinyQueue; {create:always, node:{ x-declare:{ arguments:{'qpid.max_count':100}}}}"
> $ qpid-send -a "fromQueue; {create:always}" -m 1000
> $ qpid-tool
> Management Tool for QPID
> qpid: list broker
> Object Summary:
>     ID   Created   Destroyed  Index
>     =======================================
>     117  08:11:52  -          amqp-broker
> qpid: call 117 queueMoveMessages fromQueue tinyQueue 300 {}
> qpid: resource-limit-exceeded: Policy exceeded on tinyQueue, policy: size: max=104857600,
current=1000; count: max=100, current=100; type=reject (qpid/broker/QueuePolicy.cpp:92) (7)
- {}
> qpid: quit
> Exiting...
> $ qpid-stat -q
> Queues
>   queue                                     dur  autoDel  excl  msg   msgIn  msgOut 
bytes  bytesIn  bytesOut  cons  bind
>   =========================================================================================================================
>   3d03d063-4f1e-4cc2-822f-00d95d7e42e9:0.0       Y        Y        0     0      0   
   0      0        0         1     2
>   fromQueue                                                      899  1.00k   101   
8.99k  10.0k    1.01k        0     1
>   tinyQueue                                                      100   100      0   
1.00k  1.00k       0         0     1
> $
> See fromQueue has dequeued 101 messages while tinyQueue enqueued just 100.
> (relevant discussion: http://qpid.2158936.n2.nabble.com/QMF-method-quot-queueMoveMessages-quot-can-loose-one-message-td7597804.html)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

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


Mime
View raw message