@@ -118,6 +118,7 @@ class TComputeSchedulerService : public NActors::TActorBootstrapped<TComputeSche
118118 // TODO: Scheduler->UpdatePool(…);
119119 }
120120 } else {
121+ LOG_ERROR_S (*NActors::TlsActivationContext, NKikimrServices::KQP_COMPUTE_SCHEDULER, " Trying to remove unknown pool: " << databaseId << " /" << poolId);
121122 // TODO: the removing message for unknown pool - should we check?
122123 }
123124 }
@@ -137,7 +138,9 @@ class TComputeSchedulerService : public NActors::TActorBootstrapped<TComputeSche
137138 }
138139
139140 void Handle (TEvRemoveQuery::TPtr& ev) {
140- Scheduler->RemoveQuery (ev->Get ()->Query );
141+ if (!Scheduler->RemoveQuery (ev->Get ()->QueryId )) {
142+ LOG_ERROR_S (*NActors::TlsActivationContext, NKikimrServices::KQP_COMPUTE_SCHEDULER, " Trying to remove unknown query: " << ev->Get ()->QueryId );
143+ }
141144 }
142145
143146 void Handle (NActors::TEvents::TEvWakeup::TPtr&) {
@@ -226,7 +229,7 @@ void TComputeScheduler::AddOrUpdatePool(const TString& databaseId, const TString
226229 }
227230}
228231
229- TQueryPtr TComputeScheduler::AddOrUpdateQuery (const TString & databaseId, const TString & poolId, const NHdrf::TQueryId& queryId, const NHdrf::TStaticAttributes& attrs) {
232+ TQueryPtr TComputeScheduler::AddOrUpdateQuery (const NHdrf::TDatabaseId & databaseId, const NHdrf::TPoolId & poolId, const NHdrf::TQueryId& queryId, const NHdrf::TStaticAttributes& attrs) {
230233 Y_ENSURE (!poolId.empty ());
231234
232235 TWriteGuard lock (Mutex);
@@ -248,14 +251,16 @@ TQueryPtr TComputeScheduler::AddOrUpdateQuery(const TString& databaseId, const T
248251 return query;
249252}
250253
251- void TComputeScheduler::RemoveQuery (const TQueryPtr& query) {
252- Y_ENSURE (query);
253-
254+ bool TComputeScheduler::RemoveQuery (const NHdrf::TQueryId& queryId) {
254255 TWriteGuard lock (Mutex);
255- const auto & queryId = std::get<NHdrf::TQueryId>(query->GetId ());
256256
257- Y_ENSURE (Queries.erase (queryId));
258- query->GetParent ()->RemoveQuery (queryId);
257+ if (auto queryIt = Queries.find (queryId); queryIt != Queries.end ()) {
258+ queryIt->second ->GetParent ()->RemoveQuery (queryId);
259+ Queries.erase (queryIt);
260+ return true ;
261+ }
262+
263+ return false ;
259264}
260265
261266void TComputeScheduler::UpdateFairShare () {
0 commit comments