Skip to content

Commit d2f7432

Browse files
authored
Fix error handling in inferring code (#15032)
1 parent 00996cd commit d2f7432

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

ydb/core/external_sources/object_storage/inference/arrow_fetcher.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,9 @@ class TArrowFileFetcher : public NActors::TActorBootstrapped<TArrowFileFetcher>
106106
case EFileFormat::CsvWithNames:
107107
case EFileFormat::TsvWithNames: {
108108
file = CleanupCsvFile(data, request, std::dynamic_pointer_cast<CsvConfig>(Config_)->ParseOpts, ctx);
109+
if (!file) {
110+
return;
111+
}
109112
ctx.Send(request.Requester, new TEvArrowFile(Config_, std::move(file), request.Path));
110113
break;
111114
}
@@ -115,12 +118,18 @@ class TArrowFileFetcher : public NActors::TActorBootstrapped<TArrowFileFetcher>
115118
return;
116119
}
117120
file = BuildParquetFileFromMetadata(data, request, ctx);
121+
if (!file) {
122+
return;
123+
}
118124
ctx.Send(request.Requester, new TEvArrowFile(Config_, std::move(file), request.Path));
119125
break;
120126
}
121127
case EFileFormat::JsonEachRow:
122128
case EFileFormat::JsonList: {
123129
file = CleanupJsonFile(data, request, std::dynamic_pointer_cast<JsonConfig>(Config_)->ParseOpts, ctx);
130+
if (!file) {
131+
return;
132+
}
124133
ctx.Send(request.Requester, new TEvArrowFile(Config_, std::move(file), request.Path));
125134
break;
126135
}
@@ -232,6 +241,9 @@ class TArrowFileFetcher : public NActors::TActorBootstrapped<TArrowFileFetcher>
232241
auto chunker = arrow::csv::MakeChunker(options);
233242
std::shared_ptr<arrow::Buffer> whole, partial;
234243
auto arrowData = BuildBufferFromData(data, request, ctx);
244+
if (!arrowData) {
245+
return nullptr;
246+
}
235247
auto status = chunker->Process(arrowData, &whole, &partial);
236248

237249
if (!status.ok()) {
@@ -273,13 +285,19 @@ class TArrowFileFetcher : public NActors::TActorBootstrapped<TArrowFileFetcher>
273285

274286
std::shared_ptr<arrow::io::RandomAccessFile> BuildParquetFileFromMetadata(const TString& data, const TRequest& request, const NActors::TActorContext& ctx) {
275287
auto arrowData = BuildBufferFromData(data, request, ctx);
288+
if (!arrowData) {
289+
return nullptr;
290+
}
276291
return std::make_shared<arrow::io::BufferReader>(std::move(arrowData));
277292
}
278293

279294
std::shared_ptr<arrow::io::RandomAccessFile> CleanupJsonFile(const TString& data, const TRequest& request, const arrow::json::ParseOptions& options, const NActors::TActorContext& ctx) {
280295
auto chunker = arrow::json::MakeChunker(options);
281296
std::shared_ptr<arrow::Buffer> whole, partial;
282297
auto arrowData = BuildBufferFromData(data, request, ctx);
298+
if (!arrowData) {
299+
return nullptr;
300+
}
283301

284302
if (Config_->Format == EFileFormat::JsonList) {
285303
auto empty = std::make_shared<arrow::Buffer>(nullptr, 0);

0 commit comments

Comments
 (0)