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

Mike Percy updated KUDU-1624:
-----------------------------
    Attachment: rpc_stub-test.txt.gz

Attaching a log from another instance of what might be a related problem.

Snippet:

{code}
[ RUN      ] RpcStubTest.TestDumpCallsInFlight
I1207 15:31:10.207124  3749 rpc_stub-test.cc:485] client messenger: 
outbound_connections {
  remote_ip: "0.0.0.0:58661"
  state: NEGOTIATING
  calls_in_flight {
    header {
      call_id: 1
      remote_method {
        service_name: "kudu.rpc_test.CalculatorService"
        method_name: "Sleep"
      }
    }
    micros_elapsed: 1925
  }
}
==================
WARNING: ThreadSanitizer: data race (pid=3749)
  Read of size 8 at 0x7d1c0001e248 by thread T5:
    #0 std::__1::vector<std::__1::pair<StringPiece, scoped_refptr<kudu::Trace> 
>, std::__1::allocator<std::__1::pair<StringPiece, scoped_refptr<kudu::Trace> > 
> >::empty() const 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/tsan/include/c++/v1/vector:646:23
 (libkudu_util.so+0x00000018fca2)
    #1 kudu::Trace::MetricsToJSON(kudu::JsonWriter*) const 
/home/jenkins-slave/workspace/kudu-1/src/kudu/util/trace.cc:218 
(libkudu_util.so+0x00000018fca2)
    #2 kudu::Trace::MetricsAsJSON() const 
/home/jenkins-slave/workspace/kudu-1/src/kudu/util/trace.cc:201:3 
(libkudu_util.so+0x00000018f984)
    #3 kudu::Trace::Dump(std::__1::basic_ostream<char, 
std::__1::char_traits<char> >*, int) const 
/home/jenkins-slave/workspace/kudu-1/src/kudu/util/trace.cc:185:28 
(libkudu_util.so+0x00000018f597)
    #4 kudu::Trace::DumpToString(int) const 
/home/jenkins-slave/workspace/kudu-1/src/kudu/util/trace.cc:194:3 
(libkudu_util.so+0x00000018f7d5)
    #5 kudu::rpc::InboundCall::DumpPB(kudu::rpc::DumpRunningRpcsRequestPB 
const&, kudu::rpc::RpcCallInProgressPB*) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/inbound_call.cc:210:36 
(libkrpc.so+0x00000008af0f)
    #6 kudu::rpc::Connection::DumpPB(kudu::rpc::DumpRunningRpcsRequestPB 
const&, kudu::rpc::RpcConnectionPB*) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/connection.cc:734:10 
(libkrpc.so+0x000000081b22)
    #7 
kudu::rpc::ReactorThread::DumpRunningRpcs(kudu::rpc::DumpRunningRpcsRequestPB 
const&, kudu::rpc::DumpRunningRpcsResponsePB*) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/reactor.cc:173:5 
(libkrpc.so+0x000000099495)
    #8 boost::_mfi::mf2<kudu::Status, kudu::rpc::ReactorThread, 
kudu::rpc::DumpRunningRpcsRequestPB const&, 
kudu::rpc::DumpRunningRpcsResponsePB*>::operator()(kudu::rpc::ReactorThread*, 
kudu::rpc::DumpRunningRpcsRequestPB const&, 
kudu::rpc::DumpRunningRpcsResponsePB*) const 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/common/include/boost/bind/mem_fn_template.hpp:280:29
 (libkrpc.so+0x0000000a2bff)
    #9 kudu::Status 
boost::_bi::list3<boost::_bi::value<kudu::rpc::ReactorThread*>, 
boost::reference_wrapper<kudu::rpc::DumpRunningRpcsRequestPB const>, 
boost::_bi::value<kudu::rpc::DumpRunningRpcsResponsePB*> 
>::operator()<kudu::Status, boost::_mfi::mf2<kudu::Status, 
kudu::rpc::ReactorThread, kudu::rpc::DumpRunningRpcsRequestPB const&, 
kudu::rpc::DumpRunningRpcsResponsePB*>, 
boost::_bi::list0>(boost::_bi::type<kudu::Status>, 
boost::_mfi::mf2<kudu::Status, kudu::rpc::ReactorThread, 
kudu::rpc::DumpRunningRpcsRequestPB const&, 
kudu::rpc::DumpRunningRpcsResponsePB*>&, boost::_bi::list0&, long) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/common/include/boost/bind/bind.hpp:388:16
 (libkrpc.so+0x0000000a2b3f)
    #10 boost::_bi::bind_t<kudu::Status, boost::_mfi::mf2<kudu::Status, 
