Fixed - RReliableTopic renewal and status update retry handling #7391 by ronitgupta138 · Pull Request #7394 · redisson/redisson · GitHub
Skip to content

Fixed - RReliableTopic renewal and status update retry handling #7391 - #7394

Open
ronitgupta138 wants to merge 1 commit into
redisson:masterfrom
ronitgupta138:fix/reliable-topic-renewal-retry
Open

ronitgupta138 wants to merge 1 commit into
redisson:masterfrom
ronitgupta138:fix/reliable-topic-renewal-retry

Conversation

@ronitgupta138

Copy link
Copy Markdown
Contributor

Fixes #7391

When Redis rejects writes transiently (e.g. during replica resynchronization with NOREPLICAS, failover, or ACL updates):

  1. Watchdog renewal was abandoned on failure: In renewExpiration(), if the renewal execution future failed with an error, it was never rescheduled. Once reliableTopicWatchdogTimeout elapsed, the subscriber score expired.
  2. Post-poll status update script stopped the poll loop on error: If updateFuture failed, poll(id) was not rescheduled, permanently halting message consumption for active subscribers.
  3. Large score formatting in Lua script: In Lua, large integers format in scientific notation with tostring(), causing Redis stream ID parsing errors (ERR Invalid stream ID specified as stream command argument) when consumer groups are destroyed.

This change:

  • Reschedules renewExpiration() when renewal fails and subscribed.get() == true.
  • Retries poll(id) with backoff when updateFuture encounters a transient failure while still subscribed.
  • Guards empty consumer groups in the status update Lua script and uses string.format('%.0f', score).

Copilot AI balanced review requested due to automatic review settings October 16, 2026 11:28

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

…son#7391

Signed-off-by: Ronit Gupta <ronitgupta138@gmail.com>
@ronitgupta138
ronitgupta138 force-pushed the fix/reliable-topic-renewal-retry branch from 7d0c01c to 0810d4f Compare October 17, 2026 06:25
@clivequinn

Copy link
Copy Markdown

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

Labels

None yet

Development

Successfully merging this pull request may close these issues.

RReliableTopic subscriber stops consuming permanently after one failed watchdog renewal or status update (no retry; then "ERR Invalid stream ID")

3 participants