aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgvit <gvit@ydb.tech>2023-10-16 17:26:09 +0300
committergvit <gvit@ydb.tech>2023-10-16 17:49:12 +0300
commitf4951205ef53c5cfceaf24eeed20c85991df56eb (patch)
tree75169d072288798eda6f9deda82b4e813888471d
parent0ee2b2d389c02d9abc4fb7c84c03cb231b76ec12 (diff)
downloadydb-f4951205ef53c5cfceaf24eeed20c85991df56eb.tar.gz
catch exceptions in result channel KIKIMR-19479
-rw-r--r--ydb/core/kqp/executer_actor/kqp_result_channel.cpp28
1 files changed, 19 insertions, 9 deletions
diff --git a/ydb/core/kqp/executer_actor/kqp_result_channel.cpp b/ydb/core/kqp/executer_actor/kqp_result_channel.cpp
index a300f8c7f7a..6259442b620 100644
--- a/ydb/core/kqp/executer_actor/kqp_result_channel.cpp
+++ b/ydb/core/kqp/executer_actor/kqp_result_channel.cpp
@@ -45,14 +45,18 @@ protected:
private:
STATEFN(WorkState) {
- switch (ev->GetTypeRewrite()) {
- hFunc(NYql::NDq::TEvDqCompute::TEvChannelData, HandleWork);
- hFunc(TEvKqpExecuter::TEvStreamDataAck, HandleWork);
- hFunc(TEvents::TEvPoison, HandlePoison);
- default: {
- InternalError(TStringBuilder() << "TxId: " << TxId << ", channelId: " << ChannelId
- << "Handle unexpected event " << ev->GetTypeRewrite());
+ try {
+ switch (ev->GetTypeRewrite()) {
+ hFunc(NYql::NDq::TEvDqCompute::TEvChannelData, HandleWork);
+ hFunc(TEvKqpExecuter::TEvStreamDataAck, HandleWork);
+ hFunc(TEvents::TEvPoison, HandlePoison);
+ default: {
+ InternalError(TStringBuilder() << "TxId: " << TxId << ", channelId: " << ChannelId
+ << "Handle unexpected event " << ev->GetTypeRewrite());
+ }
}
+ } catch (const yexception& ex) {
+ InternalError(ex.what());
}
}
@@ -115,8 +119,13 @@ private:
private:
STATEFN(DeadState) {
- switch (ev->GetTypeRewrite()) {
- hFunc(TEvents::TEvPoison, HandlePoison);
+ try {
+ switch (ev->GetTypeRewrite()) {
+ hFunc(TEvents::TEvPoison, HandlePoison);
+ }
+
+ } catch(const yexception& ex) {
+ InternalError(ex.what());
}
}
@@ -170,6 +179,7 @@ private:
Send(Target, streamEv.Release());
}
+
private:
const TVector<ui32>* ColumnOrder;
NKikimr::NMiniKQL::TType* ItemType;