Skip to content

stream expired messages are mot removed from consumer pending ack list #2083

Closed
@ripienaar

Description

@ripienaar

A stream with age limits on the messages will remove messages once they hit that time. However any messages that at that point were not acked on a consumer will continue to be considered as ack outstanding.

If the max ack outstanding is reached by such a consumer/stream the consmer is forever dead as it can never recover from that scenario.

Here is a stream that recently expired all its messages:

State:

             Messages: 0
                Bytes: 0 B
             FirstSeq: 101
              LastSeq: 100 @ 2021-04-08T11:09:40 UTC
     Active Consumers: 1

And a consumer on the same stream

State:

   Last Delivered Message: Consumer sequence: 100 Stream sequence: 10
     Acknowledgment floor: Consumer sequence: 0 Stream sequence: 0
         Outstanding Acks: 10 out of maximum 10
     Redelivered Messages: 10
     Unprocessed Messages: 0

At this point the consumer will never again deliver messages even if new messages are added to the stream

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions