aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorivanmorozov333 <ivanmorozov@ydb.tech>2025-03-05 18:52:48 +0300
committerGitHub <noreply@github.com>2025-03-05 18:52:48 +0300
commitafb7274af78e1095cf4db704449e84c95d4711ae (patch)
tree11a6d10f5cb71119178299c2bb49639347094301
parent936fa8ad490b77b7c4f772f293a4960349f30fd2 (diff)
downloadydb-afb7274af78e1095cf4db704449e84c95d4711ae.tar.gz
additional deadline checkers and info (#15239)
-rw-r--r--ydb/core/tx/columnshard/engines/reader/actor/actor.cpp16
-rw-r--r--ydb/core/tx/columnshard/engines/reader/actor/actor.h5
2 files changed, 17 insertions, 4 deletions
diff --git a/ydb/core/tx/columnshard/engines/reader/actor/actor.cpp b/ydb/core/tx/columnshard/engines/reader/actor/actor.cpp
index cc4b07d626..dad620ee36 100644
--- a/ydb/core/tx/columnshard/engines/reader/actor/actor.cpp
+++ b/ydb/core/tx/columnshard/engines/reader/actor/actor.cpp
@@ -153,8 +153,10 @@ void TColumnShardScan::HandleScan(TEvents::TEvWakeup::TPtr& /*ev*/) {
<< " txId: " << TxId << " scanId: " << ScanId << " gen: " << ScanGen << " tablet: " << TabletId);
if (TMonotonic::Now() >= GetDeadline()) {
- SendScanError("ColumnShard scanner timeout: HAS_ACK=" + ::ToString(!!AckReceivedInstant));
- Finish(NColumnShard::TScanCounters::EStatusFinish::Deadline);
+ CheckHanging(true);
+ LastResultInstant = TMonotonic::Now();
+ // SendScanError("ColumnShard scanner timeout: HAS_ACK=" + ::ToString(!!AckReceivedInstant));
+ // Finish(NColumnShard::TScanCounters::EStatusFinish::Deadline);
} else {
ScheduleWakeup(GetDeadline());
}
@@ -284,6 +286,16 @@ void TColumnShardScan::ContinueProcessing() {
}
}
}
+ CheckHanging();
+}
+
+void TColumnShardScan::CheckHanging(const bool logging) const {
+ if (logging) {
+ AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("HAS_ACK", AckReceivedInstant)("fi", FinishInstant)("si", !!ScanIterator)(
+ "has_more", ChunksLimiter.HasMore())("in_waiting", ScanCountersPool.InWaiting())("counters_waiting", ScanCountersPool.DebugString())(
+ "scan_actor_id", ScanActorId)("tx_id", TxId)("scan_id", ScanId)("gen", ScanGen)("tablet", TabletId)(
+ "debug", ScanIterator ? ScanIterator->DebugString() : Default<TString>())("last", LastResultInstant);
+ }
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());
diff --git a/ydb/core/tx/columnshard/engines/reader/actor/actor.h b/ydb/core/tx/columnshard/engines/reader/actor/actor.h
index caaa5524b0..929987806d 100644
--- a/ydb/core/tx/columnshard/engines/reader/actor/actor.h
+++ b/ydb/core/tx/columnshard/engines/reader/actor/actor.h
@@ -47,8 +47,8 @@ public:
private:
STATEFN(StateScan) {
auto g = Stats->MakeGuard("processing");
- TLogContextGuard gLogging(NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD_SCAN) ("SelfId", SelfId())(
- "TabletId", TabletId)("ScanId", ScanId)("TxId", TxId)("ScanGen", ScanGen)("task_identifier", ReadMetadataRange->GetScanIdentifier()));
+ TLogContextGuard gLogging(NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD_SCAN) ("SelfId", SelfId())("TabletId",
+ TabletId)("ScanId", ScanId)("TxId", TxId)("ScanGen", ScanGen)("task_identifier", ReadMetadataRange->GetScanIdentifier()));
switch (ev->GetTypeRewrite()) {
hFunc(NKqp::TEvKqpCompute::TEvScanDataAck, HandleScan);
hFunc(NKqp::TEvKqp::TEvAbortExecution, HandleScan);
@@ -78,6 +78,7 @@ private:
void HandleScan(TEvents::TEvWakeup::TPtr& /*ev*/);
private:
+ void CheckHanging(const bool logging = false) const;
void MakeResult(size_t reserveRows = 0);
void AddRow(const TConstArrayRef<TCell>& row) override;