You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Gordon Sim (Jira)" <ji...@apache.org> on 2020/09/10 18:52:00 UTC

[jira] [Commented] (QPID-8462) Qpid broker memory increases when a receiver is paused with message pending acks

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

Gordon Sim commented on QPID-8462:
----------------------------------

This is 'expected' behaviour. The way the queue is implemented, records can be marked deleted (and the message they refer to freed), but the records themselves can only be removed when at either end of the queue. (This is so as to make the cursors that can track positions in the queue and move them forward more efficient).

So when you keep the oldest message locked, it can't be removed nor can any deleted message behind it.

 

If you requires heartbeats then the broker would disconnect it if it does not send heartbeats which will prevent accidental locking of messages by hung clients.

> Qpid broker memory increases when a receiver is paused with message pending acks 
> ---------------------------------------------------------------------------------
>
>                 Key: QPID-8462
>                 URL: https://issues.apache.org/jira/browse/QPID-8462
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Broker
>    Affects Versions: qpid-cpp-1.39.0
>         Environment: Linux
>  
>            Reporter: KALYANARAMAN SIVARAMAN
>            Priority: Major
>         Attachments: brokerMemoryIncrease.tar
>
>
> Given the situation where we have a receiver "Receiver1" acquire 1 message from a queue "ReceiverQueue" but if the message is not acknowledged and Receiver1 process is paused using kill -STOP <pidOfReceiver1>.
> Any further messages sent to ReceiverQueue is marked as DELETED even though we have another receiver "Receiver2" properly acquire messages from the queue and also sends acknowledgements, the broker memory linearly increases until all the memory in the box is used. Purger cleaning up messages does not help. Once we kill Receiver1 the broker memory stabilizes.
> All of the repro steps are automated in the attached reproducer.
>  
> Please follow the steps to reproduce the issue
>  
> Step 1: tar -xf brokerMemoryIncrease.tar
> Step 2: cd brokerMemoryIncrease
> Step 3: ./qpidRepro.sh
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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