topology coordinator: set session id for streaming at the correct time
Commitd3efb3ab6fadded streaming session for rebuild, but it set the session and request submission time. The session should be set when request starts the execution, so this patch moved it to the correct place. Closes scylladb/scylladb#27757 (cherry picked from commit04976875cc) Closes scylladb/scylladb#27866
This commit is contained in:
@@ -4969,7 +4969,6 @@ future<> storage_service::raft_rebuild(utils::optional_param sdc_param) {
|
||||
|
||||
rtlogger.info("request rebuild for: {} source_dc={}", raft_server.id(), sdc_param);
|
||||
topology_mutation_builder builder(guard.write_timestamp());
|
||||
builder.set_session(session_id(guard.new_group0_state_id()));
|
||||
sstring source_dc = sdc_param.value_or("");
|
||||
if (sdc_param.force() && !source_dc.empty()) {
|
||||
source_dc += ":force";
|
||||
|
||||
@@ -2825,7 +2825,8 @@ class topology_coordinator : public endpoint_lifecycle_subscriber {
|
||||
}
|
||||
case topology_request::rebuild: {
|
||||
topology_mutation_builder builder(node.guard.write_timestamp());
|
||||
builder.with_node(node.id)
|
||||
builder.set_session(session_id(node.guard.new_group0_state_id()))
|
||||
.with_node(node.id)
|
||||
.set("node_state", node_state::rebuilding)
|
||||
.del("topology_request");
|
||||
co_await update_topology_state(take_guard(std::move(node)), {builder.build(), rtbuilder.build()},
|
||||
|
||||
Reference in New Issue
Block a user