kudu::rpc::ReactorThread, kudu::rpc::DumpRunningRpcsRequestPB const&, 
kudu::rpc::DumpRunningRpcsResponsePB*>, 
boost::_bi::list3<boost::_bi::value<kudu::rpc::ReactorThread*>, 
boost::reference_wrapper<kudu::rpc::DumpRunningRpcsRequestPB const>, 
boost::_bi::value<kudu::rpc::DumpRunningRpcsResponsePB*> > >::operator()() 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/common/include/boost/bind/bind.hpp:1222:16
 (libkrpc.so+0x0000000a2a99)
    #11 
boost::detail::function::function_obj_invoker0<boost::_bi::bind_t<kudu::Status, 
boost::_mfi::mf2<kudu::Status, kudu::rpc::ReactorThread, 
kudu::rpc::DumpRunningRpcsRequestPB const&, 
kudu::rpc::DumpRunningRpcsResponsePB*>, 
boost::_bi::list3<boost::_bi::value<kudu::rpc::ReactorThread*>, 
boost::reference_wrapper<kudu::rpc::DumpRunningRpcsRequestPB const>, 
boost::_bi::value<kudu::rpc::DumpRunningRpcsResponsePB*> > >, 
kudu::Status>::invoke(boost::detail::function::function_buffer&) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/common/include/boost/function/function_template.hpp:138:18
 (libkrpc.so+0x0000000a2878)
    #12 boost::function0<kudu::Status>::operator()() const 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/common/include/boost/function/function_template.hpp:770:14
 (libkrpc.so+0x00000009f1a9)
    #13 kudu::rpc::RunFunctionTask::Run(kudu::rpc::ReactorThread*) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/reactor.cc:548:15 
(libkrpc.so+0x00000009ef89)
    #14 kudu::rpc::ReactorThread::AsyncHandler(ev::async&, int) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/reactor.cc:209:10 
(libkrpc.so+0x0000000996a4)
    #15 void ev::base<ev_async, 
ev::async>::method_thunk<kudu::rpc::ReactorThread, 
&kudu::rpc::ReactorThread::AsyncHandler>(ev_loop*, ev_async*, int) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/tsan/include/ev++.h:479:7
 (libkrpc.so+0x00000009f523)
    #16 ev_invoke_pending 
/home/jenkins-slave/workspace/kudu-1/thirdparty/src/libev-4.20/ev.c:3155:11 
(libev.so.4+0x0000000097ec)
    #17 ev_run 
/home/jenkins-slave/workspace/kudu-1/thirdparty/src/libev-4.20/ev.c:3555:7 
(libev.so.4+0x00000000a8fd)
    #18 ev::loop_ref::run(int) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/tsan/include/ev++.h:211:7
 (libkrpc.so+0x00000009d038)
    #19 kudu::rpc::ReactorThread::RunThread() 
/home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/reactor.cc:316:9 
(libkrpc.so+0x00000009872c)
    #20 boost::_mfi::mf0<void, 
kudu::rpc::ReactorThread>::operator()(kudu::rpc::ReactorThread*) const 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/common/include/boost/bind/mem_fn_template.hpp:49:29
 (libkrpc.so+0x00000009fbc6)
    #21 void boost::_bi::list1<boost::_bi::value<kudu::rpc::ReactorThread*> 
>::operator()<boost::_mfi::mf0<void, kudu::rpc::ReactorThread>, 
boost::_bi::list0>(boost::_bi::type<void>, boost::_mfi::mf0<void, 
kudu::rpc::ReactorThread>&, boost::_bi::list0&, int) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/common/include/boost/bind/bind.hpp:259:9
 (libkrpc.so+0x00000009fb2a)
    #22 boost::_bi::bind_t<void, boost::_mfi::mf0<void, 
kudu::rpc::ReactorThread>, 
boost::_bi::list1<boost::_bi::value<kudu::rpc::ReactorThread*> > 
>::operator()() 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/common/include/boost/bind/bind.hpp:1222:16
 (libkrpc.so+0x00000009fac3)
    #23 
boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, 
boost::_mfi::mf0<void, kudu::rpc::ReactorThread>, 
boost::_bi::list1<boost::_bi::value<kudu::rpc::ReactorThread*> > >, 
void>::invoke(boost::detail::function::function_buffer&) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/common/include/boost/function/function_template.hpp:159:11
 (libkrpc.so+0x00000009f8e9)
    #24 boost::function0<void>::operator()() const 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/common/include/boost/function/function_template.hpp:770:14
 (libkrpc.so+0x000000079791)
    #25 kudu::Thread::SuperviseThread(void*) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/util/thread.cc:588:3 
(libkudu_util.so+0x000000184974)

  Previous write of size 8 at 0x7d1c0001e248 by thread T9 (mutexes: write 
M13861):
    #0 
