incubator-doris BE coredump in StorageEngine::_unused_rowset_monitor_thread_callback

dxxyhpgq  于 2022-04-22  发布在  Java
关注(0)|答案(2)|浏览(157)

Describe the bug

A new coredump stack:

Core was generated by `/home/work/app/doris/c3prc-ga/be/package/be/lib/palo_be'.
Program terminated with signal 11, Segmentation fault.

# 0  0x000000000133d455 in Delete (arena=0x0, value=<optimized out>) at /var/local/thirdparty/installed/include/google/protobuf/repeated_field.h:623

623	/var/local/thirdparty/installed/include/google/protobuf/repeated_field.h: 没有那个文件或目录.
Missing separate debuginfos, use: debuginfo-install glibc-2.17-157.el7_3.1.x86_64 libgcc-4.8.5-28.el7_5.1.x86_64 zlib-1.2.7-17.el7.x86_64
(gdb)
(gdb) bt

# 0  0x000000000133d455 in Delete (arena=0x0, value=<optimized out>) at /var/local/thirdparty/installed/include/google/protobuf/repeated_field.h:623

# 1  Destroy<google::protobuf::RepeatedPtrField<doris::StreamInfoMessage>::TypeHandler> (this=0x91284590, this=0x91284590) at /var/local/thirdparty/installed/include/google/protobuf/repeated_field.h:1473

# 2  ~RepeatedPtrField (this=0x91284590, __in_chrg=<optimized out>) at /var/local/thirdparty/installed/include/google/protobuf/repeated_field.h:1934

# 3  doris::ColumnDataHeaderMessage::~ColumnDataHeaderMessage (this=0x91284560, __in_chrg=<optimized out>) at /builds/olap/doris/gensrc/build/gen_cpp/column_data_file.pb.cc:1020

# 4  0x0000000000f31cf1 in ~FileHeader (this=0x91284510, __in_chrg=<optimized out>) at /builds/olap/doris/be/src/olap/file_helper.h:209

# 5  ~pair (this=<optimized out>, __in_chrg=<optimized out>) at /usr/include/c++/7.3.0/bits/stl_pair.h:198

# 6  destroy<std::pair<unsigned int const, doris::FileHeader<doris::ColumnDataHeaderMessage> > > (this=<synthetic pointer>, __p=<optimized out>) at /usr/include/c++/7.3.0/ext/new_allocator.h:140

# 7  destroy<std::pair<unsigned int const, doris::FileHeader<doris::ColumnDataHeaderMessage> > > (__a=<synthetic pointer>, __p=<optimized out>) at /usr/include/c++/7.3.0/bits/alloc_traits.h:487

# 8  _M_deallocate_node (this=<optimized out>, __n=0x91284500) at /usr/include/c++/7.3.0/bits/hashtable_policy.h:2084

# 9  _M_deallocate_nodes (this=<optimized out>, __n=<optimized out>) at /usr/include/c++/7.3.0/bits/hashtable_policy.h:2097

# 10 clear (this=0xbf6f4bc8) at /usr/include/c++/7.3.0/bits/hashtable.h:2029

# 11 clear (this=0xbf6f4bc8) at /usr/include/c++/7.3.0/bits/unordered_map.h:845

# 12 doris::SegmentGroup::~SegmentGroup (this=0xbf6f4900, __in_chrg=<optimized out>) at /builds/olap/doris/be/src/olap/rowset/segment_group.cpp:149

# 13 0x0000000000f31f21 in doris::SegmentGroup::~SegmentGroup (this=0xbf6f4900, __in_chrg=<optimized out>) at /builds/olap/doris/be/src/olap/rowset/segment_group.cpp:150

# 14 0x0000000000f0681a in _M_release (this=0x4949ed5c0) at /usr/include/c++/7.3.0/bits/shared_ptr_base.h:154

# 15 ~__shared_count (this=<optimized out>, __in_chrg=<optimized out>) at /usr/include/c++/7.3.0/bits/shared_ptr_base.h:684

# 16 ~__shared_ptr (this=<optimized out>, __in_chrg=<optimized out>) at /usr/include/c++/7.3.0/bits/shared_ptr_base.h:1123

# 17 ~shared_ptr (this=<optimized out>, __in_chrg=<optimized out>) at /usr/include/c++/7.3.0/bits/shared_ptr.h:93

# 18 _Destroy<std::shared_ptr<doris::SegmentGroup> > (__pointer=<optimized out>) at /usr/include/c++/7.3.0/bits/stl_construct.h:98

# 19 __destroy<std::shared_ptr<doris::SegmentGroup>*> (__last=<optimized out>, __first=0x1277f700) at /usr/include/c++/7.3.0/bits/stl_construct.h:108

# 20 _Destroy<std::shared_ptr<doris::SegmentGroup>*> (__last=<optimized out>, __first=<optimized out>) at /usr/include/c++/7.3.0/bits/stl_construct.h:137

# 21 _Destroy<std::shared_ptr<doris::SegmentGroup>*, std::shared_ptr<doris::SegmentGroup> > (__last=0x1277f710, __first=<optimized out>) at /usr/include/c++/7.3.0/bits/stl_construct.h:206

# 22 ~vector (this=0x70553068, __in_chrg=<optimized out>) at /usr/include/c++/7.3.0/bits/stl_vector.h:434

# 23 ~AlphaRowset (this=0x70552fd0, __in_chrg=<optimized out>) at /builds/olap/doris/be/src/olap/rowset/alpha_rowset.h:41

# 24 ~AlphaRowset (this=0x70552fd0, __in_chrg=<optimized out>) at /builds/olap/doris/be/src/olap/rowset/alpha_rowset.h:41

# 25 std::_Sp_counted_ptr<doris::AlphaRowset*, (__gnu_cxx::_Lock_policy)2>::_M_dispose (this=<optimized out>) at /usr/include/c++/7.3.0/bits/shared_ptr_base.h:376

# 26 0x0000000000d259b6 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0xbfdd3a40) at /usr/include/c++/7.3.0/bits/shared_ptr_base.h:154

# 27 0x0000000000df90e1 in ~__shared_count (this=0xf634796f0, __in_chrg=<optimized out>) at /usr/include/c++/7.3.0/bits/shared_ptr_base.h:684

# 28 ~__shared_ptr (this=0xf634796e8, __in_chrg=<optimized out>) at /usr/include/c++/7.3.0/bits/shared_ptr_base.h:1123

# 29 ~shared_ptr (this=0xf634796e8, __in_chrg=<optimized out>) at /usr/include/c++/7.3.0/bits/shared_ptr.h:93

# 30 ~pair (this=0xf634796c8, __in_chrg=<optimized out>) at /usr/include/c++/7.3.0/bits/stl_pair.h:198

# 31 destroy<std::pair<std::__cxx11::basic_string<char> const, std::shared_ptr<doris::Rowset> > > (this=<synthetic pointer>, __p=<optimized out>) at /usr/include/c++/7.3.0/ext/new_allocator.h:140

# 32 destroy<std::pair<std::__cxx11::basic_string<char> const, std::shared_ptr<doris::Rowset> > > (__a=<synthetic pointer>, __p=<optimized out>) at /usr/include/c++/7.3.0/bits/alloc_traits.h:487

# 33 _M_deallocate_node (this=0x62114c8, __n=0xf634796c0) at /usr/include/c++/7.3.0/bits/hashtable_policy.h:2084

# 34 _M_erase (__n=0xf634796c0, __prev_n=<optimized out>, __bkt=<optimized out>, this=0x62114c8) at /usr/include/c++/7.3.0/bits/hashtable.h:1887

# 35 std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::shared_ptr<doris::Rowset> >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::shared_ptr<doris::Rowset> > >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::erase (this=this@entry=0x62114c8, __it=...,

    __it@entry=...) at /usr/include/c++/7.3.0/bits/hashtable.h:1862

# 36 0x0000000000df1a98 in erase (__it=..., this=0x62114c8) at /usr/include/c++/7.3.0/bits/hashtable.h:755

# 37 erase (__position=..., this=0x62114c8) at /usr/include/c++/7.3.0/bits/unordered_map.h:800

# 38 doris::StorageEngine::start_delete_unused_rowset (this=this@entry=0x6211400) at /builds/olap/doris/be/src/olap/storage_engine.cpp:769

# 39 0x0000000000de5468 in doris::StorageEngine::_unused_rowset_monitor_thread_callback (this=0x6211400, arg=<optimized out>) at /builds/olap/doris/be/src/olap/olap_server.cpp:312

# 40 0x000000000266553f in std::execute_native_thread_routine (__p=0xc60c220) at ../../../.././libstdc++-v3/src/c++11/thread.cc:83

# 41 0x00007f3dda009dc5 in start_thread () from /lib64/libpthread.so.0

# 42 0x00007f3dda31573d in clone () from /lib64/libc.so.6

(gdb)

To Reproduce

Steps to reproduce the behavior:
Haven't found a way to stably reproduce

Expected behavior

Should not coredump.

Screenshots

none

Version

0.12

Additional context

none

jdzmm42g

jdzmm42g1#

(gdb) f 0

# 0  0x000000000133d455 in Delete (arena=0x0, value=<optimized out>) at /var/local/thirdparty/installed/include/google/protobuf/repeated_field.h:623

623	in /var/local/thirdparty/installed/include/google/protobuf/repeated_field.h
(gdb) i locals
arena = 0x0
value = 0x900000002
(gdb) p value
$1 = (doris::StreamInfoMessage *) 0x900000002
(gdb) p *(doris::StreamInfoMessage*)0x900000002
$2 = {<google::protobuf::Message> = {<No data fields>}, static kIndexInFileMessages = 0, static ROW_INDEX = doris::StreamInfoMessage_Kind_ROW_INDEX, static PRESENT = doris::StreamInfoMessage_Kind_PRESENT,
  static DATA = doris::StreamInfoMessage_Kind_DATA, static LENGTH = doris::StreamInfoMessage_Kind_LENGTH, static DICTIONARY_DATA = doris::StreamInfoMessage_Kind_DICTIONARY_DATA,
  static SECONDARY = doris::StreamInfoMessage_Kind_SECONDARY, static ROW_INDEX_STATISTIC = doris::StreamInfoMessage_Kind_ROW_INDEX_STATISTIC, static BLOOM_FILTER = doris::StreamInfoMessage_Kind_BLOOM_FILTER,
  static Kind_MIN = doris::StreamInfoMessage_Kind_ROW_INDEX, static Kind_MAX = doris::StreamInfoMessage_Kind_BLOOM_FILTER, static Kind_ARRAYSIZE = 8, static kKindFieldNumber = 1, static kColumnUniqueIdFieldNumber = 2,
  static kLengthFieldNumber = 3, _internal_metadata_ = {<google::protobuf::internal::InternalMetadataWithArenaBase<google::protobuf::UnknownFieldSet, google::protobuf::internal::InternalMetadataWithArena>> = {ptr_ = 0x1818f755e6,
      static kPtrTagMask = 1, static kPtrValueMask = -2}, <No data fields>}, _has_bits_ = {has_bits_ = {3}}, _cached_size_ = 0, kind_ = 415285248, column_unique_id_ = 24, length_ = 7116}

kind_ is an invalid value?

b1zrtrql

b1zrtrql2#

A similar coredump:

(gdb) f 0

# 0  0x000000000133d395 in Delete (arena=0x0, value=<optimized out>) at /var/local/thirdparty/installed/include/google/protobuf/repeated_field.h:623

623	in /var/local/thirdparty/installed/include/google/protobuf/repeated_field.h
(gdb) i locals
arena = 0x0
value = 0xf00000002
(gdb) p value
$1 = (doris::ColumnEncodingMessage *) 0xf00000002
(gdb) p *value
$2 = {
  <google::protobuf::Message> = {<No data fields>},
  members of doris::ColumnEncodingMessage:
  static kIndexInFileMessages = 1,
  static DIRECT = doris::ColumnEncodingMessage_Kind_DIRECT,
  static DICTIONARY = doris::ColumnEncodingMessage_Kind_DICTIONARY,
  static Kind_MIN = doris::ColumnEncodingMessage_Kind_DIRECT,
  static Kind_MAX = doris::ColumnEncodingMessage_Kind_DICTIONARY,
  static Kind_ARRAYSIZE = 2,
  static kKindFieldNumber = 1,
  static kDictionarySizeFieldNumber = 2,
  _internal_metadata_ = {
    <google::protobuf::internal::InternalMetadataWithArenaBase<google::protobuf::UnknownFieldSet, google::protobuf::internal::InternalMetadataWithArena>> = {
      ptr_ = 0x0,
      static kPtrTagMask = 1,
      static kPtrValueMask = -2
    }, <No data fields>},
  _has_bits_ = {
    has_bits_ = {0}
  },
  _cached_size_ = 0,
  kind_ = 0,
  dictionary_size_ = 0
}

相关问题