add diag log for chunk store read corrupt data

This commit is contained in:
obdev
2023-03-14 19:46:27 +00:00
committed by ob-robot
parent 67212153f3
commit 3f3afdb086
3 changed files with 10 additions and 3 deletions

View File

@ -40,6 +40,7 @@ void ObAdaptiveByPassCtrl::gby_process_state(int64_t probe_cnt, int64_t row_cnt,
state_ = STATE_ANALYZE;
}
} else if (STATE_ANALYZE == state_) {
probe_cnt_ += probe_cnt;
double ratio = MIN_RATIO_FOR_L3;
if (static_cast<double> (exists_cnt_) / probe_cnt_ >=
std::max(ratio, 1 - (1 / static_cast<double> (cut_ratio_)))) {
@ -62,7 +63,7 @@ void ObAdaptiveByPassCtrl::gby_process_state(int64_t probe_cnt, int64_t row_cnt,
state_ = STATE_PROCESS_HT;
}
LOG_TRACE("get new state", K(state_), K(processed_cnt_), K(exists_cnt_),
K(probe_cnt_), K(rebuild_times_), K(cut_ratio_), K(mem_size), K(op_id_));
K(probe_cnt_), K(rebuild_times_), K(cut_ratio_), K(mem_size), K(op_id_), K(row_cnt));
probe_cnt_ = 0;
exists_cnt_ = 0;
}

View File

@ -1875,9 +1875,11 @@ int ObChunkDatumStore::ChunkIterator::read_next_blk()
}
}
if (OB_SUCC(ret) && !aio_blk_->magic_check()) {
#ifndef NDEBUG
ob_abort();
#endif
ret = OB_ERR_UNEXPECTED;
LOG_WARN("read corrupt data", K(ret), K(aio_blk_->magic_),
K(store_->file_size_), K(cur_iter_pos_));
LOG_WARN("read corrupt data", K(ret), K(*aio_blk_), K(*this), K(*store_));
}
if (OB_SUCC(ret)) {
// data block is larger than min block
@ -1911,6 +1913,9 @@ int ObChunkDatumStore::ChunkIterator::read_next_blk()
read_blk_buf_ = aio_blk_buf_;
aio_blk_ = NULL;
aio_blk_buf_ = NULL;
#ifndef NDEBUG
LOG_INFO("read one block", K(*read_blk_), K(*this), K(*store_));
#endif
if (OB_FAIL(read_blk_->swizzling(NULL))) {
LOG_WARN("swizzling failed", K(ret));
} else {

View File

@ -1161,6 +1161,7 @@ int ObOperator::get_next_batch(const int64_t max_row_cnt, const ObBatchRows *&ba
// if no data in batch, end iterate immediately, otherwise wait for next iterate
brs_.end_ = !brs_.size_;
}
skipped_rows_count = brs_.skip_->accumulate_bit_cnt(brs_.size_);
op_monitor_info_.output_row_count_ += brs_.size_ - skipped_rows_count;
op_monitor_info_.skipped_rows_count_ += skipped_rows_count; // for batch
++op_monitor_info_.output_batches_; // for batch