diff --git a/ydb/core/blobstorage/nodewarden/distconf.cpp b/ydb/core/blobstorage/nodewarden/distconf.cpp index 84ad8a343997..4ae279067e88 100644 --- a/ydb/core/blobstorage/nodewarden/distconf.cpp +++ b/ydb/core/blobstorage/nodewarden/distconf.cpp @@ -197,7 +197,7 @@ namespace NKikimr::NStorage { switch (ev->GetTypeRewrite()) { case TEvInterconnect::TEvNodesInfo::EventType: Handle(reinterpret_cast(ev)); - if (!NodeIds.empty()) { + if (!NodeIds.empty() || !IsSelfStatic) { change = !std::exchange(NodeListObtained, true); } break; @@ -220,6 +220,10 @@ namespace NKikimr::NStorage { } if (change && NodeListObtained && StorageConfigLoaded) { + if (IsSelfStatic) { + UpdateBound(SelfNode.NodeId(), SelfNode, *StorageConfig, nullptr); + IssueNextBindRequest(); + } processPendingEvents(); } } diff --git a/ydb/core/blobstorage/nodewarden/distconf.h b/ydb/core/blobstorage/nodewarden/distconf.h index 075288efcd9d..723795409f3d 100644 --- a/ydb/core/blobstorage/nodewarden/distconf.h +++ b/ydb/core/blobstorage/nodewarden/distconf.h @@ -220,7 +220,6 @@ namespace NKikimr::NStorage { std::deque> PendingEvents; std::vector NodeIds; TNodeIdentifier SelfNode; - bool SelfBound = false; // scatter tasks ui64 NextScatterCookie = RandomNumber(); diff --git a/ydb/core/blobstorage/nodewarden/distconf_binding.cpp b/ydb/core/blobstorage/nodewarden/distconf_binding.cpp index ebce2c6383ee..e804a67a98b3 100644 --- a/ydb/core/blobstorage/nodewarden/distconf_binding.cpp +++ b/ydb/core/blobstorage/nodewarden/distconf_binding.cpp @@ -58,13 +58,13 @@ namespace NKikimr::NStorage { // issue updates NodeIds = std::move(nodeIds); BindQueue.Update(NodeIds); - if (NodeListObtained && StorageConfigLoaded && !std::exchange(SelfBound, true)) { - UpdateBound(SelfNode.NodeId(), SelfNode, *StorageConfig, nullptr); + if (NodeListObtained && StorageConfigLoaded) { IssueNextBindRequest(); } } void TDistributedConfigKeeper::IssueNextBindRequest() { + Y_DEBUG_ABORT_UNLESS(IsSelfStatic); CheckRootNodeStatus(); if (RootState == ERootState::INITIAL && !Binding && AllBoundNodes.size() < NodeIds.size()) { const TMonotonic now = TActivationContext::Monotonic();