Search before reporting
Read release policy
User environment
Broker and client version: 4
OS: macOS Sequoia
Issue Description
When a chunked message is discarded due to expiry, etc. then permit of last chunk is not returned. Which results in permit leak, and eventually after enough leaks( receiverQueue/2) the consumptions stops. This is because on broker the permit drops to 0, and client now cannot sent permit request, because it doesn't have enough messages.
Error messages
Reproducing the issue
this can be reproduced by setting the expireTimeOfIncompleteChunkedMessage to a very small value like 1ms, and on produce side, sending the chunked messages with chunks count of 10 or more. So that the chunks gets expired, and the last chunk of each message will leak 1 permit. and consumption will stop after (receiverQueue/2) leaks.
Additional information
No response
Are you willing to submit a PR?
Search before reporting
Read release policy
User environment
Broker and client version: 4
OS: macOS Sequoia
Issue Description
When a chunked message is discarded due to expiry, etc. then permit of last chunk is not returned. Which results in permit leak, and eventually after enough leaks( receiverQueue/2) the consumptions stops. This is because on broker the permit drops to 0, and client now cannot sent permit request, because it doesn't have enough messages.
Error messages
Reproducing the issue
this can be reproduced by setting the expireTimeOfIncompleteChunkedMessage to a very small value like 1ms, and on produce side, sending the chunked messages with chunks count of 10 or more. So that the chunks gets expired, and the last chunk of each message will leak 1 permit. and consumption will stop after (receiverQueue/2) leaks.
Additional information
No response
Are you willing to submit a PR?