SolidWallOfCode edited a comment on pull request #7731:
URL: https://github.com/apache/trafficserver/pull/7731#issuecomment-824979371


   Here is the stack trace if anyone else has seen this
   ```
   #0  0x00007f57e6eec7d5 in raise () from /lib64/libc.so.6
   #1  0x00007f57e6ed5895 in abort () from /lib64/libc.so.6
   #2  0x000000000047d868 in SignalHandler (sig=11) at 
traffic_manager/traffic_manager.cc:974
   #3  <signal handler called>
   #4  0x00000000004db76b in 
std::__detail::_Hash_code_base<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, RecRecord*>, std::__detail::_Select1st, 
std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> > >, std::__detail::_Mod_range_hashing, 
std::__detail::_Default_ranged_hash, true>::_M_bucket_index (this=0x67ee00 
<g_records_ht[abi:cxx11]>, __p=0x32a0f68fe8fce555, 
       __bkt_count=2357) at /usr/include/c++/10/bits/hashtable_policy.h:1391
   #5  0x00000000004db381 in 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, RecRecord*>, 
std::allocator<std::pair<std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const, RecRecord*> >, 
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> >::_M_bucket_index 
(this=0x67ee00 <g_records_ht[abi:cxx11]>, 
       __n=0x32a0f68fe8fce555) at /usr/include/c++/10/bits/hashtable.h:678
   #6  0x00000000004dafad in 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, RecRecord*>, 
std::allocator<std::pair<std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const, RecRecord*> >, 
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> >::_M_find_before_node 
(this=0x67ee00 <g_records_ht[abi:cxx11]>, 
       __bkt=1111, __k="proxy.node.config.restart_required.proxy", 
__code=13471590608258617002)
       at /usr/include/c++/10/bits/hashtable.h:1583
   #7  0x00000000004dacaa in 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, RecRecord*>, 
std::allocator<std::pair<std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const, RecRecord*> >, 
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> >::_M_find_node 
(this=0x67ee00 <g_records_ht[abi:cxx11]>, 
       __bkt=1111, __key="proxy.node.config.restart_required.proxy", 
__c=13471590608258617002)
       at /usr/include/c++/10/bits/hashtable.h:693
   #8  0x00000000004dab38 in 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, RecRecord*>, 
std::allocator<std::pair<std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const, RecRecord*> >, 
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> >::find (this=0x67ee00 
<g_records_ht[abi:cxx11]>, 
       __k="proxy.node.config.restart_required.proxy") at 
/usr/include/c++/10/bits/hashtable.h:1454
   #9  0x00000000004daa33 in 
std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> >, RecRecord*, std::hash<std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > >, 
std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> > >, 
std::allocator<std::pair<std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const, RecRecord*> > >::find 
(this=0x67ee00 <g_records_ht[abi:cxx11]>, 
       __x="proxy.node.config.restart_required.proxy") at 
/usr/include/c++/10/bits/unordered_map.h:920
   #10 0x00000000004d95c1 in RecSetRecord (rec_type=RECT_NULL, name=0x505350 
"proxy.node.config.restart_required.proxy", 
       data_type=RECD_INT, data=0x7f57e600dec8, data_raw=0x0, 
source=REC_SOURCE_DEFAULT, lock=true) at P_RecCore.cc:372
   #11 0x00000000004d9aea in RecSetRecordInt (name=0x505350 
"proxy.node.config.restart_required.proxy", rec_int=1, 
       source=REC_SOURCE_DEFAULT, lock=true) at P_RecCore.cc:467
   #12 0x00000000004edca2 in config_update_thr () at RecLocal.cc:94
   #13 0x00007f57e7290432 in start_thread () from /lib64/libpthread.so.0
   #14 0x00007f57e6fb16d3 in clone () from /lib64/libc.so.6
   ```
   
   This is a shutdown problem because the stack on another thread is
   ```
   #0  0x00007f57e7452666 in 
std::allocator_traits<std::allocator<ts::IntrusivePtr<ts::Errata::Sink>*> 
>::deallocate(std::allocator<ts::IntrusivePtr<ts::Errata::Sink>*>&, 
ts::IntrusivePtr<ts::Errata::Sink>**, unsigned long)@plt ()
      from /home/amc/opt/ats/lib/libtscore.so.10
   (gdb) bt
   #0  0x00007f57e7452666 in 
std::allocator_traits<std::allocator<ts::IntrusivePtr<ts::Errata::Sink>*> 
>::deallocate(std::allocator<ts::IntrusivePtr<ts::Errata::Sink>*>&, 
ts::IntrusivePtr<ts::Errata::Sink>**, unsigned long)@plt ()
      from /home/amc/opt/ats/lib/libtscore.so.10
   #1  0x00007f57e748f82e in 
std::_Deque_base<ts::IntrusivePtr<ts::Errata::Sink>, 
std::allocator<ts::IntrusivePtr<ts::Errata::Sink> > >::_M_deallocate_map 
(this=0x7f57e7577cc0 <ts::(anonymous namespace)::Sink_List>, __p=0x1a1b060, 
__n=8)
       at /usr/include/c++/10/bits/stl_deque.h:580
   #2  0x00007f57e748e627 in 
std::_Deque_base<ts::IntrusivePtr<ts::Errata::Sink>, 
std::allocator<ts::IntrusivePtr<ts::Errata::Sink> > >::~_Deque_base 
(this=0x7f57e7577cc0 <ts::(anonymous namespace)::Sink_List>, 
__in_chrg=<optimized out>)
       at /usr/include/c++/10/bits/stl_deque.h:600
   #3  0x00007f57e74951c5 in std::deque<ts::IntrusivePtr<ts::Errata::Sink>, 
std::allocator<ts::IntrusivePtr<ts::Errata::Sink> > >::~deque 
(this=0x7f57e7577cc0 <ts::(anonymous namespace)::Sink_List>, 
__in_chrg=<optimized out>) at /usr/include/c++/10/bits/stl_deque.h:1004
   #4  0x00007f57e6eef78e in __cxa_finalize () from /lib64/libc.so.6
   #5  0x00007f57e7469457 in __do_global_dtors_aux () from 
/home/amc/opt/ats/lib/libtscore.so.10
   #6  0x00007ffdf1420850 in ?? ()
   #7  0x00007f57e758fbe3 in _dl_fini () from /lib64/ld-linux-x86-64.so.2
   ```
   This indicates the static values are being destructed, which is why 
interacting with `g_records_ht` crashes on the other thread.


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


Reply via email to