@@ -153,8 +153,10 @@ void TColumnShardScan::HandleScan(TEvents::TEvWakeup::TPtr& /*ev*/) {
153
153
<< " txId: " << TxId << " scanId: " << ScanId << " gen: " << ScanGen << " tablet: " << TabletId);
154
154
155
155
if (TMonotonic::Now () >= GetDeadline ()) {
156
- SendScanError (" ColumnShard scanner timeout: HAS_ACK=" + ::ToString (!!AckReceivedInstant));
157
- Finish (NColumnShard::TScanCounters::EStatusFinish::Deadline);
156
+ CheckHanging (true );
157
+ LastResultInstant = TMonotonic::Now ();
158
+ // SendScanError("ColumnShard scanner timeout: HAS_ACK=" + ::ToString(!!AckReceivedInstant));
159
+ // Finish(NColumnShard::TScanCounters::EStatusFinish::Deadline);
158
160
} else {
159
161
ScheduleWakeup (GetDeadline ());
160
162
}
@@ -284,6 +286,16 @@ void TColumnShardScan::ContinueProcessing() {
284
286
}
285
287
}
286
288
}
289
+ CheckHanging ();
290
+ }
291
+
292
+ void TColumnShardScan::CheckHanging (const bool logging) const {
293
+ if (logging) {
294
+ AFL_WARN (NKikimrServices::TX_COLUMNSHARD)(" HAS_ACK" , AckReceivedInstant)(" fi" , FinishInstant)(" si" , !!ScanIterator)(
295
+ " has_more" , ChunksLimiter.HasMore ())(" in_waiting" , ScanCountersPool.InWaiting ())(" counters_waiting" , ScanCountersPool.DebugString ())(
296
+ " scan_actor_id" , ScanActorId)(" tx_id" , TxId)(" scan_id" , ScanId)(" gen" , ScanGen)(" tablet" , TabletId)(
297
+ " debug" , ScanIterator ? ScanIterator->DebugString () : Default<TString>())(" last" , LastResultInstant);
298
+ }
287
299
AFL_VERIFY (!!FinishInstant || !ScanIterator || !ChunksLimiter.HasMore () || ScanCountersPool.InWaiting ())(" scan_actor_id" , ScanActorId)(" tx_id" , TxId)(" scan_id" , ScanId)(
288
300
" gen" , ScanGen)(" tablet" , TabletId)(" debug" , ScanIterator->DebugString ())(
289
301
" counters" , ScanCountersPool.DebugString ());
0 commit comments