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


   **Describe the bug**
   
   ```
   #0  std::_Hash_bytes (ptr=<optimized out>, len=892612151, 
seed=seed@entry=3339675911) at 
../../../../gcc-7.3.0/libstdc++-v3/libsupc++/hash_bytes.cc:147
   #1  0x0000000001277bc1 in hash (__seed=3339675911, __clength=<optimized 
out>, __ptr=<optimized out>) at 
/home/work/cov_tools/gcc730/include/c++/7.3.0/bits/functional_hash.h:192
   #2  operator() (this=0x384f168 
<doris::DorisMetrics::instance()::instance+3784>, __s=...) at 
/home/work/cov_tools/gcc730/include/c++/7.3.0/bits/basic_string.h:6591
   #3  _M_hash_code (this=0x384f168 
<doris::DorisMetrics::instance()::instance+3784>, __k=...) at 
/home/work/cov_tools/gcc730/include/c++/7.3.0/bits/hashtable_policy.h:1368
   #4  _M_erase (__k=..., this=0x384f168 
<doris::DorisMetrics::instance()::instance+3784>) at 
/home/work/cov_tools/gcc730/include/c++/7.3.0/bits/hashtable.h:1903
   #5  erase (__k=..., this=0x384f168 
<doris::DorisMetrics::instance()::instance+3784>) at 
/home/work/cov_tools/gcc730/include/c++/7.3.0/bits/hashtable.h:759
   #6  erase (__x=..., this=0x384f168 
<doris::DorisMetrics::instance()::instance+3784>) at 
/home/work/cov_tools/gcc730/include/c++/7.3.0/bits/unordered_map.h:817
   #7  doris::MetricRegistry::deregister_entity (this=this@entry=0x384f140 
<doris::DorisMetrics::instance()::instance+3744>, name=...) at 
/home/work/teamcity/workspace/doris_daily_compile/core/be/src/util/metrics.cpp:170
   #8  0x0000000000f62000 in doris::BaseTablet::~BaseTablet (this=0x108a9690, 
__in_chrg=<optimized out>) at 
/home/work/teamcity/workspace/doris_daily_compile/core/be/src/olap/base_tablet.cpp:46
   #9  0x0000000000d793da in 
std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x108a9680) 
at /home/work/cov_tools/gcc730/include/c++/7.3.0/bits/shared_ptr_base.h:154
   #10 0x0000000000f04693 in ~__shared_count (this=<optimized out>, 
__in_chrg=<optimized out>) at 
/home/work/cov_tools/gcc730/include/c++/7.3.0/bits/shared_ptr_base.h:684
   #11 ~__shared_ptr (this=<optimized out>, __in_chrg=<optimized out>) at 
/home/work/cov_tools/gcc730/include/c++/7.3.0/bits/shared_ptr_base.h:1123
   #12 operator= (__r=..., this=0x14ad0000) at 
/home/work/cov_tools/gcc730/include/c++/7.3.0/bits/shared_ptr_base.h:1213
   #13 operator= (__r=..., this=0x14ad0000) at 
/home/work/cov_tools/gcc730/include/c++/7.3.0/bits/shared_ptr.h:319
   #14 __copy_m<std::shared_ptr<doris::Tablet>*, 
std::shared_ptr<doris::Tablet>*> (__result=0x14ad0000, __last=<optimized out>, 
__first=0x14ad0010) at 
/home/work/cov_tools/gcc730/include/c++/7.3.0/bits/stl_algobase.h:343
   #15 __copy_move_a<true, std::shared_ptr<doris::Tablet>*, 
std::shared_ptr<doris::Tablet>*> (__result=<optimized out>, __last=<optimized 
out>, __first=<optimized out>) at 
/home/work/cov_tools/gcc730/include/c++/7.3.0/bits/stl_algobase.h:386
   #16 __copy_move_a2<true, 
__gnu_cxx::__normal_iterator<std::shared_ptr<doris::Tablet>*, 
std::vector<std::shared_ptr<doris::Tablet> > >, 
__gnu_cxx::__normal_iterator<std::shared_ptr<doris::Tablet>*, 
std::vector<std::shared_ptr<doris::Tablet> > > > (__result=..., __last=..., 
__first=...)
       at /home/work/cov_tools/gcc730/include/c++/7.3.0/bits/stl_algobase.h:422
   #17 move<__gnu_cxx::__normal_iterator<std::shared_ptr<doris::Tablet>*, 
std::vector<std::shared_ptr<doris::Tablet> > >, 
__gnu_cxx::__normal_iterator<std::shared_ptr<doris::Tablet>*, 
std::vector<std::shared_ptr<doris::Tablet> > > > (__result=..., __last=..., 
__first=...)
       at /home/work/cov_tools/gcc730/include/c++/7.3.0/bits/stl_algobase.h:488
   #18 _M_erase (__position=..., this=0x545a338) at 
/home/work/cov_tools/gcc730/include/c++/7.3.0/bits/vector.tcc:157
   #19 erase (__position=..., this=0x545a338) at 
/home/work/cov_tools/gcc730/include/c++/7.3.0/bits/stl_vector.h:1180
   #20 doris::TabletManager::start_trash_sweep (this=0x545a280) at 
/home/work/teamcity/workspace/doris_daily_compile/core/be/src/olap/tablet_manager.cpp:1061
   #21 0x0000000000ecf279 in doris::StorageEngine::_start_trash_sweep 
(this=this@entry=0x545c780, usage=usage@entry=0x7f8b8b136068) at 
/home/work/teamcity/workspace/doris_daily_compile/core/be/src/olap/storage_engine.cpp:656
   #22 0x0000000000ebf21f in 
doris::StorageEngine::_garbage_sweeper_thread_callback (this=0x545c780, 
arg=<optimized out>) at 
/home/work/teamcity/workspace/doris_daily_compile/core/be/src/olap/olap_server.cpp:256
   #23 0x000000000291690f in std::execute_native_thread_routine (__p=0x5556840) 
at ../../../../../gcc-7.3.0/libstdc++-v3/src/c++11/thread.cc:83
   #24 0x00007f8bf90b11c3 in start_thread () from 
/opt/compiler/gcc-4.8.2/lib64/libpthread.so.0
   #25 0x00007f8bf8ae012d in clone () from 
/opt/compiler/gcc-4.8.2/lib64/libc.so.6
   ```
   
   This is because every time a tablet object is constructed, a MetricEntity 
instance will be constructed and registered in the MetricRegistry, but 
MetricRegistry only uses the tablet id as the key to save the MetricEntity. 
When two identical tablet objects are constructed at the same time, an access 
exception will be generated.


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to