summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorivanmorozov <[email protected]>2023-10-10 08:12:21 +0300
committerivanmorozov <[email protected]>2023-10-10 08:31:35 +0300
commit98b04d640fe173e8cd13f362753591aee0d68f7d (patch)
treef2356f94ae4485d9aa04676644bc6557a519ed60
parentf2eae3991144dd8f5f94d26dc042aa5566e873b0 (diff)
KIKIMR-19215: process error in case many retries TEvScanError
-rw-r--r--ydb/core/kqp/compute_actor/kqp_scan_fetcher_actor.cpp8
1 files changed, 7 insertions, 1 deletions
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 07eb0cf8875..d92a50f04ce 100644
--- a/ydb/core/kqp/compute_actor/kqp_scan_fetcher_actor.cpp
+++ b/ydb/core/kqp/compute_actor/kqp_scan_fetcher_actor.cpp
@@ -193,7 +193,6 @@ void TKqpScanFetcherActor::HandleExecute(TEvKqpCompute::TEvScanError::TPtr& ev)
YQL_ENSURE(state->Generation == msg.GetGeneration());
-
if (state->State == EShardState::Starting) {
if (FindSchemeErrorInIssues(status, issues)) {
return EnqueueResolveShard(state);
@@ -208,6 +207,13 @@ void TKqpScanFetcherActor::HandleExecute(TEvKqpCompute::TEvScanError::TPtr& ev)
InFlightShards.ClearAckState(state);
state->ResetRetry();
++TotalRetries;
+ if (state->TotalRetries >= MAX_SHARD_RETRIES || TotalRetries >= MAX_TOTAL_SHARD_RETRIES) {
+ CA_LOG_E("TKqpScanFetcherActor: broken tablet for this request " << state->TabletId
+ << ", retries limit exceeded (" << state->TotalRetries << "/" << TotalRetries << ")");
+ SendGlobalFail(NDqProto::COMPUTE_STATE_FAILURE, YdbStatusToDqStatus(status), issues);
+ return PassAway();
+ }
+
return StartReadShard(state);
}
}