summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIlnaz Nizametdinov <[email protected]>2025-09-26 16:09:33 +0300
committerGitHub <[email protected]>2025-09-26 16:09:33 +0300
commit0cc041fadf4536ea6ed1810a0bb48fc8f33dc577 (patch)
tree371ef1bfa329d6c2ffece5b41f62fa8ae445d23c
parent9034ebfcfeb264fcb25a6b0161bf578ac4589e87 (diff)
Remove the update from the queue when necessary (#25844)
-rw-r--r--ydb/core/cms/console/console_configs_provider.cpp15
-rw-r--r--ydb/core/cms/console/console_configs_provider.h1
2 files changed, 11 insertions, 5 deletions
diff --git a/ydb/core/cms/console/console_configs_provider.cpp b/ydb/core/cms/console/console_configs_provider.cpp
index 9ed9584f342..4c9e136bdfe 100644
--- a/ydb/core/cms/console/console_configs_provider.cpp
+++ b/ydb/core/cms/console/console_configs_provider.cpp
@@ -561,6 +561,12 @@ void TConfigsProvider::ProcessScheduledUpdates(const TActorContext &ctx)
*Counters.InflightConfigUpdates = InflightUpdates.size();
}
+void TConfigsProvider::RemoveSubscription(const TActorId& subscriber) {
+ InMemoryIndex.RemoveSubscription(subscriber);
+ ScheduledUpdates.erase(subscriber);
+ InflightUpdates.erase(subscriber);
+}
+
void TConfigsProvider::CheckSubscription(TSubscription::TPtr subscription,
const TActorContext &ctx)
{
@@ -829,7 +835,7 @@ void TConfigsProvider::Handle(TEvConsole::TEvConfigSubscriptionRequest::TPtr &ev
return;
}
- InMemoryIndex.RemoveSubscription(subscriber);
+ RemoveSubscription(subscriber);
Send(existing->Worker, new TEvents::TEvPoisonPill());
}
@@ -886,8 +892,9 @@ void TConfigsProvider::Handle(TEvConsole::TEvConfigSubscriptionCanceled::TPtr &e
Y_ABORT_UNLESS(subscription->Worker);
- InMemoryIndex.RemoveSubscription(subscriber);
+ RemoveSubscription(subscriber);
Send(subscription->Worker, new TEvents::TEvPoisonPill());
+ ProcessScheduledUpdates(ctx);
}
void TConfigsProvider::Handle(TEvPrivate::TEvWorkerDisconnected::TPtr &ev, const TActorContext &ctx)
@@ -895,9 +902,7 @@ void TConfigsProvider::Handle(TEvPrivate::TEvWorkerDisconnected::TPtr &ev, const
auto subscription = ev->Get()->Subscription;
auto existing = InMemoryIndex.GetSubscription(subscription->Subscriber);
if (existing == subscription) {
- InMemoryIndex.RemoveSubscription(subscription->Subscriber);
- ScheduledUpdates.erase(subscription->Subscriber);
- InflightUpdates.erase(subscription->Subscriber);
+ RemoveSubscription(subscription->Subscriber);
Send(subscription->Subscriber, new TEvConsole::TEvConfigSubscriptionCanceled(subscription->Generation));
diff --git a/ydb/core/cms/console/console_configs_provider.h b/ydb/core/cms/console/console_configs_provider.h
index 828acd32496..02a3273da06 100644
--- a/ydb/core/cms/console/console_configs_provider.h
+++ b/ydb/core/cms/console/console_configs_provider.h
@@ -196,6 +196,7 @@ private:
const TActorContext &ctx);
void ProcessScheduledUpdates(const TActorContext &ctx);
+ void RemoveSubscription(const TActorId& subscriber);
void Handle(NMon::TEvHttpInfo::TPtr &ev);
void Handle(TEvConsole::TEvConfigSubscriptionRequest::TPtr &ev, const TActorContext &ctx);