aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorivanmorozov333 <ivanmorozov@ydb.tech>2025-02-28 13:49:52 +0300
committerGitHub <noreply@github.com>2025-02-28 13:49:52 +0300
commit0db71bac9c6b70b5ca8bf8e7590c30e6cf7e6df7 (patch)
tree38c0847d484336d5fdf212bde3cf25b4124814f0
parent89703a23ada90508f81facfd5ac66daf2be2b6e5 (diff)
downloadydb-0db71bac9c6b70b5ca8bf8e7590c30e6cf7e6df7.tar.gz
prevent timeout in case empty filter scan (#14925)
-rw-r--r--ydb/core/tx/columnshard/engines/reader/actor/actor.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/ydb/core/tx/columnshard/engines/reader/actor/actor.cpp b/ydb/core/tx/columnshard/engines/reader/actor/actor.cpp
index 330b6cdfc6..cc4b07d626 100644
--- a/ydb/core/tx/columnshard/engines/reader/actor/actor.cpp
+++ b/ydb/core/tx/columnshard/engines/reader/actor/actor.cpp
@@ -10,7 +10,6 @@ namespace NKikimr::NOlap::NReader {
constexpr TDuration SCAN_HARD_TIMEOUT = TDuration::Minutes(10);
constexpr TDuration SCAN_HARD_TIMEOUT_GAP = TDuration::Seconds(5);
-
void TColumnShardScan::PassAway() {
Send(ResourceSubscribeActorId, new TEvents::TEvPoisonPill);
Send(ReadCoordinatorActorId, new TEvents::TEvPoisonPill);
@@ -192,9 +191,6 @@ bool TColumnShardScan::ProduceResults() noexcept {
std::shared_ptr<TPartialReadResult> resultOpt = resultConclusion.DetachResult();
if (!resultOpt) {
- if (!!AckReceivedInstant) {
- LastResultInstant = TMonotonic::Now();
- }
ACFL_DEBUG("stage", "no data is ready yet")("iterator", ScanIterator->DebugString());
return false;
}
@@ -260,6 +256,9 @@ void TColumnShardScan::ContinueProcessing() {
// Send new results if there is available capacity
while (ScanIterator && ProduceResults()) {
}
+ if (!!AckReceivedInstant) {
+ LastResultInstant = TMonotonic::Now();
+ }
if (ScanIterator) {
// Switch to the next range if the current one is finished
@@ -285,9 +284,9 @@ void TColumnShardScan::ContinueProcessing() {
}
}
}
- AFL_VERIFY(!!FinishInstant || !ScanIterator || !ChunksLimiter.HasMore() || ScanCountersPool.InWaiting())("scan_actor_id", ScanActorId)("tx_id", TxId)(
- "scan_id", ScanId)("gen", ScanGen)("tablet", TabletId)(
- "debug", ScanIterator->DebugString())("counters", ScanCountersPool.DebugString());
+ AFL_VERIFY(!!FinishInstant || !ScanIterator || !ChunksLimiter.HasMore() || ScanCountersPool.InWaiting())("scan_actor_id", ScanActorId)("tx_id", TxId)("scan_id", ScanId)(
+ "gen", ScanGen)("tablet", TabletId)("debug", ScanIterator->DebugString())(
+ "counters", ScanCountersPool.DebugString());
}
void TColumnShardScan::MakeResult(size_t reserveRows /*= 0*/) {