_ZNSt3__14swapIPNS_4pairI11StringPiece13scoped_refptrIN4kudu5TraceEEEEEENS_9enable_ifIXaasr21is_move_constructibleIT_EE5valuesr18is_move_assignableISA_EE5valueEvE4typeERSA_SD_
 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/tsan/include/c++/v1/type_traits:4422:9
 (libkudu_util.so+0x000000192500)
    #1 std::__1::vector<std::__1::pair<StringPiece, scoped_refptr<kudu::Trace> 
>, std::__1::allocator<std::__1::pair<StringPiece, scoped_refptr<kudu::Trace> > 
> 
>::__swap_out_circular_buffer(std::__1::__split_buffer<std::__1::pair<StringPiece,
 scoped_refptr<kudu::Trace> >, std::__1::allocator<std::__1::pair<StringPiece, 
scoped_refptr<kudu::Trace> > >&>&) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/tsan/include/c++/v1/vector:893
 (libkudu_util.so+0x000000192500)
    #2 void std::__1::vector<std::__1::pair<StringPiece, 
scoped_refptr<kudu::Trace> >, std::__1::allocator<std::__1::pair<StringPiece, 
scoped_refptr<kudu::Trace> > > >::__emplace_back_slow_path<StringPiece&, 
scoped_refptr<kudu::Trace>&>(StringPiece&, scoped_refptr<kudu::Trace>&) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/tsan/include/c++/v1/vector:1629:5
 (libkudu_util.so+0x0000001922e7)
    #3 void std::__1::vector<std::__1::pair<StringPiece, 
scoped_refptr<kudu::Trace> >, std::__1::allocator<std::__1::pair<StringPiece, 
scoped_refptr<kudu::Trace> > > >::emplace_back<StringPiece&, 
scoped_refptr<kudu::Trace>&>(StringPiece&, scoped_refptr<kudu::Trace>&) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/tsan/include/c++/v1/vector:1648:9
 (libkudu_util.so+0x00000018ff30)
    #4 kudu::Trace::AddChildTrace(StringPiece, kudu::Trace*) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/util/trace.cc:247 
(libkudu_util.so+0x00000018ff30)
    #5 kudu::rpc::CalculatorService::DoSleep(kudu::rpc_test::SleepRequestPB 
const*, kudu::rpc::RpcContext*) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/rpc-test-base.h:295:30 
(rpc_stub-test+0x0000004e281f)
    #6 kudu::rpc::CalculatorService::Sleep(kudu::rpc_test::SleepRequestPB 
const*, kudu::rpc_test::SleepResponsePB*, kudu::rpc::RpcContext*) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/rpc-test-base.h:221:5 
(rpc_stub-test+0x0000004e1ee9)
    #7 
kudu::rpc_test::CalculatorServiceIf::CalculatorServiceIf(scoped_refptr<kudu::MetricEntity>
 const&, scoped_refptr<kudu::rpc::ResultTracker> 
const&)::$_1::operator()(google::protobuf::Message const*, 
google::protobuf::Message*, kudu::rpc::RpcContext*) const 
/home/jenkins-slave/workspace/kudu-1/build/tsan/src/kudu/rpc/rtest.service.cc:94:13
 (librtest_krpc.so+0x000000035704)
    #8 
_ZNSt3__18__invokeIRZN4kudu8rpc_test19CalculatorServiceIfC1ERK13scoped_refptrINS1_12MetricEntityEERKS4_INS1_3rpc13ResultTrackerEEE3$_1JPKN6google8protobuf7MessageEPSI_PNS9_10RpcContextEEEEDTclclsr3std3__1E7forwardIT_Efp_Espclsr3std3__1E7forwardIT0_Efp0_EEEOSO_DpOSP_
 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/tsan/include/c++/v1/type_traits:4287:1
 (librtest_krpc.so+0x0000000356a1)
    #9 void 
std::__1::__invoke_void_return_wrapper<void>::__call<kudu::rpc_test::CalculatorServiceIf::CalculatorServiceIf(scoped_refptr<kudu::MetricEntity>
 const&, scoped_refptr<kudu::rpc::ResultTracker> const&)::$_1&, 
google::protobuf::Message const*, google::protobuf::Message*, 
kudu::rpc::RpcContext*>(kudu::rpc_test::CalculatorServiceIf::CalculatorServiceIf(scoped_refptr<kudu::MetricEntity>
 const&, scoped_refptr<kudu::rpc::ResultTracker> const&)::$_1&, 
google::protobuf::Message const*&&, google::protobuf::Message*&&, 
kudu::rpc::RpcContext*&&) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/tsan/include/c++/v1/__functional_base:359
 (librtest_krpc.so+0x0000000356a1)
    #10 
