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
>

Reply via email to