|
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