|
12 | 12 | #include <ydb/core/scheme/scheme_types_proto.h> |
13 | 13 | #include <ydb/core/engine/mkql_proto.h> |
14 | 14 |
|
| 15 | +#include <ydb/library/yql/core/issue/yql_issue.h> |
| 16 | +#include <ydb/library/yql/core/issue/protos/issue_id.pb.h> |
15 | 17 | #include <ydb/library/yql/public/issue/yql_issue_message.h> |
16 | 18 | #include <ydb/library/yql/public/issue/yql_issue_manager.h> |
17 | 19 |
|
@@ -854,6 +856,16 @@ class TReadTableWorker : public TActorBootstrapped<TReadTableWorker> { |
854 | 856 | ++TabletsToPrepare; |
855 | 857 | } |
856 | 858 |
|
| 859 | + void RaiseShardOverloaded(const NKikimrTxDataShard::TEvProposeTransactionResult& record, ui64 shardId) { |
| 860 | + auto issue = NYql::YqlIssue({}, NYql::TIssuesIds::KIKIMR_OVERLOADED, TStringBuilder() |
| 861 | + << "Shard " << shardId << " is overloaded"); |
| 862 | + for (const auto& err : record.GetError()) { |
| 863 | + issue.AddSubIssue(new NYql::TIssue(TStringBuilder() |
| 864 | + << "[" << err.GetKind() << "] " << err.GetReason())); |
| 865 | + } |
| 866 | + IssueManager.RaiseIssue(std::move(issue)); |
| 867 | + } |
| 868 | + |
857 | 869 | void HandlePrepare(TEvDataShard::TEvProposeTransactionResult::TPtr& ev, const TActorContext& ctx) { |
858 | 870 | const auto* msg = ev->Get(); |
859 | 871 | const auto& record = msg->Record; |
@@ -974,6 +986,7 @@ class TReadTableWorker : public TActorBootstrapped<TReadTableWorker> { |
974 | 986 | TxProxyMon->TxResultShardOverloaded->Inc(); |
975 | 987 | status = TEvTxUserProxy::TEvProposeTransactionStatus::EStatus::ProxyShardOverloaded; |
976 | 988 | code = NKikimrIssues::TStatusIds::OVERLOADED; |
| 989 | + RaiseShardOverloaded(record, shardId); |
977 | 990 | break; |
978 | 991 | case NKikimrTxDataShard::TEvProposeTransactionResult::EXEC_ERROR: |
979 | 992 | TxProxyMon->TxResultExecError->Inc(); |
@@ -1940,6 +1953,7 @@ class TReadTableWorker : public TActorBootstrapped<TReadTableWorker> { |
1940 | 1953 |
|
1941 | 1954 | status = TEvTxUserProxy::TEvProposeTransactionStatus::EStatus::ProxyShardOverloaded; |
1942 | 1955 | code = NKikimrIssues::TStatusIds::OVERLOADED; |
| 1956 | + RaiseShardOverloaded(record, state.ShardId); |
1943 | 1957 | break; |
1944 | 1958 |
|
1945 | 1959 | case NKikimrTxDataShard::TEvProposeTransactionResult::EXEC_ERROR: |
|
0 commit comments