std::__1::__function::__func<kudu::rpc_test::CalculatorServiceIf::CalculatorServiceIf(scoped_refptr<kudu::MetricEntity>
 const&, scoped_refptr<kudu::rpc::ResultTracker> const&)::$_1, 
std::__1::allocator<kudu::rpc_test::CalculatorServiceIf::CalculatorServiceIf(scoped_refptr<kudu::MetricEntity>
 const&, scoped_refptr<kudu::rpc::ResultTracker> const&)::$_1>, void 
(google::protobuf::Message const*, google::protobuf::Message*, 
kudu::rpc::RpcContext*)>::operator()(google::protobuf::Message const*&&, 
google::protobuf::Message*&&, kudu::rpc::RpcContext*&&) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/tsan/include/c++/v1/functional:1535:12
 (librtest_krpc.so+0x0000000355c4)
    #11 std::__1::function<void (google::protobuf::Message const*, 
google::protobuf::Message*, 
kudu::rpc::RpcContext*)>::operator()(google::protobuf::Message const*, 
google::protobuf::Message*, kudu::rpc::RpcContext*) const 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/tsan/include/c++/v1/functional:1898:12
 (libkrpc.so+0x0000000c9179)
    #12 kudu::rpc::GeneratedServiceIf::Handle(kudu::rpc::InboundCall*) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/service_if.cc:129:5 
(libkrpc.so+0x0000000c8d8f)
    #13 kudu::rpc::ServicePool::RunThread() 
/home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/service_pool.cc:206:15 
(libkrpc.so+0x0000000ca084)
    #14 boost::_mfi::mf0<void, 
kudu::rpc::ServicePool>::operator()(kudu::rpc::ServicePool*) const 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/common/include/boost/bind/mem_fn_template.hpp:49:29
 (libkrpc.so+0x0000000cbb86)
    #15 void boost::_bi::list1<boost::_bi::value<kudu::rpc::ServicePool*> 
>::operator()<boost::_mfi::mf0<void, kudu::rpc::ServicePool>, 
boost::_bi::list0>(boost::_bi::type<void>, boost::_mfi::mf0<void, 
kudu::rpc::ServicePool>&, boost::_bi::list0&, int) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/common/include/boost/bind/bind.hpp:259:9
 (libkrpc.so+0x0000000cbaea)
    #16 boost::_bi::bind_t<void, boost::_mfi::mf0<void, 
kudu::rpc::ServicePool>, 
boost::_bi::list1<boost::_bi::value<kudu::rpc::ServicePool*> > >::operator()() 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/common/include/boost/bind/bind.hpp:1222:16
 (libkrpc.so+0x0000000cba83)
    #17 
boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, 
boost::_mfi::mf0<void, kudu::rpc::ServicePool>, 
boost::_bi::list1<boost::_bi::value<kudu::rpc::ServicePool*> > >, 
void>::invoke(boost::detail::function::function_buffer&) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/common/include/boost/function/function_template.hpp:159:11
 (libkrpc.so+0x0000000cb8a9)
    #18 boost::function0<void>::operator()() const 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/common/include/boost/function/function_template.hpp:770:14
 (libkrpc.so+0x000000079791)
    #19 kudu::Thread::SuperviseThread(void*) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/util/thread.cc:588:3 
(libkudu_util.so+0x000000184974)

  Location is heap block of size 104 at 0x7d1c0001e220 allocated by thread T5:
    #0 operator new(unsigned long) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/src/llvm-3.9.0.src/projects/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc:41
 (rpc_stub-test+0x0000004cec33)
    #1 kudu::rpc::InboundCall::InboundCall(kudu::rpc::Connection*) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/inbound_call.cc:48:12 
(libkrpc.so+0x0000000892e7)
    #2 
kudu::rpc::Connection::HandleIncomingCall(gscoped_ptr<kudu::rpc::InboundTransfer,
 kudu::DefaultDeleter<kudu::rpc::InboundTransfer> >) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/connection.cc:497:37 
(libkrpc.so+0x0000000804d7)
    #3 kudu::rpc::Connection::ReadHandler(ev::io&, int) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/connection.cc:478:7 
(libkrpc.so+0x00000007fb94)
    #4 void ev::base<ev_io, ev::io>::method_thunk<kudu::rpc::Connection, 
&kudu::rpc::Connection::ReadHandler>(ev_loop*, ev_io*, int) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/tsan/include/ev++.h:479:7
 (libkrpc.so+0x0000000865ca)
    #5 ev_invoke_pending 
/home/jenkins-slave/workspace/kudu-1/thirdparty/src/libev-4.20/ev.c:3155:11 
(libev.so.4+0x0000000097ec)
    #6 ev_run 
