Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FIXED] Handle recreating file-based stream to be memory on meta recovery #6069

Merged
merged 1 commit into from
Nov 1, 2024

Conversation

MauriceVanVeen
Copy link
Member

For the following scenario:

  1. create file-based R3 stream
  2. delete stream
  3. create memory-based R3 stream
  4. add a consumer

The call to js.processStreamAssignment(sa) even while we're recovering would mean that on meta recovery we'd first create the file-based stream, then create the memory-based stream and fail to do so since we can't change storage types. Which then leaves us stranded with 2 nodes having a memory-based stream, and that one node with a file-based stream.

This change proposes to have the stream additions be consistent with the other collecting of state into ru *recoveryUpdates before applying, and waiting until recovery is finished to do so.

Signed-off-by: Maurice van Veen github@mauricevanveen.com
Co-authored-by: Neil Twigg neil@nats.io

…very

Signed-off-by: Maurice van Veen <github@mauricevanveen.com>
Co-authored-by: Neil Twigg <neil@nats.io>
@MauriceVanVeen MauriceVanVeen force-pushed the maurice/js-meta-replay-file-to-memory-stream branch from afa2acf to a4884a1 Compare November 1, 2024 14:24
@MauriceVanVeen MauriceVanVeen marked this pull request as ready for review November 1, 2024 15:17
@MauriceVanVeen MauriceVanVeen requested a review from a team as a code owner November 1, 2024 15:17
Copy link
Member

@derekcollison derekcollison left a comment

Choose a reason for hiding this comment

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

LGTM

@derekcollison derekcollison merged commit f981ac3 into main Nov 1, 2024
5 checks passed
@derekcollison derekcollison deleted the maurice/js-meta-replay-file-to-memory-stream branch November 1, 2024 15:19
neilalexander added a commit that referenced this pull request Nov 12, 2024
Includes the following:

* Some tweaks to the NRG test helpers
* #6055
* #6061
* #6065 
* #6041 (but with `math/rand`
instead of `math/rand/v2` due to an older Go version in CI for 2.10.x)
* #6066
* #6067
* #6069
* #6075
* #6082
* #6087
* #6086
* #6088
* #6089
* #6092
* #6096
* #6098
* #6097
* #6105
* #6104
* #6106
* #6109
* #6111
* #6112

Signed-off-by: Neil Twigg <neil@nats.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants