Skip to content

Conversation

guybe7
Copy link
Collaborator

@guybe7 guybe7 commented Sep 27, 2023

If we set fsynced_reploff_pending in startAppendOnly, and the fork doesn't start immediately (e.g. there's another fork active at the time), any subsequent commands will increment server.master_repl_offset, but will not cause a fsync (given they were executed before the fork started, they just ended up in the RDB part of it)
Therefore, any WAITAOF will wait on the new master_repl_offset, but it will time out because no fsync will be executed.

Release notes:

WAITAOF could timeout in the absence of write traffic in case a new AOF is created and an AOFRW can't immediately start.
This can happen by the appendonly config is changed at runtime, but also after FLUSHALL, and replica full sync.

…ial AOFRW fork

If we set fsynced_reploff_pending in startAppendOnly, and the fork doesn't start
immediately, any subsequent commands will increment server.master_repl_offset,
but will not cause an fsync (given they were executed before the fork started,
they jsu ended up in the RDB part of it)
Therefore, any WAITAOF will wait on the new master_repl_offset, but it will
timeout because no fsync will be executed.
Copy link
Member

@oranagra oranagra left a comment

Choose a reason for hiding this comment

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

@slavak please wash your eyes on this too

@oranagra oranagra merged commit bfa3931 into redis:unstable Sep 28, 2023
@oranagra oranagra added the release-notes indication that this issue needs to be mentioned in the release notes label Sep 28, 2023
@oranagra oranagra mentioned this pull request Oct 17, 2023
oranagra pushed a commit that referenced this pull request Oct 18, 2023
…ial AOFRW fork (#12620)

If we set `fsynced_reploff_pending` in `startAppendOnly`, and the fork doesn't start
immediately (e.g. there's another fork active at the time), any subsequent commands
will increment `server.master_repl_offset`, but will not cause a fsync (given they were
executed before the fork started, they just ended up in the RDB part of it)
Therefore, any WAITAOF will wait on the new master_repl_offset, but it will time out
because no fsync will be executed.

Release notes:
```
WAITAOF could timeout in the absence of write traffic in case a new AOF is created and
an AOFRW can't immediately start.
This can happen by the appendonly config is changed at runtime, but also after FLUSHALL,
and replica full sync.
```

(cherry picked from commit bfa3931)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release-notes indication that this issue needs to be mentioned in the release notes

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants