diff --git a/ydb/core/kqp/compute_actor/kqp_scan_compute_manager.h b/ydb/core/kqp/compute_actor/kqp_scan_compute_manager.h index 9bedbbe310af..67b7ff64beee 100644 --- a/ydb/core/kqp/compute_actor/kqp_scan_compute_manager.h +++ b/ydb/core/kqp/compute_actor/kqp_scan_compute_manager.h @@ -72,6 +72,10 @@ class TShardScannerInfo { new TEvPipeCache::TEvForward(ev.release(), TabletId, !subscribed), IEventHandle::FlagTrackDelivery); } + ui64 GetTabletId() const { + return TabletId; + } + TString ToString() const { TStringBuilder builder; diff --git a/ydb/core/kqp/compute_actor/kqp_scan_fetcher_actor.cpp b/ydb/core/kqp/compute_actor/kqp_scan_fetcher_actor.cpp index 8faead8aa320..cf14110184d6 100644 --- a/ydb/core/kqp/compute_actor/kqp_scan_fetcher_actor.cpp +++ b/ydb/core/kqp/compute_actor/kqp_scan_fetcher_actor.cpp @@ -373,11 +373,11 @@ void TKqpScanFetcherActor::HandleExecute(TEvents::TEvUndelivered::TPtr& ev) { case TEvKqpCompute::TEvScanDataAck::EventType: { auto info = InFlightShards.GetShardScanner(ev->Cookie); if (!!info) { - TStringBuilder builder; - builder << "Delivery problem: EvScanDataAck lost, NodeId: " - << SelfId().NodeId() << ", Details: " << info->ToString() << "."; - - SendGlobalFail(NDqProto::StatusIds::UNAVAILABLE, TIssuesIds::DEFAULT_ERROR, TString(builder)); + auto state = InFlightShards.GetShardStateVerified(info->GetTabletId()); + AFL_WARN(NKikimrServices::KQP_COMPUTE)("event", "TEvents::TEvUndelivered")("from_tablet", info->GetTabletId()) + ("state", state->State)("details", info->ToString())("node", SelfId().NodeId()); + AFL_VERIFY(state->State == EShardState::Running)("state", state->State); + RetryDeliveryProblem(state); } return; }