diff options
author | gvit <gvit@ydb.tech> | 2023-10-16 17:26:09 +0300 |
---|---|---|
committer | gvit <gvit@ydb.tech> | 2023-10-16 17:49:12 +0300 |
commit | f4951205ef53c5cfceaf24eeed20c85991df56eb (patch) | |
tree | 75169d072288798eda6f9deda82b4e813888471d | |
parent | 0ee2b2d389c02d9abc4fb7c84c03cb231b76ec12 (diff) | |
download | ydb-f4951205ef53c5cfceaf24eeed20c85991df56eb.tar.gz |
catch exceptions in result channel KIKIMR-19479
-rw-r--r-- | ydb/core/kqp/executer_actor/kqp_result_channel.cpp | 28 |
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; |