@@ -24,7 +24,7 @@ const THashSet<ui32>& TProgramContainer::GetEarlyFilterColumns() const {
2424 return Program->GetFilterColumns ();
2525}
2626
27- TConclusionStatus TProgramContainer::Init (const NArrow::NSSA::IColumnResolver& columnResolver, const NKikimrSSA::TProgram& programProto) {
27+ TConclusionStatus TProgramContainer::Init (const NArrow::NSSA::IColumnResolver& columnResolver, const NKikimrSSA::TProgram& programProto) noexcept {
2828 ProgramProto = programProto;
2929 if (IS_DEBUG_LOG_ENABLED (NKikimrServices::TX_COLUMNSHARD)) {
3030 TString out;
@@ -33,20 +33,26 @@ TConclusionStatus TProgramContainer::Init(const NArrow::NSSA::IColumnResolver& c
3333 }
3434
3535 if (programProto.HasKernels ()) {
36- KernelsRegistry.Parse (programProto.GetKernels ());
36+ try {
37+ if (!KernelsRegistry.Parse (programProto.GetKernels ())) {
38+ return TConclusionStatus::Fail (" Can't parse kernels" );
39+ }
40+ } catch (...) {
41+ AFL_ERROR (NKikimrServices::TX_COLUMNSHARD)(" event" , " program_parsed_error" )(" result" , CurrentExceptionMessage ());
42+ return TConclusionStatus::Fail (TStringBuilder () << " Can't initialize program, exception thrown: " << CurrentExceptionMessage ());
43+ }
3744 }
3845
3946 auto parseStatus = ParseProgram (columnResolver, programProto);
4047 if (parseStatus.IsFail ()) {
4148 return parseStatus;
4249 }
4350 AFL_DEBUG (NKikimrServices::TX_COLUMNSHARD)(" event" , " program_parsed" )(" result" , DebugString ());
44-
4551 return TConclusionStatus::Success ();
4652}
4753
4854TConclusionStatus TProgramContainer::Init (
49- const NArrow::NSSA::IColumnResolver& columnResolver, const NKikimrSSA::TOlapProgram& olapProgramProto) {
55+ const NArrow::NSSA::IColumnResolver& columnResolver, const NKikimrSSA::TOlapProgram& olapProgramProto) noexcept {
5056 NKikimrSSA::TProgram programProto;
5157 if (!programProto.ParseFromString (olapProgramProto.GetProgram ())) {
5258 return TConclusionStatus::Fail (" Can't parse TProgram protobuf" );
@@ -76,7 +82,7 @@ TConclusionStatus TProgramContainer::Init(
7682}
7783
7884TConclusionStatus TProgramContainer::Init (
79- const NArrow::NSSA::IColumnResolver& columnResolver, NKikimrSchemeOp::EOlapProgramType programType, TString serializedProgram) {
85+ const NArrow::NSSA::IColumnResolver& columnResolver, NKikimrSchemeOp::EOlapProgramType programType, TString serializedProgram) noexcept {
8086 Y_ABORT_UNLESS (serializedProgram);
8187 Y_ABORT_UNLESS (!OverrideProcessingColumnsVector);
8288
0 commit comments