Skip to content

Durable consumers Acknowledgment Floor "reset" on power failure #8036

Description

@MirkoGibin

Observed behavior

I'm not sure whether this is a defect or expected behavior. I'm opening this issue to collect more information, as I haven't been able to find any related details in the documentation.

Our setup is a single-node deployment with no replication enabled.

The NATS server is receiving and processing events. At some point, the physical server is shut down (for any reason) and then started again.

After the restart, we observe that durable consumers associated with streams using the Limits retention policy have their acknowledgement floor reset to 1. This causes a full replay of all messages in the corresponding streams.

We noticed that this behavior only affects consumers related to streams that, during server startup, log messages like the following:

[WRN] Filestore [streamName] Stream state outdated, last block has additional entries, will rebuild
[WRN] Filestore [streamName] Recovering stream state from index errored: prior state file ...

Is this an expected behavior when a stream state rebuild happens, or could this indicate an issue with the stream/consumer state recovery?
Could it be related to sync_interval configuration?

Expected behavior

Durable consumer should be able to maintain AckFloor after restore

Server and client version

nats server v2.12.5

Host environment

  • Nats Jetstream v2.12.5 on a single node installation on a physical server
  • Kubernetes deployed as RKE2
  • File based storage backed by a Longhorn PVC
  • OS: Linux RHEL compatible

Steps to reproduce

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    defectSuspected defect such as a bug or regression

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions