summaryrefslogtreecommitdiffstats
path: root/yt/cpp/mapreduce/io/skiff_row_table_reader.cpp
diff options
context:
space:
mode:
authorSavchenko Nadezhda <[email protected]>2024-04-18 10:57:19 +0200
committerGitHub <[email protected]>2024-04-18 11:57:19 +0300
commitb65fd71bd2a02aca196f47954fa03ac9aa94b8a0 (patch)
treebc8f88414f9a6648318388dca5b6a28ec36f8658 /yt/cpp/mapreduce/io/skiff_row_table_reader.cpp
parenta1bcf08e286611efa4a394a53c894ebb954acd93 (diff)
Don't ignore backoff and pass actual exception in Retry() (#3664)
Diffstat (limited to 'yt/cpp/mapreduce/io/skiff_row_table_reader.cpp')
-rw-r--r--yt/cpp/mapreduce/io/skiff_row_table_reader.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/yt/cpp/mapreduce/io/skiff_row_table_reader.cpp b/yt/cpp/mapreduce/io/skiff_row_table_reader.cpp
index c0004564bf2..3f7769a7e11 100644
--- a/yt/cpp/mapreduce/io/skiff_row_table_reader.cpp
+++ b/yt/cpp/mapreduce/io/skiff_row_table_reader.cpp
@@ -29,9 +29,9 @@ TSkiffRowTableReader::TSkiffRowTableReader(
TSkiffRowTableReader::~TSkiffRowTableReader()
{ }
-bool TSkiffRowTableReader::Retry()
+bool TSkiffRowTableReader::Retry(const std::exception_ptr& error)
{
- if (PrepareRetry()) {
+ if (PrepareRetry(error)) {
RowTaken_ = true;
Next();
return true;
@@ -39,9 +39,9 @@ bool TSkiffRowTableReader::Retry()
return false;
}
-bool TSkiffRowTableReader::PrepareRetry()
+bool TSkiffRowTableReader::PrepareRetry(const std::exception_ptr& error)
{
- if (Input_.Retry(RangeIndex_, RowIndex_)) {
+ if (Input_.Retry(RangeIndex_, RowIndex_, error)) {
if (RangeIndex_) {
RangeIndexShift_ += *RangeIndex_;
}
@@ -69,7 +69,7 @@ void TSkiffRowTableReader::ReadRow(const ISkiffRowParserPtr& parser)
} catch (const std::exception& ex) {
YT_LOG_ERROR("Read error during parsing: %v", ex.what());
- if (!Retry()) {
+ if (!Retry(std::make_exception_ptr(ex))) {
throw;
}
}
@@ -92,7 +92,7 @@ void TSkiffRowTableReader::SkipRow()
} catch (const std::exception& ex) {
YT_LOG_ERROR("Read error during skipping row: %v", ex.what());
- if (!Retry()) {
+ if (!Retry(std::make_exception_ptr(ex))) {
throw;
}
}
@@ -173,7 +173,7 @@ void TSkiffRowTableReader::Next()
} catch (const std::exception& ex) {
YT_LOG_ERROR("Read error: %v", ex.what());
- if (!PrepareRetry()) {
+ if (!PrepareRetry(std::make_exception_ptr(ex))) {
throw;
}
}