/home/jenkins-slave/workspace/kudu-1/thirdparty/src/libev-4.20/ev.c:3555:7 
(libev.so.4+0x00000000a8fd)
    #7 ev::loop_ref::run(int) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/tsan/include/ev++.h:211:7
 (libkrpc.so+0x00000009d038)
    #8 kudu::rpc::ReactorThread::RunThread() 
/home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/reactor.cc:316:9 
(libkrpc.so+0x00000009872c)
    #9 boost::_mfi::mf0<void, 
kudu::rpc::ReactorThread>::operator()(kudu::rpc::ReactorThread*) const 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/common/include/boost/bind/mem_fn_template.hpp:49:29
 (libkrpc.so+0x00000009fbc6)
    #10 void boost::_bi::list1<boost::_bi::value<kudu::rpc::ReactorThread*> 
>::operator()<boost::_mfi::mf0<void, kudu::rpc::ReactorThread>, 
boost::_bi::list0>(boost::_bi::type<void>, boost::_mfi::mf0<void, 
kudu::rpc::ReactorThread>&, boost::_bi::list0&, int) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/common/include/boost/bind/bind.hpp:259:9
 (libkrpc.so+0x00000009fb2a)
    #11 boost::_bi::bind_t<void, boost::_mfi::mf0<void, 
kudu::rpc::ReactorThread>, 
boost::_bi::list1<boost::_bi::value<kudu::rpc::ReactorThread*> > 
>::operator()() 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/common/include/boost/bind/bind.hpp:1222:16
 (libkrpc.so+0x00000009fac3)
    #12 
boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, 
boost::_mfi::mf0<void, kudu::rpc::ReactorThread>, 
boost::_bi::list1<boost::_bi::value<kudu::rpc::ReactorThread*> > >, 
void>::invoke(boost::detail::function::function_buffer&) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/common/include/boost/function/function_template.hpp:159:11
 (libkrpc.so+0x00000009f8e9)
    #13 boost::function0<void>::operator()() const 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/common/include/boost/function/function_template.hpp:770:14
 (libkrpc.so+0x000000079791)
    #14 kudu::Thread::SuperviseThread(void*) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/util/thread.cc:588:3 
(libkudu_util.so+0x000000184974)

  Mutex M13861 (0x7d1c0001e230) created at:
    #0 __tsan_atomic32_compare_exchange_strong 
/home/jenkins-slave/workspace/kudu-1/thirdparty/src/llvm-3.9.0.src/projects/compiler-rt/lib/tsan/rtl/tsan_interface_atomic.cc:756
 (rpc_stub-test+0x000000490867)
    #1 base::subtle::Acquire_CompareAndSwap(int volatile*, int, int) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/gutil/atomicops-internals-tsan.h:85:3
 (rpc_stub-test+0x0000004e3947)
    #2 base::SpinLock::Lock() 
/home/jenkins-slave/workspace/kudu-1/src/kudu/gutil/spinlock.h:73:9 
(rpc_stub-test+0x0000004e38c0)
    #3 kudu::simple_spinlock::lock() 
/home/jenkins-slave/workspace/kudu-1/src/kudu/util/locks.h:45:8 
(rpc_stub-test+0x0000004e3889)
    #4 
std::__1::lock_guard<kudu::simple_spinlock>::lock_guard(kudu::simple_spinlock&) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/tsan/include/c++/v1/__mutex_base:108:27
 (libkudu_util.so+0x00000018ed5b)
    #5 kudu::Trace::AddEntry(kudu::TraceEntry*) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/util/trace.cc:110 
(libkudu_util.so+0x00000018ed5b)
    #6 kudu::Trace::SubstituteAndTrace(char const*, int, StringPiece, 
strings::internal::SubstituteArg const&, strings::internal::SubstituteArg 
const&, strings::internal::SubstituteArg const&, 
strings::internal::SubstituteArg const&, strings::internal::SubstituteArg 
const&, strings::internal::SubstituteArg const&, 
strings::internal::SubstituteArg const&, strings::internal::SubstituteArg 
const&, strings::internal::SubstituteArg const&, 
strings::internal::SubstituteArg const&) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/util/trace.cc:95:3 
(libkudu_util.so+0x00000018ec6e)
    #7 
kudu::rpc::ServicePool::QueueInboundCall(gscoped_ptr<kudu::rpc::InboundCall, 
kudu::DefaultDeleter<kudu::rpc::InboundCall> >) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/service_pool.cc:143:3 
(libkrpc.so+0x0000000cab1b)
    #8 
