kaijchen opened a new pull request, #21619: URL: https://github.com/apache/doris/pull/21619
## Proposed changes `BetaRowsetWriter::flush_single_block()` was called in `calc_segment_delete_bitmap()`, we should not call generate_delete_bitmap and segment compaction in that case. Move calls to `_generate_delete_bitmap()` and `_segcompaction_if_necessary()` from `flush_single_block()` to `flush_memtable()`. `unfold_variant_column_and_flush_block()` is renamed to `flush_memtable()` to reflect the changes. Fix the following core: ``` * Current BE git commitID: bb985cd9a1 *** * SIGSEGV address not mapped to object (@0x10) received by PID 2493 (TID 3377 OR 0x7fd971de8700) from PID 16; stack trace: *** 0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t*, void*) at /mnt/disk1/caoliang/doris/master/doris/be/src/common/signal_handler.h:413 1# os::Linux::chained_handler(int, siginfo*, void*) in /root/jdk1.8.0_331/jre/lib/amd64/server/libjvm.so 2# JVM_handle_linux_signal in /root/jdk1.8.0_331/jre/lib/amd64/server/libjvm.so 3# signalHandler(int, siginfo*, void*) in /root/jdk1.8.0_331/jre/lib/amd64/server/libjvm.so 4# 0x00007FDB73A27400 in /lib64/libc.so.6 5# doris::BetaRowsetWriter::_generate_delete_bitmap(int) at /mnt/disk1/caoliang/doris/master/doris/be/src/olap/rowset/beta_rowset_writer.cpp:162 6# doris::BetaRowsetWriter::flush_single_block(doris::vectorized::Block const*, long*, doris::FlushContext const*) at /mnt/disk1/caoliang/doris/master/doris/be/src/olap/rowset/beta_rowset_writer.cpp:556 7# doris::Tablet::calc_segment_delete_bitmap(std::shared_ptr<doris::Rowset>, std::shared_ptr<doris::segment_v2::Segment> const&, std::vector<std::shared_ptr<doris::Rowset>, std::allocator<std::shared_ptr<doris::Rowset> > > const&, std::shared_ptr<doris::DeleteBitmap>, long, doris::RowsetWriter*) in /data/output/be/lib/doris_be 8# doris::Tablet::calc_delete_bitmap(std::shared_ptr<doris::Rowset>, std::vector<std::shared_ptr<doris::segment_v2::Segment>, std::allocator<std::shared_ptr<doris::segment_v2::Segment> > > const&, std::vector<std::shared_ptr<doris::Rowset>, std::allocator<std::shared_ptr<doris::Rowset> > > const&, std::shared_ptr<doris::DeleteBitmap>, long, doris::RowsetWriter*) at /mnt/disk1/caoliang/doris/master/doris/be/src/olap/tablet.cpp:3003 9# doris::Tablet::commit_phase_update_delete_bitmap(std::shared_ptr<doris::Rowset> const&, std::unordered_set<doris::RowsetId, doris::HashOfRowsetId, std::equal_to<doris::RowsetId>, std::allocator<doris::RowsetId> >&, std::shared_ptr<doris::DeleteBitmap>, std::vector<std::shared_ptr<doris::segment_v2::Segment>, std::allocator<std::shared_ptr<doris::segment_v2::Segment> > > const&, long, doris::RowsetWriter*) at /mnt/disk1/caoliang/doris/master/doris/be/src/olap/tablet.cpp:3233 10# doris::DeltaWriter::close_wait(doris::PSlaveTabletNodes const&, bool) at /mnt/disk1/caoliang/doris/master/doris/be/src/olap/delta_writer.cpp:439 ``` ## Further comments If this is a relatively large or complex change, kick off the discussion at [d...@doris.apache.org](mailto:d...@doris.apache.org) by explaining why you chose the solution you did and what alternatives you considered, etc... -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org