diff options
| author | ssmike <[email protected]> | 2023-10-02 22:01:05 +0300 |
|---|---|---|
| committer | ssmike <[email protected]> | 2023-10-02 22:18:30 +0300 |
| commit | 40783f3773f9836f0e4d6dd71b30c65b56057dc9 (patch) | |
| tree | 11a388af0645ef343d75490157f193ceb226724b | |
| parent | ac1a9b5274c4b005819494ebfa90ac5d6aad913a (diff) | |
Fix issue codes
| -rw-r--r-- | ydb/core/kqp/runtime/kqp_read_actor.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/ydb/core/kqp/runtime/kqp_read_actor.cpp b/ydb/core/kqp/runtime/kqp_read_actor.cpp index 0f330211aee..b00a5e64bf9 100644 --- a/ydb/core/kqp/runtime/kqp_read_actor.cpp +++ b/ydb/core/kqp/runtime/kqp_read_actor.cpp @@ -620,15 +620,20 @@ public: if (partition.ShardId == state->TabletId) { // we re-resolved the same shard NYql::TIssues issues; + Ydb::Issue::IssueMessage lastIssue; for (auto& issue : state->Issues) { - issues.AddIssue(issue.message()); + // avoid add duplicate messages + if (lastIssue.message() != issue.message() || lastIssue.issue_code() != issue.issue_code()) { + issues.AddIssue(issue.message()); + } + lastIssue = issue; } - RuntimeError(TStringBuilder() << "Too many retries for shard " << state->TabletId, NDqProto::StatusIds::StatusIds::INTERNAL_ERROR, issues); + RuntimeError(TStringBuilder() << "Too many retries for shard " << state->TabletId, NDqProto::StatusIds::StatusIds::UNAVAILABLE, issues); PendingShards.PushBack(state.Release()); return; } } else if (!Snapshot.IsValid()) { - return RuntimeError("inconsistent reads after shards split", NDqProto::StatusIds::INTERNAL_ERROR); + return RuntimeError("inconsistent reads after shards split", NDqProto::StatusIds::UNAVAILABLE); } if (keyDesc->GetPartitions().empty()) { |
