xinyiZzz opened a new pull request, #22849:
URL: https://github.com/apache/doris/pull/22849
## Proposed changes
page handle hold tracker shared ptr
```
*** SIGSEGV address not mapped to object (@0x28) received by PID 2344547
(TID 2344547 OR 0x7f92e3378e00) from PID 40; stack trace: ***
0# doris::signal::(anonymous namespace)::FailureSignalHandler(int,
siginfo_t*, void*) at doris/be/src/common/signal_handler.h:413
1# 0x00007F92C98770A7 in
/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/lib/amd64/server/libjvm.so
2# JVM_handle_linux_signal in
/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/lib/amd64/server/libjvm.so
3# 0x00007F92C987002C in
/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/lib/amd64/server/libjvm.so
4# 0x00007F92E3535040 in /lib/x86_64-linux-gnu/libc.so.6
5# std::__shared_ptr<doris::MemTracker::MemCounter,
(__gnu_cxx::_Lock_policy)2>::get() const at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:1291
6# std::__shared_ptr_access<doris::MemTracker::MemCounter,
(__gnu_cxx::_Lock_policy)2, false, false>::_M_get() const at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:990
7# std::__shared_ptr_access<doris::MemTracker::MemCounter,
(__gnu_cxx::_Lock_policy)2, false, false>::operator->() const at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:984
8# doris::MemTracker::release(long) at
doris/be/src/runtime/memory/mem_tracker.h:149
9# doris::segment_v2::PageHandle::~PageHandle() at
doris/be/src/olap/rowset/segment_v2/page_handle.h:64
10# doris::segment_v2::IndexedColumnReader::~IndexedColumnReader() at
doris/be/src/olap/rowset/segment_v2/indexed_column_reader.h:49
11#
std::default_delete<doris::segment_v2::IndexedColumnReader>::operator()(doris::segment_v2::IndexedColumnReader*)
const at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/unique_ptr.h:85
12# std::unique_ptr<doris::segment_v2::IndexedColumnReader,
std::default_delete<doris::segment_v2::IndexedColumnReader> >::~unique_ptr() at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/unique_ptr.h:361
13# doris::segment_v2::BitmapIndexReader::~BitmapIndexReader() at
doris/be/src/olap/rowset/segment_v2/bitmap_index_reader.h:43
14#
std::default_delete<doris::segment_v2::BitmapIndexReader>::operator()(doris::segment_v2::BitmapIndexReader*)
const at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/unique_ptr.h:85
15# std::unique_ptr<doris::segment_v2::BitmapIndexReader,
std::default_delete<doris::segment_v2::BitmapIndexReader> >::~unique_ptr() at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/unique_ptr.h:361
16# doris::segment_v2::ColumnReader::~ColumnReader() at
doris/be/src/olap/rowset/segment_v2/column_reader.cpp:185
17#
std::default_delete<doris::segment_v2::ColumnReader>::operator()(doris::segment_v2::ColumnReader*)
const at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/unique_ptr.h:85
18# std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> >::~unique_ptr() at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/unique_ptr.h:361
19# std::pair<int const, std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > >::~pair() at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_iterator.h:2379
20# void std::destroy_at<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > > >(std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > >*) at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_construct.h:89
21# void
std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > > > >
>::destroy<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > >
>(std::allocator<std::_Rb_tree_node<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > > > >&, std::pair<int
const, std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > >*) at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/alloc_traits.h:533
22# std::_Rb_tree<int, std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > >,
std::_Select1st<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > > >, std::less<int>,
std::allocator<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > > >
>::_M_destroy_node(std::_Rb_tree_node<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > > >*) at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_tree.h:626
23# std::_Rb_tree<int, std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > >,
std::_Select1st<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > > >, std::less<int>,
std::allocator<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > > >
>::_M_drop_node(std::_Rb_tree_node<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > > >*) at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_tree.h:631
24# std::_Rb_tree<int, std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > >,
std::_Select1st<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > > >, std::less<int>,
std::allocator<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > > >
>::_M_erase(std::_Rb_tree_node<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > > >*) at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_tree.h:1890
25# std::_Rb_tree<int, std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > >,
std::_Select1st<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > > >, std::less<int>,
std::allocator<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > > >
>::_M_erase(std::_Rb_tree_node<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > > >*) at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_tree.h:1888
26# std::_Rb_tree<int, std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > >,
std::_Select1st<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > > >, std::less<int>,
std::allocator<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > > >
>::_M_erase(std::_Rb_tree_node<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > > >*) at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_tree.h:1888
27# std::_Rb_tree<int, std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > >,
std::_Select1st<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > > >, std::less<int>,
std::allocator<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > > >
>::_M_erase(std::_Rb_tree_node<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > > >*) at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_tree.h:1888
28# std::_Rb_tree<int, std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > >,
std::_Select1st<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > > >, std::less<int>,
std::allocator<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > > >
>::_M_erase(std::_Rb_tree_node<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > > >*) at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_tree.h:1888
29# std::_Rb_tree<int, std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > >,
std::_Select1st<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > > >, std::less<int>,
std::allocator<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > > >
>::_M_erase(std::_Rb_tree_node<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > > >*) at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_tree.h:1888
30# std::_Rb_tree<int, std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > >,
std::_Select1st<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > > >, std::less<int>,
std::allocator<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > > > >::~_Rb_tree() at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_tree.h:984
31# std::map<int, std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> >, std::less<int>,
std::allocator<std::pair<int const,
std::unique_ptr<doris::segment_v2::ColumnReader,
std::default_delete<doris::segment_v2::ColumnReader> > > > >::~map() at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_map.h:302
32# doris::segment_v2::Segment::~Segment() at
doris/be/src/olap/rowset/segment_v2/segment.cpp:112
33# std::_Sp_counted_ptr<doris::segment_v2::Segment*,
(__gnu_cxx::_Lock_policy)2>::_M_dispose() at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:348
34# std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:168
35# std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:703
36# std::__shared_ptr<doris::segment_v2::Segment,
(__gnu_cxx::_Lock_policy)2>::~__shared_ptr() at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:1149
37# std::shared_ptr<doris::segment_v2::Segment>::~shared_ptr() at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr.h:122
38# void std::destroy_at<std::shared_ptr<doris::segment_v2::Segment>
>(std::shared_ptr<doris::segment_v2::Segment>*) at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_construct.h:89
39# void std::_Destroy<std::shared_ptr<doris::segment_v2::Segment>
>(std::shared_ptr<doris::segment_v2::Segment>*) at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_construct.h:142
40# void
std::_Destroy_aux<false>::__destroy<std::shared_ptr<doris::segment_v2::Segment>*>(std::shared_ptr<doris::segment_v2::Segment>*,
std::shared_ptr<doris::segment_v2::Segment>*) at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_construct.h:151
41# void
std::_Destroy<std::shared_ptr<doris::segment_v2::Segment>*>(std::shared_ptr<doris::segment_v2::Segment>*,
std::shared_ptr<doris::segment_v2::Segment>*) at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_construct.h:186
42# void std::_Destroy<std::shared_ptr<doris::segment_v2::Segment>*,
std::shared_ptr<doris::segment_v2::Segment>
>(std::shared_ptr<doris::segment_v2::Segment>*,
std::shared_ptr<doris::segment_v2::Segment>*,
std::allocator<std::shared_ptr<doris::segment_v2::Segment> >&) at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/alloc_traits.h:747
43# std::vector<std::shared_ptr<doris::segment_v2::Segment>,
std::allocator<std::shared_ptr<doris::segment_v2::Segment> >
>::_M_erase_at_end(std::shared_ptr<doris::segment_v2::Segment>*) at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_vector.h:1796
44# std::vector<std::shared_ptr<doris::segment_v2::Segment>,
std::allocator<std::shared_ptr<doris::segment_v2::Segment> > >::clear() at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_vector.h:1499
45# doris::SegmentCache::insert(doris::SegmentCache::CacheKey const&,
doris::SegmentCache::CacheValue&,
doris::SegmentCacheHandle*)::$_0::operator()(doris::CacheKey const&, void*)
const at doris/be/src/olap/segment_loader.cpp:49
46# doris::SegmentCache::insert(doris::SegmentCache::CacheKey const&,
doris::SegmentCache::CacheValue&,
doris::SegmentCacheHandle*)::$_0::__invoke(doris::CacheKey const&, void*) at
doris/be/src/olap/segment_loader.cpp:46
47# doris::LRUHandle::free() at doris/be/src/olap/lru_cache.h:271
48# doris::LRUCache::prune() at doris/be/src/olap/lru_cache.cpp:461
49# doris::LRUCache::~LRUCache() at doris/be/src/olap/lru_cache.cpp:176
50# doris::ShardedLRUCache::~ShardedLRUCache() at
doris/be/src/olap/lru_cache.cpp:577
51# doris::ShardedLRUCache::~ShardedLRUCache() at
doris/be/src/olap/lru_cache.cpp:572
52# std::default_delete<doris::Cache>::operator()(doris::Cache*) const at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/unique_ptr.h:86
53# std::unique_ptr<doris::Cache, std::default_delete<doris::Cache>
>::~unique_ptr() at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/unique_ptr.h:362
54# doris::LRUCachePolicy::~LRUCachePolicy() at
doris/be/src/runtime/memory/lru_cache_policy.h:47
55# doris::SegmentCache::~SegmentCache() at
doris/be/src/olap/segment_loader.h:58
56# doris::SegmentCache::~SegmentCache() at
doris/be/src/olap/segment_loader.h:58
57#
std::default_delete<doris::SegmentCache>::operator()(doris::SegmentCache*)
const at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/unique_ptr.h:86
58# std::unique_ptr<doris::SegmentCache,
std::default_delete<doris::SegmentCache> >::~unique_ptr() at
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/unique_ptr.h:362
59# doris::SegmentLoader::~SegmentLoader() at
doris/be/src/olap/segment_loader.h:92
60# 0x00007F92E3538147 in /lib/x86_64-linux-gnu/libc.so.6
61# on_exit in /lib/x86_64-linux-gnu/libc.so.6
62# __libc_start_main in /lib/x86_64-linux-gnu/libc.so.6
63# _start in /mnt/hdd01/dorisTestEnv/NEREIDS_ASAN/be/lib/doris_be
```
## Further comments
If this is a relatively large or complex change, kick off the discussion at
[[email protected]](mailto:[email protected]) 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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]