Todd Lipcon created KUDU-2388:
---------------------------------
Summary: TSAN race in MaintenanceManager::UnregisterOp
Key: KUDU-2388
URL: https://issues.apache.org/jira/browse/KUDU-2388
Project: Kudu
Issue Type: Bug
Components: tserver
Reporter: Todd Lipcon
Saw a flaky failure of
TabletReplacementITest.TestMasterTombstoneOldReplicaOnReport with the following
TSAN race:
{code}
WARNING: ThreadSanitizer: data race (pid=17822) Read of size 1 at
0x7b4c000054e8 by thread T59 (mutexes: write M1750):
...
#3
strings::internal::SubstituteArg::SubstituteArg(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&)
/data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/gutil/strings/substitute.h:76
(libtserver.so+0x9edb0)
#4 kudu::MaintenanceManager::LogPrefix() const
/data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/util/maintenance_manager.cc:545:31
(libkudu_util.so+0x167791)
#5 kudu::MaintenanceManager::UnregisterOp(kudu::MaintenanceOp*)
/data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/util/maintenance_manager.cc:235:3
(libkudu_util.so+0x165963)
#6 kudu::MaintenanceOp::Unregister()
/data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/util/maintenance_manager.cc:123:13
(libkudu_util.so+0x1654fe)
#7 kudu::tablet::Tablet::UnregisterMaintenanceOps()
/data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/tablet/tablet.cc:1405:9
(libtablet.so+0xfb5af)
#8 kudu::tablet::TabletReplica::Stop()
/data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/tablet/tablet_replica.cc:271:25
(libtablet.so+0x146e66)
#9
kudu::tserver::TSTabletManager::DeleteTablet(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&,
kudu::tablet::TabletDataState, boost::optional<long> const&,
kudu::tserver::TabletServerErrorPB_Code*)
/data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/tserver/ts_tablet_manager.cc:830:12
(libtserver.so+0x106d62)
Previous write of size 8 at 0x7b4c000054e8 by main thread:
#0 memcpy
/data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/src/llvm-4.0.0.src/projects/compiler-rt/lib/tsan/../sanitizer_common/sanitizer_common_interceptors.inc:655
(kudu-tserver+0x449e4c)
#1 std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> >::__move_assign(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >&,
std::__1::integral_constant<bool, true>)
/data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/installed/tsan/include/c++/v1/string:2044:18
(libkudu_util.so+0x16664d)
#2 std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> >::operator=(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >&&)
/data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/installed/tsan/include/c++/v1/string:2055
(libkudu_util.so+0x16664d)
#3 kudu::MaintenanceManager::Init(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >)
/data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/util/maintenance_manager.cc:169
(libkudu_util.so+0x16664d)
...
Location is heap block of size 416 at 0x7b4c00005400 allocated by main thread:
#0 operator new(unsigned long)
/data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/src/llvm-4.0.0.src/projects/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc:41
(kudu-tserver+0x4c1163)
#1
kudu::tserver::TabletServer::TabletServer(kudu::tserver::TabletServerOptions
const&)
/data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/tserver/tablet_server.cc:60:26
(libtserver.so+0xda8ff)
#2 kudu::tserver::TabletServerMain(int, char**)
/data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/tserver/tablet_server_main.cc:78:16
(kudu-tserver+0x4c3ab3)
#3 main
/data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/tserver/tablet_server_main.cc:99:10
(kudu-tserver+0x4c37ee)
{code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)