topology coordinator: set session id for streaming at the correct time

Commit d3efb3ab6f added 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 commit 04976875cc)

Closes scylladb/scylladb#27866
This commit is contained in:
Gleb Natapov
2025-12-18 14:21:38 +02:00
committed by Avi Kivity
parent 56c65d08f6
commit 4e48a046c3
2 changed files with 2 additions and 2 deletions

View File

@@ -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";

View File

@@ -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()},