You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by GitBox <gi...@apache.org> on 2021/07/23 11:30:31 UTC

[GitHub] [incubator-doris] weizuo93 opened a new issue #6316: [Bug] BE coredump when flushing memtable

weizuo93 opened a new issue #6316:
URL: https://github.com/apache/incubator-doris/issues/6316


   If the size of memtable is greater than max segment size and the memtable will flush more than one segment file. BE coredump will be triggered when flushing memtable. The stack is as follow:
   ```
   (gdb) bt
   #0  0x0000000001ab11ca in std::vector<std::unique_ptr<doris::segment_v2::ColumnWriter, std::default_delete<doris::segment_v2::ColumnWriter> >, std::allocator<std::unique_ptr<doris::segment_v2::ColumnWriter, std::default_delete<doris::segment_v2::ColumnWriter> > > >::size (this=0xa0) at /opt/rh/devtoolset-10/root/usr/include/c++/10/bits/stl_vector.h:918
   #1  doris::segment_v2::SegmentWriter::append_row<doris::ContiguousRow> (this=0x0, row=...) at ../src/olap/rowset/segment_v2/segment_writer.cpp:103
   #2  0x0000000001383f0a in doris::BetaRowsetWriter::flush_single_memtable (this=0x90d4140, memtable=<optimized out>, flush_size=0x9db9c18) at /opt/rh/devtoolset-10/root/usr/include/c++/10/bits/unique_ptr.h:421
   #3  0x0000000001328154 in doris::MemTable::flush (this=0x9db9b00) at ../src/util/stopwatch.hpp:66
   #4  0x00000000012aaa1e in doris::FlushToken::_flush_memtable (this=0x8eff860, memtable=...) at /opt/rh/devtoolset-10/root/usr/include/c++/10/bits/shared_ptr_base.h:1324
   #5  0x00000000012ab2b1 in std::__invoke_impl<void, void (doris::FlushToken::*&)(std::shared_ptr<doris::MemTable>), doris::FlushToken*&, std::shared_ptr<doris::MemTable>&> (__f=<optimized out>, 
       __t=<optimized out>, __f=<optimized out>, __t=<optimized out>) at /opt/rh/devtoolset-10/root/usr/include/c++/10/ext/atomicity.h:100
   #6  std::__invoke<void (doris::FlushToken::*&)(std::shared_ptr<doris::MemTable>), doris::FlushToken*&, std::shared_ptr<doris::MemTable>&> (__fn=<optimized out>)
       at /opt/rh/devtoolset-10/root/usr/include/c++/10/bits/invoke.h:95
   #7  std::_Bind<void (doris::FlushToken::*(doris::FlushToken*, std::shared_ptr<doris::MemTable>))(std::shared_ptr<doris::MemTable>)>::__call<void, , 0ul, 1ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul>) (
       __args=..., this=<optimized out>) at /opt/rh/devtoolset-10/root/usr/include/c++/10/functional:416
   #8  std::_Bind<void (doris::FlushToken::*(doris::FlushToken*, std::shared_ptr<doris::MemTable>))(std::shared_ptr<doris::MemTable>)>::operator()<, void>() (this=<optimized out>)
       at /opt/rh/devtoolset-10/root/usr/include/c++/10/functional:499
   #9  std::__invoke_impl<void, std::_Bind<void (doris::FlushToken::*(doris::FlushToken*, std::shared_ptr<doris::MemTable>))(std::shared_ptr<doris::MemTable>)>&>(std::__invoke_other, std::_Bind<void (doris::FlushToken::*(doris::FlushToken*, std::shared_ptr<doris::MemTable>))(std::shared_ptr<doris::MemTable>)>&) (__f=...) at /opt/rh/devtoolset-10/root/usr/include/c++/10/bits/invoke.h:60
   #10 std::__invoke_r<void, std::_Bind<void (doris::FlushToken::*(doris::FlushToken*, std::shared_ptr<doris::MemTable>))(std::shared_ptr<doris::MemTable>)>&>(std::_Bind<void (doris::FlushToken::*(doris::FlushToken*, std::shared_ptr<doris::MemTable>))(std::shared_ptr<doris::MemTable>)>&) (__fn=...) at /opt/rh/devtoolset-10/root/usr/include/c++/10/bits/invoke.h:110
   #11 std::_Function_handler<void (), std::_Bind<void (doris::FlushToken::*(doris::FlushToken*, std::shared_ptr<doris::MemTable>))(std::shared_ptr<doris::MemTable>)> >::_M_invoke(std::_Any_data const&) (
       __functor=...) at /opt/rh/devtoolset-10/root/usr/include/c++/10/bits/std_function.h:291
   #12 0x0000000001579f56 in std::function<void ()>::operator()() const (this=0x913fd18) at /opt/rh/devtoolset-10/root/usr/include/c++/10/bits/std_function.h:617
   #13 doris::FunctionRunnable::run (this=0x913fd10) at ../src/util/threadpool.cpp:42
   #14 doris::ThreadPool::dispatch_thread (this=0x58108c0) at ../src/util/threadpool.cpp:573
   #15 0x0000000001574394 in std::function<void ()>::operator()() const (this=0x582f758) at /opt/rh/devtoolset-10/root/usr/include/c++/10/bits/std_function.h:617
   #16 doris::Thread::supervise_thread (arg=0x582f740) at ../src/util/thread.cpp:385
   #17 0x00007efe179adea5 in start_thread () from /lib64/libpthread.so.0
   #18 0x00007efe173d49fd in clone () from /lib64/libc.so.6
   (gdb) f 1
   #1  doris::segment_v2::SegmentWriter::append_row<doris::ContiguousRow> (this=0x0, row=...) at ../src/olap/rowset/segment_v2/segment_writer.cpp:103
   103	    for (size_t cid = 0; cid < _column_writers.size(); ++cid) {
   (gdb) p this
   $1 = (doris::segment_v2::SegmentWriter * const) 0x0
   (gdb)
   ```
   `segment writer` will be released after first segment was flushed successfully. When `segment writer` is used for subsequent segment, there is a null pointer exception.


-- 
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-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


[GitHub] [incubator-doris] morningman closed issue #6316: [Bug] BE coredump when flushing memtable

Posted by GitBox <gi...@apache.org>.
morningman closed issue #6316:
URL: https://github.com/apache/incubator-doris/issues/6316


   


-- 
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-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org