kudu::rpc::Messenger::QueueInboundCall(gscoped_ptr<kudu::rpc::InboundCall, 
kudu::DefaultDeleter<kudu::rpc::InboundCall> >) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/messenger.cc:262:3 
(libkrpc.so+0x00000008ef4d)
    #9 
kudu::rpc::Connection::HandleIncomingCall(gscoped_ptr<kudu::rpc::InboundTransfer,
 kudu::DefaultDeleter<kudu::rpc::InboundTransfer> >) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/connection.cc:515:44 
(libkrpc.so+0x0000000805e2)
    #10 kudu::rpc::Connection::ReadHandler(ev::io&, int) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/connection.cc:478:7 
(libkrpc.so+0x00000007fb94)
    #11 void ev::base<ev_io, ev::io>::method_thunk<kudu::rpc::Connection, 
&kudu::rpc::Connection::ReadHandler>(ev_loop*, ev_io*, int) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/tsan/include/ev++.h:479:7
 (libkrpc.so+0x0000000865ca)
    #12 ev_invoke_pending 
/home/jenkins-slave/workspace/kudu-1/thirdparty/src/libev-4.20/ev.c:3155:11 
(libev.so.4+0x0000000097ec)
    #13 ev_run 
/home/jenkins-slave/workspace/kudu-1/thirdparty/src/libev-4.20/ev.c:3555:7 
(libev.so.4+0x00000000a8fd)
    #14 ev::loop_ref::run(int) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/tsan/include/ev++.h:211:7
 (libkrpc.so+0x00000009d038)
    #15 kudu::rpc::ReactorThread::RunThread() 
/home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/reactor.cc:316:9 
(libkrpc.so+0x00000009872c)
    #16 boost::_mfi::mf0<void, 
kudu::rpc::ReactorThread>::operator()(kudu::rpc::ReactorThread*) const 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/common/include/boost/bind/mem_fn_template.hpp:49:29
 (libkrpc.so+0x00000009fbc6)
    #17 void boost::_bi::list1<boost::_bi::value<kudu::rpc::ReactorThread*> 
>::operator()<boost::_mfi::mf0<void, kudu::rpc::ReactorThread>, 
boost::_bi::list0>(boost::_bi::type<void>, boost::_mfi::mf0<void, 
kudu::rpc::ReactorThread>&, boost::_bi::list0&, int) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/common/include/boost/bind/bind.hpp:259:9
 (libkrpc.so+0x00000009fb2a)
    #18 boost::_bi::bind_t<void, boost::_mfi::mf0<void, 
kudu::rpc::ReactorThread>, 
boost::_bi::list1<boost::_bi::value<kudu::rpc::ReactorThread*> > 
>::operator()() 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/common/include/boost/bind/bind.hpp:1222:16
 (libkrpc.so+0x00000009fac3)
    #19 
boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, 
boost::_mfi::mf0<void, kudu::rpc::ReactorThread>, 
boost::_bi::list1<boost::_bi::value<kudu::rpc::ReactorThread*> > >, 
void>::invoke(boost::detail::function::function_buffer&) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/common/include/boost/function/function_template.hpp:159:11
 (libkrpc.so+0x00000009f8e9)
    #20 boost::function0<void>::operator()() const 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/common/include/boost/function/function_template.hpp:770:14
 (libkrpc.so+0x000000079791)
    #21 kudu::Thread::SuperviseThread(void*) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/util/thread.cc:588:3 
(libkudu_util.so+0x000000184974)

  Thread T5 'rpc reactor-396' (tid=3965, running) created by main thread at:
    #0 pthread_create 
/home/jenkins-slave/workspace/kudu-1/thirdparty/src/llvm-3.9.0.src/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:902
 (rpc_stub-test+0x0000004475b6)
    #1 kudu::Thread::StartThread(std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> > const&, 
std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> > const&, boost::function<void ()> const&, unsigned 
long, scoped_refptr<kudu::Thread>*) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/util/thread.cc:511:15 
(libkudu_util.so+0x00000018420c)
    #2 kudu::Status kudu::Thread::Create<void (kudu::rpc::ReactorThread::*)(), 
kudu::rpc::ReactorThread*>(std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> > const&, 
std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> > const&, void (kudu::rpc::ReactorThread::* 
const&)(), kudu::rpc::ReactorThread* const&, scoped_refptr<kudu::Thread>*) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/util/thread.h:158:12 
(libkrpc.so+0x00000009ca97)
    #3 kudu::rpc::ReactorThread::Init() 
/home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/reactor.cc:114:10 
(libkrpc.so+0x000000098582)
    #4 kudu::rpc::Reactor::Init() 
/home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/reactor.cc:504:18 
(libkrpc.so+0x00000009bd83)
    #5 kudu::rpc::Messenger::Init() 
