diff options
| author | Ilnaz Nizametdinov <[email protected]> | 2025-09-26 16:09:33 +0300 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-09-26 16:09:33 +0300 |
| commit | 0cc041fadf4536ea6ed1810a0bb48fc8f33dc577 (patch) | |
| tree | 371ef1bfa329d6c2ffece5b41f62fa8ae445d23c | |
| parent | 9034ebfcfeb264fcb25a6b0161bf578ac4589e87 (diff) | |
Remove the update from the queue when necessary (#25844)
| -rw-r--r-- | ydb/core/cms/console/console_configs_provider.cpp | 15 | ||||
| -rw-r--r-- | ydb/core/cms/console/console_configs_provider.h | 1 |
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); |
