Uploaded image for project: 'Kudu'
  1. Kudu
  2. KUDU-161

OpIdAnchorRegistry related issue makes the TS SEGV on shutdown

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • M3
    • None
    • log
    • None

    Description

      I'm getting this, sometimes (not often). Noteworthy that this is not happening on master right not, but on the HT patches branch. From the trace doesn't seem to be related though. Mike can you take a look?

      =================================================================
      ==19897==ERROR: AddressSanitizer: heap-use-after-free on address 0x6060001720b0 at pc 0xb8d772 bp 0x7ffff0ef9e50 sp 0x7ffff0ef9e48
      READ of size 8 at 0x6060001720b0 thread T0
      ==19897==WARNING: Trying to symbolize code, but external symbolizer is not initialized!
      #0 0xb8d771 in std::_Rb_tree<kudu::consensus::OpId, std::pair<kudu::consensus::OpId const, kudu::log::OpIdAnchor*>, std::_Select1st<std::pair<kudu::consensus::OpId const, kudu::log::OpIdAnchor*> >, kudu::log::OpIdCompareFunctor, std::allocator<std::pair<kudu::consensus::OpId const, kudu::log::OpIdAnchor*> > >::_M_begin() /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/stl_tree.h:502
      #1 0x26fb94e in std::_Rb_tree<kudu::consensus::OpId, std::pair<kudu::consensus::OpId const, kudu::log::OpIdAnchor*>, std::_Select1st<std::pair<kudu::consensus::OpId const, kudu::log::OpIdAnchor*> >, kudu::log::OpIdCompareFunctor, std::allocator<std::pair<kudu::consensus::OpId const, kudu::log::OpIdAnchor*> > >::find(kudu::consensus::OpId const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/stl_tree.h:1792
      #2 0x26f9de4 in std::multimap<kudu::consensus::OpId, kudu::log::OpIdAnchor*, kudu::log::OpIdCompareFunctor, std::allocator<std::pair<kudu::consensus::OpId const, kudu::log::OpIdAnchor*> > >::find(kudu::consensus::OpId const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/stl_multimap.h:731
      #3 0x26f38ec in kudu::log::OpIdAnchorRegistry::UnregisterUnlocked(kudu::log::OpIdAnchor*) /home/dralves/work/cloudera/kudu/src/consensus/opid_anchor_registry.cc:78
      #4 0x26f4572 in kudu::log::OpIdAnchorRegistry::Unregister(kudu::log::OpIdAnchor*) /home/dralves/work/cloudera/kudu/src/consensus/opid_anchor_registry.cc:41
      #5 0x26f7739 in kudu::log::OpIdMinAnchorer::ReleaseAnchor() /home/dralves/work/cloudera/kudu/src/consensus/opid_anchor_registry.cc:124
      #6 0x26f69e1 in ~OpIdMinAnchorer /home/dralves/work/cloudera/kudu/src/consensus/opid_anchor_registry.cc:107
      #7 0x11d7a83 in ~MemRowSet /home/dralves/work/cloudera/kudu/src/tablet/memrowset.h:147
      #8 0x11d8256 in ~MemRowSet /home/dralves/work/cloudera/kudu/src/tablet/memrowset.h:147
      #9 0xe0a472 in std::tr1::_Sp_deleter<kudu::tablet::MemRowSet>::operator()(kudu::tablet::MemRowSet*) const /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/shared_ptr.h:285
      #10 0xe09fa8 in std::tr1::Sp_counted_base_impl<kudu::tablet::MemRowSet*, std::tr1::_Sp_deleter<kudu::tablet::MemRowSet>, (_gnu_cxx::_Lock_policy)2>::_M_dispose() /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/shared_ptr.h:257
      #11 0x96b5d6 in std::tr1::Sp_counted_base<(_gnu_cxx::_Lock_policy)2>::_M_release() /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/shared_ptr.h:141
      #12 0x96b3d2 in ~__shared_count /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/shared_ptr.h:341
      #13 0x122024f in ~__shared_ptr /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/shared_ptr.h:541
      #14 0x11cdb58 in ~shared_ptr /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/shared_ptr.h:985
      #15 0x12121d6 in ~Iterator /home/dralves/work/cloudera/kudu/src/tablet/memrowset.h:343
      #16 0x11d919d in ~Iterator /home/dralves/work/cloudera/kudu/src/tablet/memrowset.h:343
      #17 0x11d94d6 in ~Iterator /home/dralves/work/cloudera/kudu/src/tablet/memrowset.h:343
      #18 0xd8e512 in std::tr1::_Sp_deleter<kudu::RowwiseIterator>::operator()(kudu::RowwiseIterator*) const /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/shared_ptr.h:285
      #19 0xd8e048 in std::tr1::Sp_counted_base_impl<kudu::RowwiseIterator*, std::tr1::_Sp_deleter<kudu::RowwiseIterator>, (_gnu_cxx::_Lock_policy)2>::_M_dispose() /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/shared_ptr.h:257
      #20 0x96b5d6 in std::tr1::Sp_counted_base<(_gnu_cxx::_Lock_policy)2>::_M_release() /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/shared_ptr.h:141
      #21 0x96b3d2 in ~__shared_count /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/shared_ptr.h:341
      #22 0xe44d4f in ~__shared_ptr /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/shared_ptr.h:541
      #23 0xd80448 in ~shared_ptr /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/shared_ptr.h:985
      #24 0xd89605 in void std::_Destroy<std::tr1::shared_ptr<kudu::RowwiseIterator> >(std::tr1::shared_ptr<kudu::RowwiseIterator>*) /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/stl_construct.h:93
      #25 0xd89437 in void std::Destroy_aux<false>::_destroy<std::tr1::shared_ptr<kudu::RowwiseIterator>>(std::tr1::shared_ptr<kudu::RowwiseIterator>, std::tr1::shared_ptr<kudu::RowwiseIterator>*) /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/stl_construct.h:103
      #26 0xd891e1 in void std::_Destroy<std::tr1::shared_ptr<kudu::RowwiseIterator>>(std::tr1::shared_ptr<kudu::RowwiseIterator>, std::tr1::shared_ptr<kudu::RowwiseIterator>*) /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/stl_construct.h:126
      #27 0xd88a56 in void std::_Destroy<std::tr1::shared_ptr<kudu::RowwiseIterator>, std::tr1::shared_ptr<kudu::RowwiseIterator> >(std::tr1::shared_ptr<kudu::RowwiseIterator>, std::tr1::shared_ptr<kudu::RowwiseIterator>*, std::allocator<std::tr1::shared_ptr<kudu::RowwiseIterator> >&) /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/stl_construct.h:151
      #28 0x1c0bbbd in std::deque<std::tr1::shared_ptr<kudu::RowwiseIterator>, std::allocator<std::tr1::shared_ptr<kudu::RowwiseIterator> > >::_M_destroy_data_aux(std::_Deque_iterator<std::tr1::shared_ptr<kudu::RowwiseIterator>, std::tr1::shared_ptr<kudu::RowwiseIterator>&, std::tr1::shared_ptr<kudu::RowwiseIterator>>, std::_Deque_iterator<std::tr1::shared_ptr<kudu::RowwiseIterator>, std::tr1::shared_ptr<kudu::RowwiseIterator>&, std::tr1::shared_ptr<kudu::RowwiseIterator>>) /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/deque.tcc:817
      #29 0x1c0b533 in std::deque<std::tr1::shared_ptr<kudu::RowwiseIterator>, std::allocator<std::tr1::shared_ptr<kudu::RowwiseIterator> > >::_M_destroy_data(std::_Deque_iterator<std::tr1::shared_ptr<kudu::RowwiseIterator>, std::tr1::shared_ptr<kudu::RowwiseIterator>&, std::tr1::shared_ptr<kudu::RowwiseIterator>>, std::_Deque_iterator<std::tr1::shared_ptr<kudu::RowwiseIterator>, std::tr1::shared_ptr<kudu::RowwiseIterator>&, std::tr1::shared_ptr<kudu::RowwiseIterator>>, std::allocator<std::tr1::shared_ptr<kudu::RowwiseIterator> > const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/stl_deque.h:1853
      #30 0x1bc905b in ~deque /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/stl_deque.h:918
      #31 0x1c4472c in ~UnionIterator /home/dralves/work/cloudera/kudu/src/common/generic_iterators.h:78
      #32 0x1bd6b3d in ~UnionIterator /home/dralves/work/cloudera/kudu/src/common/generic_iterators.h:78
      #33 0x1bd6e76 in ~UnionIterator /home/dralves/work/cloudera/kudu/src/common/generic_iterators.h:78
      #34 0xd83c32 in base::DefaultDeleter<kudu::UnionIterator>::operator()(kudu::UnionIterator*) const /home/dralves/work/cloudera/kudu/src/gutil/gscoped_ptr.h:145
      #35 0xe2d34f in ~gscoped_ptr_impl /home/dralves/work/cloudera/kudu/src/gutil/gscoped_ptr.h:228
      #36 0xd81d45 in ~gscoped_ptr /home/dralves/work/cloudera/kudu/src/gutil/gscoped_ptr.h:435
      #37 0xe2a1e1 in ~Iterator /home/dralves/work/cloudera/kudu/src/tablet/tablet.h:433
      #38 0xd82fbd in ~Iterator /home/dralves/work/cloudera/kudu/src/tablet/tablet.h:433
      #39 0xd832f6 in ~Iterator /home/dralves/work/cloudera/kudu/src/tablet/tablet.h:433
      #40 0xa31702 in base::DefaultDeleter<kudu::RowwiseIterator>::operator()(kudu::RowwiseIterator*) const /home/dralves/work/cloudera/kudu/src/gutil/gscoped_ptr.h:145
      #41 0xa3149f in ~gscoped_ptr_impl /home/dralves/work/cloudera/kudu/src/gutil/gscoped_ptr.h:228
      #42 0xa312c5 in ~gscoped_ptr /home/dralves/work/cloudera/kudu/src/gutil/gscoped_ptr.h:435
      #43 0xa60fab in ~Scanner /home/dralves/work/cloudera/kudu/src/tserver/scanners.cc:63
      #44 0xa8910f in std::tr1::_Sp_deleter<kudu::tserver::Scanner>::operator()(kudu::tserver::Scanner*) const /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/shared_ptr.h:285
      #45 0xa88c58 in std::tr1::Sp_counted_base_impl<kudu::tserver::Scanner*, std::tr1::_Sp_deleter<kudu::tserver::Scanner>, (_gnu_cxx::_Lock_policy)2>::_M_dispose() /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/shared_ptr.h:257
      #46 0x96b5d6 in std::tr1::Sp_counted_base<(_gnu_cxx::_Lock_policy)2>::_M_release() /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/shared_ptr.h:141
      #47 0x96b3d2 in ~__shared_count /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/shared_ptr.h:341
      #48 0x9f49af in ~__shared_ptr /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/shared_ptr.h:541
      #49 0x935ac8 in ~shared_ptr /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/shared_ptr.h:985
      #50 0xa6940d in ~pair /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/stl_pair.h:96
      #51 0xa68fbe in __gnu_cxx::new_allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::tr1::shared_ptr<kudu::tserver::Scanner> > >::destroy(std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::tr1::shared_ptr<kudu::tserver::Scanner> >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/ext/new_allocator.h:133
      #52 0xa68a7f in std::tr1::Hashtable<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::tr1::shared_ptr<kudu::tserver::Scanner> >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::tr1::shared_ptr<kudu::tserver::Scanner> > >, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::tr1::shared_ptr<kudu::tserver::Scanner> > >, std::equal_to<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::tr1::hash<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::tr1::detail::_Mod_range_hashing, std::tr1::detail::_Default_ranged_hash, std::tr1::detail::_Prime_rehash_policy, false, false, true>::_M_deallocate_node(std::tr1::_detail::_Hash_node<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::tr1::shared_ptr<kudu::tserver::Scanner> >, false>*) /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/hashtable.h:452
      #53 0xa821d0 in std::tr1::Hashtable<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::tr1::shared_ptr<kudu::tserver::Scanner> >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::tr1::shared_ptr<kudu::tserver::Scanner> > >, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::tr1::shared_ptr<kudu::tserver::Scanner> > >, std::equal_to<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::tr1::hash<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::tr1::detail::_Mod_range_hashing, std::tr1::detail::_Default_ranged_hash, std::tr1::detail::_Prime_rehash_policy, false, false, true>::_M_deallocate_nodes(std::tr1::_detail::_Hash_node<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::tr1::shared_ptr<kudu::tserver::Scanner> >, false>**, unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/hashtable.h:472
      #54 0xa8c505 in std::tr1::Hashtable<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::tr1::shared_ptr<kudu::tserver::Scanner> >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::tr1::shared_ptr<kudu::tserver::Scanner> > >, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::tr1::shared_ptr<kudu::tserver::Scanner> > >, std::equal_to<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::tr1::hash<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::tr1::detail::_Mod_range_hashing, std::tr1::detail::_Default_ranged_hash, std::tr1::_detail::_Prime_rehash_policy, false, false, true>::clear() /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/hashtable.h:1121
      #55 0xa8c11e in ~_Hashtable /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/hashtable.h:640
      #56 0xa8bf38 in ~__unordered_map /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/unordered_map.h:43
      #57 0xa64118 in ~unordered_map /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/unordered_map.h:180
      #58 0xa5ea70 in ~ScannerManager /home/dralves/work/cloudera/kudu/src/tserver/scanners.cc:25
      #59 0xaa849f in base::DefaultDeleter<kudu::tserver::ScannerManager>::operator()(kudu::tserver::ScannerManager*) const /home/dralves/work/cloudera/kudu/src/gutil/gscoped_ptr.h:145
      #60 0xaa824f in ~gscoped_ptr_impl /home/dralves/work/cloudera/kudu/src/gutil/gscoped_ptr.h:228
      #61 0xaa2825 in ~gscoped_ptr /home/dralves/work/cloudera/kudu/src/gutil/gscoped_ptr.h:435
      #62 0xa9d1aa in ~TabletServer /home/dralves/work/cloudera/kudu/src/tserver/tablet_server.cc:43
      #63 0xa9cdd6 in ~TabletServer /home/dralves/work/cloudera/kudu/src/tserver/tablet_server.cc:41
      #64 0xa5b2f2 in base::DefaultDeleter<kudu::tserver::TabletServer>::operator()(kudu::tserver::TabletServer*) const /home/dralves/work/cloudera/kudu/src/gutil/gscoped_ptr.h:145
      #65 0xa5e2df in ~gscoped_ptr_impl /home/dralves/work/cloudera/kudu/src/gutil/gscoped_ptr.h:228
      #66 0xa58f05 in ~gscoped_ptr /home/dralves/work/cloudera/kudu/src/gutil/gscoped_ptr.h:435
      #67 0xa53848 in ~MiniTabletServer /home/dralves/work/cloudera/kudu/src/tserver/mini_tablet_server.cc:50
      #68 0x9b5e1f in base::DefaultDeleter<kudu::tserver::MiniTabletServer>::operator()(kudu::tserver::MiniTabletServer*) const /home/dralves/work/cloudera/kudu/src/gutil/gscoped_ptr.h:145
      #69 0x9b5bcf in ~gscoped_ptr_impl /home/dralves/work/cloudera/kudu/src/gutil/gscoped_ptr.h:228
      #70 0x9afdd5 in ~gscoped_ptr /home/dralves/work/cloudera/kudu/src/gutil/gscoped_ptr.h:435
      #71 0x9b036f in ~TabletServerTest /home/dralves/work/cloudera/kudu/src/tserver/tablet_server-test-base.h:74
      #72 0x95b2e8 in ~TabletServerTest_TestSnapshotScan_SnapshotInTheFutureFails_Test /home/dralves/work/cloudera/kudu/src/tserver/tablet_server-test.cc:851
      #73 0x95b4b6 in ~TabletServerTest_TestSnapshotScan_SnapshotInTheFutureFails_Test /home/dralves/work/cloudera/kudu/src/tserver/tablet_server-test.cc:851
      #74 0x28219cd in testing::Test::DeleteSelf_() ??:?
      #75 0x282fe92 in void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::)(), char const) ??:?
      #76 0x28210f6 in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::)(), char const) ??:?
      #77 0x280edd1 in testing::TestInfo::Run() ??:?
      #78 0x280f4f4 in testing::TestCase::Run() ??:?
      #79 0x2814f95 in testing::internal::UnitTestImpl::RunAllTests() ??:?
      #80 0x282cd32 in bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::)(), char const) ??:?
      #81 0x2823076 in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::)(), char const) ??:?
      #82 0x2814c91 in testing::UnitTest::Run() ??:?
      #83 0x22b8f12 in main /home/dralves/work/cloudera/kudu/src/util/test_main.cc:15
      #84 0x7f325c7cbde4 in __libc_start_main /build/buildd/eglibc-2.17/csu/libc-start.c:260
      #85 0x85ea5c in _start ??:?

      0x6060001720b0 is located 16 bytes inside of 56-byte region [0x6060001720a0,0x6060001720d8)
      freed by thread T0 here:
      #0 0x8492f9 in operator delete(void*) ??:?
      #1 0xb8cae1 in base::DefaultDeleter<kudu::log::OpIdAnchorRegistry>::operator()(kudu::log::OpIdAnchorRegistry*) const /home/dralves/work/cloudera/kudu/src/gutil/gscoped_ptr.h:145
      #2 0xb8c87f in ~gscoped_ptr_impl /home/dralves/work/cloudera/kudu/src/gutil/gscoped_ptr.h:228
      #3 0xb37495 in ~gscoped_ptr /home/dralves/work/cloudera/kudu/src/gutil/gscoped_ptr.h:435
      #4 0xb7fc8b in ~TabletPeer /home/dralves/work/cloudera/kudu/src/tablet/tablet_peer.h:22
      #5 0xb81c7f in std::tr1::_Sp_deleter<kudu::tablet::TabletPeer>::operator()(kudu::tablet::TabletPeer*) const /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/shared_ptr.h:285
      #6 0xb817c8 in std::tr1::Sp_counted_base_impl<kudu::tablet::TabletPeer*, std::tr1::_Sp_deleter<kudu::tablet::TabletPeer>, (_gnu_cxx::_Lock_policy)2>::_M_dispose() /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/shared_ptr.h:257
      #7 0x96b5d6 in std::tr1::Sp_counted_base<(_gnu_cxx::_Lock_policy)2>::_M_release() /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/shared_ptr.h:141
      #8 0x96b3d2 in ~__shared_count /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/shared_ptr.h:341
      #9 0xa2b79f in ~__shared_ptr /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/shared_ptr.h:541
      #10 0x9264b8 in ~shared_ptr /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/shared_ptr.h:985
      #11 0xb5f3cd in ~pair /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/stl_pair.h:96
      #12 0xb6374e in __gnu_cxx::new_allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::tr1::shared_ptr<kudu::tablet::TabletPeer> > >::destroy(std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::tr1::shared_ptr<kudu::tablet::TabletPeer> >*) /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/ext/new_allocator.h:133
      #13 0xb6320f in std::tr1::Hashtable<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::tr1::shared_ptr<kudu::tablet::TabletPeer> >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::tr1::shared_ptr<kudu::tablet::TabletPeer> > >, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::tr1::shared_ptr<kudu::tablet::TabletPeer> > >, std::equal_to<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::tr1::hash<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::tr1::detail::_Mod_range_hashing, std::tr1::detail::_Default_ranged_hash, std::tr1::detail::_Prime_rehash_policy, false, false, true>::_M_deallocate_node(std::tr1::_detail::_Hash_node<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::tr1::shared_ptr<kudu::tablet::TabletPeer> >, false>*) /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/hashtable.h:452
      #14 0xb65360 in std::tr1::Hashtable<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::tr1::shared_ptr<kudu::tablet::TabletPeer> >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::tr1::shared_ptr<kudu::tablet::TabletPeer> > >, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::tr1::shared_ptr<kudu::tablet::TabletPeer> > >, std::equal_to<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::tr1::hash<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::tr1::detail::_Mod_range_hashing, std::tr1::detail::_Default_ranged_hash, std::tr1::detail::_Prime_rehash_policy, false, false, true>::_M_deallocate_nodes(std::tr1::_detail::_Hash_node<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::tr1::shared_ptr<kudu::tablet::TabletPeer> >, false>**, unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/hashtable.h:472
      #15 0xb37cc5 in std::tr1::Hashtable<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::tr1::shared_ptr<kudu::tablet::TabletPeer> >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::tr1::shared_ptr<kudu::tablet::TabletPeer> > >, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::tr1::shared_ptr<kudu::tablet::TabletPeer> > >, std::equal_to<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::tr1::hash<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::tr1::detail::_Mod_range_hashing, std::tr1::detail::_Default_ranged_hash, std::tr1::_detail::_Prime_rehash_policy, false, false, true>::clear() /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tr1/hashtable.h:1121
      #16 0xb223ae in kudu::tserver::TSTabletManager::Shutdown() /home/dralves/work/cloudera/kudu/src/tserver/ts_tablet_manager.cc:338
      #17 0xa9df51 in kudu::tserver::TabletServer::Shutdown() /home/dralves/work/cloudera/kudu/src/tserver/tablet_server.cc:99
      #18 0xa9d159 in ~TabletServer /home/dralves/work/cloudera/kudu/src/tserver/tablet_server.cc:42
      #19 0xa9cdd6 in ~TabletServer /home/dralves/work/cloudera/kudu/src/tserver/tablet_server.cc:41
      #20 0xa5b2f2 in base::DefaultDeleter<kudu::tserver::TabletServer>::operator()(kudu::tserver::TabletServer*) const /home/dralves/work/cloudera/kudu/src/gutil/gscoped_ptr.h:145
      #21 0xa5e2df in ~gscoped_ptr_impl /home/dralves/work/cloudera/kudu/src/gutil/gscoped_ptr.h:228
      #22 0xa58f05 in ~gscoped_ptr /home/dralves/work/cloudera/kudu/src/gutil/gscoped_ptr.h:435
      #23 0xa53848 in ~MiniTabletServer /home/dralves/work/cloudera/kudu/src/tserver/mini_tablet_server.cc:50
      #24 0x9b5e1f in base::DefaultDeleter<kudu::tserver::MiniTabletServer>::operator()(kudu::tserver::MiniTabletServer*) const /home/dralves/work/cloudera/kudu/src/gutil/gscoped_ptr.h:145
      #25 0x9b5bcf in ~gscoped_ptr_impl /home/dralves/work/cloudera/kudu/src/gutil/gscoped_ptr.h:228
      #26 0x9afdd5 in ~gscoped_ptr /home/dralves/work/cloudera/kudu/src/gutil/gscoped_ptr.h:435
      #27 0x9b036f in ~TabletServerTest /home/dralves/work/cloudera/kudu/src/tserver/tablet_server-test-base.h:74
      #28 0x95b2e8 in ~TabletServerTest_TestSnapshotScan_SnapshotInTheFutureFails_Test /home/dralves/work/cloudera/kudu/src/tserver/tablet_server-test.cc:851
      #29 0x95b4b6 in ~TabletServerTest_TestSnapshotScan_SnapshotInTheFutureFails_Test /home/dralves/work/cloudera/kudu/src/tserver/tablet_server-test.cc:851

      previously allocated by thread T0 here:
      #0 0x848ff9 in operator new(unsigned long) ??:?
      #1 0xe80f63 in kudu::tablet::TabletBootstrap::Bootstrap(std::tr1::shared_ptr<kudu::tablet::Tablet>, gscoped_ptr<kudu::log::Log, base::DefaultDeleter<kudu::log::Log> >, gscoped_ptr<kudu::log::OpIdAnchorRegistry, base::DefaultDeleter<kudu::log::OpIdAnchorRegistry> >*) /home/dralves/work/cloudera/kudu/src/tablet/tablet_bootstrap.cc:350
      #2 0xe7ea48 in kudu::tablet::BootstrapTablet(gscoped_ptr<kudu::metadata::TabletMetadata, base::DefaultDeleter<kudu::metadata::TabletMetadata> >, scoped_refptr<kudu::server::Clock> const&, kudu::MetricContext*, gscoped_ptr<kudu::tablet::TabletBootstrapListener, base::DefaultDeleter<kudu::tablet::TabletBootstrapListener> >, std::tr1::shared_ptr<kudu::tablet::Tablet>, gscoped_ptr<kudu::log::Log, base::DefaultDeleter<kudu::log::Log> >, gscoped_ptr<kudu::log::OpIdAnchorRegistry, base::DefaultDeleter<kudu::log::OpIdAnchorRegistry> >*) /home/dralves/work/cloudera/kudu/src/tablet/tablet_bootstrap.cc:266
      #3 0xb15dce in kudu::tserver::TSTabletManager::OpenTablet(kudu::metadata::TabletMetadata*) /home/dralves/work/cloudera/kudu/src/tserver/ts_tablet_manager.cc:281
      #4 0xb1bb8e in kudu::tserver::TSTabletManager::CreateNewTablet(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, kudu::Schema const&, kudu::metadata::QuorumPB, std::tr1::shared_ptr<kudu::tablet::TabletPeer>*) /home/dralves/work/cloudera/kudu/src/tserver/ts_tablet_manager.cc:218
      #5 0xa56471 in kudu::tserver::MiniTabletServer::AddTestTablet(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, kudu::Schema const&, kudu::metadata::QuorumPB const&) /home/dralves/work/cloudera/kudu/src/tserver/mini_tablet_server.cc:95
      #6 0xa55738 in kudu::tserver::MiniTabletServer::AddTestTablet(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, kudu::Schema const&) /home/dralves/work/cloudera/kudu/src/tserver/mini_tablet_server.cc:87
      #7 0x956488 in kudu::tserver::TabletServerTest::StartTabletServer() /home/dralves/work/cloudera/kudu/src/tserver/tablet_server-test-base.h:125
      #8 0x953f65 in kudu::tserver::TabletServerTest::SetUp() /home/dralves/work/cloudera/kudu/src/tserver/tablet_server-test-base.h:98
      #9 0x282fe92 in void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::)(), char const) ??:?
      #10 0x28210f6 in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::)(), char const) ??:?
      #11 0x280df63 in testing::Test::Run() ??:?
      #12 0x280ed8b in testing::TestInfo::Run() ??:?
      #13 0x280f4f4 in testing::TestCase::Run() ??:?
      #14 0x2814f95 in testing::internal::UnitTestImpl::RunAllTests() ??:?
      #15 0x282cd32 in bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::)(), char const) ??:?
      #16 0x2823076 in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::)(), char const) ??:?
      #17 0x2814c91 in testing::UnitTest::Run() ??:?
      #18 0x22b8f12 in main /home/dralves/work/cloudera/kudu/src/util/test_main.cc:15
      #19 0x7f325c7cbde4 in __libc_start_main /build/buildd/eglibc-2.17/csu/libc-start.c:260

      SUMMARY: AddressSanitizer: heap-use-after-free ??:0 ??
      Shadow bytes around the buggy address:
      0x0c0c800263c0: fd fd fd fd fd fd fd fd fa fa fa fa fd fd fd fd
      0x0c0c800263d0: fd fd fd fa fa fa fa fa fd fd fd fd fd fd fd fa
      0x0c0c800263e0: fa fa fa fa fd fd fd fd fd fd fd fd fa fa fa fa
      0x0c0c800263f0: fd fd fd fd fd fd fd fa fa fa fa fa fd fd fd fd
      0x0c0c80026400: fd fd fd fd fa fa fa fa fd fd fd fd fd fd fd fa
      =>0x0c0c80026410: fa fa fa fa fd fd[fd]fd fd fd fd fa fa fa fa fa
      0x0c0c80026420: fd fd fd fd fd fd fd fd fa fa fa fa fd fd fd fd
      0x0c0c80026430: fd fd fd fd fa fa fa fa fd fd fd fd fd fd fd fd
      0x0c0c80026440: fa fa fa fa fd fd fd fd fd fd fd fa fa fa fa fa
      0x0c0c80026450: fd fd fd fd fd fd fd fd fa fa fa fa fd fd fd fd
      0x0c0c80026460: fd fd fd fd fa fa fa fa fd fd fd fd fd fd fd fd
      Shadow byte legend (one shadow byte represents 8 application bytes):
      Addressable: 00
      Partially addressable: 01 02 03 04 05 06 07
      Heap left redzone: fa
      Heap right redzone: fb
      Freed heap region: fd
      Stack left redzone: f1
      Stack mid redzone: f2
      Stack right redzone: f3
      Stack partial redzone: f4
      Stack after return: f5
      Stack use after scope: f8
      Global redzone: f9
      Global init order: f6
      Poisoned by user: f7
      ASan internal: fe
      ==19897==ABORTING

      Attachments

        Activity

          People

            tlipcon Todd Lipcon
            dralves David Alves
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: