From 655faf2bd2dd41aa89465b390df6cd280263ea87 Mon Sep 17 00:00:00 2001 From: Bulat Gayazov Date: Thu, 23 Jan 2025 13:33:02 +0000 Subject: [PATCH] Transfer C++ SDK segfault fix to SDK V3 --- ydb/public/sdk/cpp/src/client/table/table.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ydb/public/sdk/cpp/src/client/table/table.cpp b/ydb/public/sdk/cpp/src/client/table/table.cpp index b9983c84a49c..378c0a954395 100644 --- a/ydb/public/sdk/cpp/src/client/table/table.cpp +++ b/ydb/public/sdk/cpp/src/client/table/table.cpp @@ -1365,13 +1365,15 @@ TScanQueryPartIterator::TScanQueryPartIterator( {} TAsyncScanQueryPart TScanQueryPartIterator::ReadNext() { - if (ReaderImpl_->IsFinished()) + if (!ReaderImpl_ || ReaderImpl_->IsFinished()) { + if (!IsSuccess()) + RaiseError(TStringBuilder() << "Attempt to perform read on an unsuccessful result " + << GetIssues().ToString()); RaiseError("Attempt to perform read on invalid or finished stream"); + } return ReaderImpl_->ReadNext(ReaderImpl_); } - - static bool IsSessionStatusRetriable(const TCreateSessionResult& res) { switch (res.GetStatus()) { case EStatus::OVERLOADED: