diff --git a/ydb/core/cms/console/console_configs_provider.cpp b/ydb/core/cms/console/console_configs_provider.cpp index 9ed9584f3426..4c9e136bdfe7 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 828acd32496a..02a3273da066 100644 --- a/ydb/core/cms/console/console_configs_provider.h +++ b/ydb/core/cms/console/console_configs_provider.h @@ -196,6 +196,7 @@ class TConfigsProvider : public TActorBootstrapped { 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);