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

Gordon Sim commented on QPID-1488:
----------------------------------

To see problem (a) described in my comment above:

1. start first cluster node
2. create queue with specific policy (e.g. qpid-config  add
queue test-queue --max-queue-count 2 --limit-policy reject)
3. send a message to the queue (e.g. echo one | ./qpid/cpp/src/tests/sender)
4. start second node for cluster
5. send second message (e.g. echo two | ./qpid/cpp/src/tests/sender)

At this point the new member fails to add second message and exits with:

2009-may-27 05:18:50 error Execution exception: resource-limit-exceeded: Policy
exceeded on test-queue by message 2 of size 3 , policy: size: max=104857600,
current=6; count: max=2, current=2; type=reject
(qpid/broker/QueuePolicy.cpp:90)
2009-may-27 05:18:50 critical 100.0.50.15:1404(READY/error) Error 236 outcome
agrees with 100.0.50.15:1404
2009-may-27 05:18:50 critical 100.0.50.15:1404(READY/error) Error 236 did not
occur on 100.0.50.15:1350
2009-may-27 05:18:50 error Error delivering frames: Aborted by local failure
that did not occur on all replicas

> QueuePolicy serialization fix for cluster braindump.
> ----------------------------------------------------
>
>                 Key: QPID-1488
>                 URL: https://issues.apache.org/jira/browse/QPID-1488
>             Project: Qpid
>          Issue Type: Improvement
>          Components: C++ Broker
>         Environment: tested on F9
>            Reporter: michael j. goulish
>            Assignee: Alan Conway
>            Priority: Blocker
>         Attachments: queue_policy_serialization_bug.diff
>
>
> In cluster braindump (when a new member is being added to a cluster) the 
> QueuePolicy is not being serialized out as part of the brain dump.  As a 
> result the newbie cluster can get a mistaken idea of the queue size (in 
> bytes).  
> After many dequeues, the size can go negative, but since the queue size is an 
> unsigned number it wraps around and look like a large positive.  Which sets 
> off the flow-to-disk code, because it thinks that the queue has gotten too 
> large.
> The result:    what():  framing-error: Unexpected command start frame. 
> (qpid/SessionState.cpp:57)
> This fix just adds a little serialization of the QueuePolicy on to the end of 
> the serialization of the Queue.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to