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

bug(server): reject replicaof while loading from snapshot #2338

Merged
merged 5 commits into from
Dec 27, 2023
Merged

Conversation

adiholden
Copy link
Collaborator

@adiholden adiholden commented Dec 26, 2023

fix #2337
The bug:
replicaof was not rejected while loading snapshot
The fix:
replicaof is allowed while server is in loading state to allow replicaof while replication in full sync mode
I now reject replicaof if the server is in loading state and it is master

Another bug fix:
allow cron snapshot if --replicaof flag was set

@adiholden adiholden requested a review from chakaz December 26, 2023 19:55
src/server/server_family.cc Show resolved Hide resolved
Comment on lines 495 to 507
const auto load_path_result = snapshot_storage_->LoadPath(flag_dir, GetFlag(FLAGS_dbfilename));
if (load_path_result) {
const std::string load_path = *load_path_result;
if (!load_path.empty()) {
load_result_ = Load(load_path);
}
} else {
LOG(ERROR) << "Failed to load snapshot: " << load_path_result.error().Format();
if (std::error_code(load_path_result.error()) == std::errc::no_such_file_or_directory) {
LOG(WARNING) << "Load snapshot: No snapshot found";
} else {
LOG(ERROR) << "Failed to load snapshot: " << load_path_result.error().Format();
}
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

Can you wrap this in a function, so that Init() is simpler?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

done

Signed-off-by: adi_holden <[email protected]>
@adiholden adiholden requested a review from chakaz December 27, 2023 11:34
@adiholden adiholden merged commit 5d67c95 into main Dec 27, 2023
10 checks passed
@adiholden adiholden deleted the fix_2337 branch December 27, 2023 11:57
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.

During the load snapshot process, should the REPLICAOF or SLAVEOF command be allowed to be executed?
2 participants