/home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/messenger.cc:312:5 
(libkrpc.so+0x00000008e092)
    #6 
kudu::rpc::MessengerBuilder::Build(std::__1::shared_ptr<kudu::rpc::Messenger>*) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/messenger.cc:135:35 
(libkrpc.so+0x00000008dd68)
    #7 kudu::rpc::RpcTestBase::CreateMessenger(std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, bool) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/rpc-test-base.h:437:5 
(rpc_stub-test+0x0000004e0905)
    #8 void 
kudu::rpc::RpcTestBase::DoStartTestServer<kudu::rpc::CalculatorService>(kudu::Sockaddr*,
 bool) /home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/rpc-test-base.h:541:25 
(rpc_stub-test+0x0000004e0cdc)
    #9 
kudu::rpc::RpcTestBase::StartTestServerWithGeneratedCode(kudu::Sockaddr*, bool) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/rpc-test-base.h:514:5 
(rpc_stub-test+0x0000004e067a)
    #10 kudu::rpc::RpcStubTest::SetUp() 
/home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/rpc_stub-test.cc:57:5 
(rpc_stub-test+0x0000004dbb89)
    #11 void 
testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, 
void>(testing::Test*, void (testing::Test::*)(), char const*) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/src/gmock-1.7.0/gtest/src/gtest.cc:2078:10
 (libgmock.so+0x000000048243)
    #12 void 
testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, 
void>(testing::Test*, void (testing::Test::*)(), char const*) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/src/gmock-1.7.0/gtest/src/gtest.cc:2114
 (libgmock.so+0x000000048243)
    #13 testing::Test::Run() 
/home/jenkins-slave/workspace/kudu-1/thirdparty/src/gmock-1.7.0/gtest/src/gtest.cc:2146:3
 (libgmock.so+0x00000002cddd)
    #14 testing::TestInfo::Run() 
/home/jenkins-slave/workspace/kudu-1/thirdparty/src/gmock-1.7.0/gtest/src/gtest.cc:2326:11
 (libgmock.so+0x00000002dea7)
    #15 testing::TestCase::Run() 
/home/jenkins-slave/workspace/kudu-1/thirdparty/src/gmock-1.7.0/gtest/src/gtest.cc:2444:28
 (libgmock.so+0x00000002eaf8)
    #16 testing::internal::UnitTestImpl::RunAllTests() 
/home/jenkins-slave/workspace/kudu-1/thirdparty/src/gmock-1.7.0/gtest/src/gtest.cc:4315:43
 (libgmock.so+0x000000038f51)
    #17 bool 
testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,
 bool>(testing::internal::UnitTestImpl*, bool 
(testing::internal::UnitTestImpl::*)(), char const*) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/src/gmock-1.7.0/gtest/src/gtest.cc:2078:10
 (libgmock.so+0x000000048df3)
    #18 bool 
testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,
 bool>(testing::internal::UnitTestImpl*, bool 
(testing::internal::UnitTestImpl::*)(), char const*) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/src/gmock-1.7.0/gtest/src/gtest.cc:2114
 (libgmock.so+0x000000048df3)
    #19 testing::UnitTest::Run() 
/home/jenkins-slave/workspace/kudu-1/thirdparty/src/gmock-1.7.0/gtest/src/gtest.cc:3926:10
 (libgmock.so+0x000000038988)
    #20 RUN_ALL_TESTS() 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/tsan/include/gtest/gtest.h:2288:46
 (libkudu_test_main.so+0x000000002e9b)
    #21 main 
/home/jenkins-slave/workspace/kudu-1/src/kudu/util/test_main.cc:83:13 
(libkudu_test_main.so+0x00000000291f)

  Thread T9 'rpc worker-3971' (tid=3971, running) created by main thread at:
    #0 pthread_create 
/home/jenkins-slave/workspace/kudu-1/thirdparty/src/llvm-3.9.0.src/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:902
 (rpc_stub-test+0x0000004475b6)
    #1 kudu::Thread::StartThread(std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> > const&, 
std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> > const&, boost::function<void ()> const&, unsigned 
long, scoped_refptr<kudu::Thread>*) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/util/thread.cc:511:15 
(libkudu_util.so+0x00000018420c)
    #2 kudu::Status kudu::Thread::Create<void (kudu::rpc::ServicePool::*)(), 
kudu::rpc::ServicePool*>(std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> > const&, 
std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> > const&, void (kudu::rpc::ServicePool::* const&)(), 
kudu::rpc::ServicePool* const&, scoped_refptr<kudu::Thread>*) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/util/thread.h:158:12 
(libkrpc.so+0x0000000cafd7)
    #3 kudu::rpc::ServicePool::Init(int) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/service_pool.cc:80:5 
