[ 
https://issues.apache.org/jira/browse/KUDU-2388?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Todd Lipcon updated KUDU-2388:
------------------------------
       Resolution: Fixed
    Fix Version/s: 1.8.0
           Status: Resolved  (was: In Review)

> 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
>            Assignee: Todd Lipcon
>            Priority: Major
>             Fix For: 1.8.0
>
>
> 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)

Reply via email to