summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoralexnick <[email protected]>2022-04-08 15:41:37 +0300
committeralexnick <[email protected]>2022-04-08 15:41:37 +0300
commit330b5b45d1b510c041ca86a3b9ff4c7d8b50e745 (patch)
tree3d278ac2bdf1321d8db30b787835c2d46344104f
parent1cef2c035e2514f5d8790fe7d01ef0f651bac037 (diff)
fix for empty messages
Note: mandatory check (NEED_CHECK) was skipped ref:395247f25c483c5957b7794173d40078cdb87d22
-rw-r--r--ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session.cpp b/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session.cpp
index 38d3b3a2f42..a3a0a2132b0 100644
--- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session.cpp
+++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session.cpp
@@ -1398,7 +1398,9 @@ void TSingleClusterReadSessionImpl::OnDataDecompressed(i64 sourceSize, i64 estim
CompressedDataSize -= sourceSize;
DecompressedDataSize += decompressedSize - estimatedDecompressedSize;
constexpr double weight = 0.6;
- AverageCompressionRatio = weight * static_cast<double>(decompressedSize) / static_cast<double>(sourceSize) + (1 - weight) * AverageCompressionRatio;
+ if (sourceSize > 0) {
+ AverageCompressionRatio = weight * static_cast<double>(decompressedSize) / static_cast<double>(sourceSize) + (1 - weight) * AverageCompressionRatio;
+ }
if (Aborting) {
return;
}
@@ -2055,6 +2057,9 @@ i64 TDataDecompressionInfo::StartDecompressionTasks(const IExecutor::TPtr& execu
const i64 size = static_cast<i64>(messageData.data().size());
const i64 estimatedDecompressedSize =
messageData.uncompressed_size() ? static_cast<i64>(messageData.uncompressed_size()) : static_cast<i64>(size * averageCompressionRatio);
+
+ Y_VERIFY(estimatedDecompressedSize >= 0);
+
task.Add(CurrentDecompressingMessage.first, CurrentDecompressingMessage.second, size, estimatedDecompressedSize);
used += estimatedDecompressedSize;
availableMemory -= estimatedDecompressedSize;