(libkrpc.so+0x0000000c9c47)
    #4 void 
kudu::rpc::RpcTestBase::DoStartTestServer<kudu::rpc::CalculatorService>(kudu::Sockaddr*,
 bool) /home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/rpc-test-base.h:554:5 
(rpc_stub-test+0x0000004e1393)
    #5 
kudu::rpc::RpcTestBase::StartTestServerWithGeneratedCode(kudu::Sockaddr*, bool) 
/home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/rpc-test-base.h:514:5 
(rpc_stub-test+0x0000004e067a)
    #6 kudu::rpc::RpcStubTest::SetUp() 
/home/jenkins-slave/workspace/kudu-1/src/kudu/rpc/rpc_stub-test.cc:57:5 
(rpc_stub-test+0x0000004dbb89)
    #7 void 
testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, 
void>(testing::Test*, void (testing::Test::*)(), char const*) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/src/gmock-1.7.0/gtest/src/gtest.cc:2078:10
 (libgmock.so+0x000000048243)
    #8 void 
testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, 
void>(testing::Test*, void (testing::Test::*)(), char const*) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/src/gmock-1.7.0/gtest/src/gtest.cc:2114
 (libgmock.so+0x000000048243)
    #9 testing::Test::Run() 
/home/jenkins-slave/workspace/kudu-1/thirdparty/src/gmock-1.7.0/gtest/src/gtest.cc:2146:3
 (libgmock.so+0x00000002cddd)
    #10 testing::TestInfo::Run() 
/home/jenkins-slave/workspace/kudu-1/thirdparty/src/gmock-1.7.0/gtest/src/gtest.cc:2326:11
 (libgmock.so+0x00000002dea7)
    #11 testing::TestCase::Run() 
/home/jenkins-slave/workspace/kudu-1/thirdparty/src/gmock-1.7.0/gtest/src/gtest.cc:2444:28
 (libgmock.so+0x00000002eaf8)
    #12 testing::internal::UnitTestImpl::RunAllTests() 
/home/jenkins-slave/workspace/kudu-1/thirdparty/src/gmock-1.7.0/gtest/src/gtest.cc:4315:43
 (libgmock.so+0x000000038f51)
    #13 bool 
testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,
 bool>(testing::internal::UnitTestImpl*, bool 
(testing::internal::UnitTestImpl::*)(), char const*) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/src/gmock-1.7.0/gtest/src/gtest.cc:2078:10
 (libgmock.so+0x000000048df3)
    #14 bool 
testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,
 bool>(testing::internal::UnitTestImpl*, bool 
(testing::internal::UnitTestImpl::*)(), char const*) 
/home/jenkins-slave/workspace/kudu-1/thirdparty/src/gmock-1.7.0/gtest/src/gtest.cc:2114
 (libgmock.so+0x000000048df3)
    #15 testing::UnitTest::Run() 
/home/jenkins-slave/workspace/kudu-1/thirdparty/src/gmock-1.7.0/gtest/src/gtest.cc:3926:10
 (libgmock.so+0x000000038988)
    #16 RUN_ALL_TESTS() 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/tsan/include/gtest/gtest.h:2288:46
 (libkudu_test_main.so+0x000000002e9b)
    #17 main 
/home/jenkins-slave/workspace/kudu-1/src/kudu/util/test_main.cc:83:13 
(libkudu_test_main.so+0x00000000291f)

SUMMARY: ThreadSanitizer: data race 
/home/jenkins-slave/workspace/kudu-1/thirdparty/installed/tsan/include/c++/v1/vector:646:23
 in std::__1::vector<std::__1::pair<StringPiece, scoped_refptr<kudu::Trace> >, 
std::__1::allocator<std::__1::pair<StringPiece, scoped_refptr<kudu::Trace> > > 
>::empty() const
{code}

> Possible data races in util/trace
> ---------------------------------
>
>                 Key: KUDU-1624
>                 URL: https://issues.apache.org/jira/browse/KUDU-1624
>             Project: Kudu
>          Issue Type: Bug
>          Components: util
>    Affects Versions: 1.0.0
>            Reporter: Adar Dembo
>         Attachments: rpc_stub-test.txt, rpc_stub-test.txt.gz
>
>
> I'm running clang 3.9 against a Kudu source tree using libcpp, so it's 
> possible this is partly due to differences in how libstdc++ implements 
> std::vector. Or maybe it's real.
> At first glance, it looks like the problem is that 
> Trace::MetricsToJSON(JsonWriter*) doesn't hold lock_ while accessing 
> child_traces_. It would need to some refactoring to avoid taking lock_ 
> recursively, though, since it's a recursive function.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to