@@ -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&) {
@@ -230,7 +233,7 @@ void TComputeScheduler::AddOrUpdatePool(const TString& databaseId, const TString
230233 }
231234}
232235
233- TQueryPtr TComputeScheduler::AddOrUpdateQuery (const TString & databaseId, const TString & poolId, const NHdrf::TQueryId& queryId, const NHdrf::TStaticAttributes& attrs) {
236+ TQueryPtr TComputeScheduler::AddOrUpdateQuery (const NHdrf::TDatabaseId & databaseId, const NHdrf::TPoolId & poolId, const NHdrf::TQueryId& queryId, const NHdrf::TStaticAttributes& attrs) {
234237 Y_ENSURE (!poolId.empty ());
235238
236239 TWriteGuard lock (Mutex);
@@ -253,14 +256,16 @@ TQueryPtr TComputeScheduler::AddOrUpdateQuery(const TString& databaseId, const T
253256 return query;
254257}
255258
256- void TComputeScheduler::RemoveQuery (const TQueryPtr& query) {
257- Y_ENSURE (query);
258-
259+ bool TComputeScheduler::RemoveQuery (const NHdrf::TQueryId& queryId) {
259260 TWriteGuard lock (Mutex);
260- const auto & queryId = std::get<NHdrf::TQueryId>(query->GetId ());
261261
262- Y_ENSURE (Queries.erase (queryId));
263- query->GetParent ()->RemoveQuery (queryId);
262+ if (auto queryIt = Queries.find (queryId); queryIt != Queries.end ()) {
263+ queryIt->second ->GetParent ()->RemoveQuery (queryId);
264+ Queries.erase (queryIt);
265+ return true ;
266+ }
267+
268+ return false ;
264269}
265270
266271void TComputeScheduler::UpdateFairShare (bool allowFairShareOverlimit) {
0 commit comments