file=/data/data5/doris/data/894/174258333/145400512/0200000000676127f0445a1675dccd775d9289377ba39eae_1.dat 是某张表的历史分区的数据,当执行SQL
select count(*) from abc PARTITION p20250130 where CONTENT <> ''; 时就会报一下的错误
导致be直接crash。
Doris 2.1.5版本是OK的,2.1.8.1的部分分区的数据有问题。
通过show tablet 174258333 对应的command
SHOW PROC '/dbs/22038117/157231312/partitions/157231311/157231313/157231314';
显示都是正常的。
目前可以通过把这个分区的数据写到另一个临时表中,删除有问题的分区数据,然后再写回到原有的表中,问题消失,但是有问题的分区有点多,请问出现这个问题的原因是什么,有什么办法快速修复?
/fe.warn.log:2025-08-29 16:09:41,737 WARN (thrift-server-pool-178|1933) [AbstractInsertExecutor.execImpl():157] insert [label_a11cbeb3c11b4bf9_87390a00481275b4] with query id a11cbeb3c11b4bf9-87390a00481275b4 failed, (192.xxx.xxx.xxx)[CANCELLED]failed to initialize storage reader. tablet=174258333, res=[CORRUPTION]Bad page: too small size (0), file=/data/data5/doris/data/894/174258333/145400512/0200000000676127f0445a1675dccd775d9289377ba39eae_1.dat
./fe.warn.log-
./fe.warn.log- 0# doris::segment_v2::PageIO::read_and_decompress_page_(doris::segment_v2::PageReadOptions const&, doris::segment_v2::PageHandle*, doris::Slice*, doris::segment_v2::PageFooterPB*) at /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/basic_string.h:187
./fe.warn.log- 1# doris::segment_v2::PageIO::read_and_decompress_page(doris::segment_v2::PageReadOptions const&, doris::segment_v2::PageHandle*, doris::Slice*, doris::segment_v2::PageFooterPB*) at /root/apache-doris-2.1.8.1-src/be/src/olap/rowset/segment_v2/page_io.h:129
./fe.warn.log- 2# doris::segment_v2::FileColumnIterator::_read_data_page(doris::segment_v2::OrdinalPageIndexIterator const&) at /root/apache-doris-2.1.8.1-src/be/src/olap/rowset/segment_v2/column_reader.cpp:0
./fe.warn.log- 3# doris::segment_v2::FileColumnIterator::seek_to_ordinal(unsigned long) at /root/apache-doris-2.1.8.1-src/be/src/common/status.h:494
./fe.warn.log- 4# doris::segment_v2::FileColumnIterator::read_by_rowids(unsigned int const*, unsigned long, COW::mutable_ptr&) at /root/apache-doris-2.1.8.1-src/be/src/olap/rowset/segment_v2/column_reader.cpp:0
./fe.warn.log- 5# doris::segment_v2::SegmentIterator::_read_columns_by_index(unsigned int, unsigned int&, bool) at /root/apache-doris-2.1.8.1-src/be/src/common/status.h:494
./fe.warn.log- 6# doris::segment_v2::SegmentIterator::_next_batch_internal(doris::vectorized::Block*) at /root/apache-doris-2.1.8.1-src/be/src/common/status.h:494
./fe.warn.log- 7# doris::segment_v2::SegmentIterator::next_batch(doris::vectorized::Block*) at /root/apache-doris-2.1.8.1-src/be/src/common/status.h:494
./fe.warn.log- 8# doris::segment_v2::LazyInitSegmentIterator::next_batch(doris::vectorized::Block*) at /root/apache-doris-2.1.8.1-src/be/src/olap/rowset/segment_v2/lazy_init_segment_iterator.h:45
./fe.warn.log- 15# doris::vectorized::BlockReader::_init_collect_iter(doris::TabletReader::ReaderParams const&) at /root/apache-doris-2.1.8.1-src/be/src/common/status.h:494
./fe.warn.log- 16# doris::vectorized::BlockReader::init(doris::TabletReader::ReaderParams const&) at /root/apache-doris-2.1.8.1-src/be/src/common/status.h:494
./fe.warn.log- 17# doris::vectorized::NewOlapScanner::open(doris::RuntimeState*) at /root/apache-doris-2.1.8.1-src/be/src/common/status.h:494
./fe.warn.log- 18# doris::vectorized::ScannerScheduler::_scanner_scan(std::shared_ptr, std::shared_ptr) at /root/apache-doris-2.1.8.1-src/be/src/common/status.h:380
./fe.warn.log- 19# std::_Function_handler<void (), doris::vectorized::ScannerScheduler::submit(std::shared_ptr, std::shared_ptr)::$_1::operator()() const::{lambda()#1}>::_M_invoke(std::_Any_data const&) at /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:701
./fe.warn.log- 20# doris::ThreadPool::dispatch_thread() at /root/apache-doris-2.1.8.1-src/be/src/util/threadpool.cpp:0
./fe.warn.log- 21# doris::Thread::supervise_thread(void*) at /var/local/ldb-toolchain/bin/../usr/include/pthread.h:562
./fe.warn.log- 22# start_thread
./fe.warn.log- 23# __clone