Hi Tomas, Thanks for reporting this issue. It is caused by a defect in reject overflow policy with evaluation of size of the messages being enqueued. I raised a defect JIRA QPID-8341 [1] and committed a fix [2] which should resolve the problem. I merged the fix into 7.1.x branch for its inclusion into 7.1.5 release.
Kind Regards, Alex [1] https://issues.apache.org/jira/browse/QPID-8341 [2] https://gitbox.apache.org/repos/asf?p=qpid-broker-j.git;h=d946bec [3] https://gitbox.apache.org/repos/asf?p=qpid-broker-j.git;h=4dd26dd On Fri, 12 Jul 2019 at 08:08, .. ... <[email protected]> wrote: > Hi, > > > > we encountered issue with reject queue. Reject queue calculates wrong size > of incoming message. Incoming message size also increases when sending > further messages. Each rejected message increases calculated incoming > message size. > > > > Steps to reproduce: > > 1] Create topic exchange > > 2] Create standard queue with reject policy (count: 2, size: 1024000) > > 3] Create binding between exchange and queue > > 4] Create and connect consumer which will indefinitely consume all messages > from queue > > 5] Send thousand of 512kB messages to exchange > > > > Sender sends all messages, but receiver will not receive all messages. > > > > After that queue is in some wrong state and you cannot send messages to > queue even if queue is empty. All messages are rejected because of size > even if size of incoming message is less then queue maximum size (sent > messages had 100 bytes payload). > > > > Client shows exceptions like: > > > > javax.jms.ResourceAllocationException: Maximum depth exceeded on 'queue' : > current=[count: 1, size: 20684070], max=[count: 2, size: 1024000] > [condition = amqp:resource-limit-exceeded] > > javax.jms.ResourceAllocationException: Maximum depth exceeded on 'queue' : > current=[count: 1, size: 20684762], max=[count: 2, size: 1024000] > [condition = amqp:resource-limit-exceeded] > > javax.jms.ResourceAllocationException: Maximum depth exceeded on 'queue' : > current=[count: 1, size: 20686146], max=[count: 2, size: 1024000] > [condition = amqp:resource-limit-exceeded] > > javax.jms.ResourceAllocationException: Maximum depth exceeded on 'queue' : > current=[count: 1, size: 20686838], max=[count: 2, size: 1024000] > [condition = amqp:resource-limit-exceeded] > > javax.jms.ResourceAllocationException: Maximum depth exceeded on 'queue' : > current=[count: 1, size: 20687530], max=[count: 2, size: 1024000] > [condition = amqp:resource-limit-exceeded] > > javax.jms.ResourceAllocationException: Maximum depth exceeded on 'queue' : > current=[count: 1, size: 20688222], max=[count: 2, size: 1024000] > [condition = amqp:resource-limit-exceeded] > > javax.jms.ResourceAllocationException: Maximum depth exceeded on 'queue' : > current=[count: 1, size: 20688914], max=[count: 2, size: 1024000] > [condition = amqp:resource-limit-exceeded] > > javax.jms.ResourceAllocationException: Maximum depth exceeded on 'queue' : > current=[count: 1, size: 20689606], max=[count: 2, size: 1024000] > [condition = amqp:resource-limit-exceeded] > > > > Regards, > Tomas >
