Uploaded image for project: 'Couchbase Server'
  1. Couchbase Server
  2. MB-25047

phosphor: SEGV during phosphor::TraceLog::deregisterThread under ASan

    XMLWordPrintable

Details

    • Untriaged
    • Unknown

    Description

      Seen when trying to reproduce MB-24631 - running 4 nodes ./cluster_run built with AddressSanitizer:

      ==30022==ERROR: AddressSanitizer: SEGV on unknown address 0x00000c800020 (pc 0x7fe722c90622 bp 0x7fe722e99698 sp 0x7fe71cbfedf0 T2)
          #0 0x7fe722c90621 in std::_Hashtable<phosphor::Sentinel*, phosphor::Sentinel*, std::allocator<phosphor::Sentinel*>, std::__detail::_Identity, std::equal_to<phosphor::Sentinel*>, std::hash<phosphor::Sentinel*>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, true, true> >::_M_find_before_node(unsigned long, phosphor::Sentinel* const&, unsigned long) const /usr/include/c++/5/bits/hashtable.h:1427
          #1 0x7fe722c90621 in std::_Hashtable<phosphor::Sentinel*, phosphor::Sentinel*, std::allocator<phosphor::Sentinel*>, std::__detail::_Identity, std::equal_to<phosphor::Sentinel*>, std::hash<phosphor::Sentinel*>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, true, true> >::_M_erase(std::integral_constant<bool, true>, phosphor::Sentinel* const&) /usr/include/c++/5/bits/hashtable.h:1792
          #2 0x7fe722c90621 in std::_Hashtable<phosphor::Sentinel*, phosphor::Sentinel*, std::allocator<phosphor::Sentinel*>, std::__detail::_Identity, std::equal_to<phosphor::Sentinel*>, std::hash<phosphor::Sentinel*>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, true, true> >::erase(phosphor::Sentinel* const&) /usr/include/c++/5/bits/hashtable.h:749
          #3 0x7fe722c90621 in std::unordered_set<phosphor::Sentinel*, std::hash<phosphor::Sentinel*>, std::equal_to<phosphor::Sentinel*>, std::allocator<phosphor::Sentinel*> >::erase(phosphor::Sentinel* const&) /usr/include/c++/5/bits/unordered_set.h:512
          #4 0x7fe722c90621 in phosphor::TraceLog::deregisterThread() /home/daver/repos/couchbase/server/phosphor/src/trace_log.cc:218
          #5 0x7fe722ea3786 in CouchbaseThread::run() /home/daver/repos/couchbase/server/platform/src/cb_pthreads.cc:60
          #6 0x7fe722ea3786 in platform_thread_wrap /home/daver/repos/couchbase/server/platform/src/cb_pthreads.cc:72
          #7 0x7fe722a646b9 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x76b9)
          #8 0x7fe7217153dc in clone (/lib/x86_64-linux-gnu/libc.so.6+0x1073dc)
       
      AddressSanitizer can not provide additional info.
      SUMMARY: AddressSanitizer: SEGV /usr/include/c++/5/bits/hashtable.h:1427 std::_Hashtable<phosphor::Sentinel*, phosphor::Sentinel*, std::allocator<phosphor::Sentinel*>, std::__detail::_Identity, std::equal_to<phosphor::Sentinel*>, std::hash<phosphor::Sentinel*>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, true, true> >::_M_find_before_node(unsigned long, phosphor::Sentinel* const&, unsigned long) const
      Thread T2 (mc:file_logger) created by T0 here:
          #0 0x7fe7247d8253 in pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x36253)
          #1 0x7fe722ea3543 in cb_create_named_thread /home/daver/repos/couchbase/server/platform/src/cb_pthreads.cc:110
       
      ==30022==ABORTING
      

      Unfortunately that's the only details ASan reported

      Attachments

        Issue Links

          For Gerrit Dashboard: MB-25047
          # Subject Branch Project Status CR V

          Activity

            People

              will.gardner Will Gardner (Inactive)
              drigby Dave Rigby (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes

                  PagerDuty