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

Flaky test security-itest

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Cannot Reproduce
    • 1.7.0
    • NA
    • security, test
    • None

    Description

      While running on master branch, security-itest failed with 'WARNING: ThreadSanitizer: data race'. Attached the full log.

      WARNING: ThreadSanitizer: data race (pid=785)
       Write of size 8 at 0x7b0800000d68 by main thread:
       #0 operator delete(void*) /data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/src/llvm-6.0.0.src/projects/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc:119 (security-itest+0x4eb7a1)
       #1 std::__1::__libcpp_deallocate(void*) /data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/installed/tsan/include/c++/v1/new:236:3 (libkrpc.so+0x8d8ba)
       #2 std::__1::allocator<std::__1::__tree_node<kudu::rpc::RpcFeatureFlag, void*> >::deallocate(std::__1::__tree_node<kudu::rpc::RpcFeatureFlag, void*>*, unsigned long) /data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/installed/tsan/include/c++/v1/memory:1796 (libkrpc.so+0x8d8ba)
       #3 std::__1::allocator_traits<std::__1::allocator<std::__1::__tree_node<kudu::rpc::RpcFeatureFlag, void*> > >::deallocate(std::__1::allocator<std::__1::__tree_node<kudu::rpc::RpcFeatureFlag, void*> >&, std::__1::__tree_node<kudu::rpc::RpcFeatureFlag, void*>*, unsigned long) /data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/installed/tsan/include/c++/v1/memory:1555 (libkrpc.so+0x8d8ba)
       #4 std::__1::__tree<kudu::rpc::RpcFeatureFlag, std::__1::less<kudu::rpc::RpcFeatureFlag>, std::__1::allocator<kudu::rpc::RpcFeatureFlag> >::destroy(std::__1::__tree_node<kudu::rpc::RpcFeatureFlag, void*>*) /data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/installed/tsan/include/c++/v1/__tree:1834 (libkrpc.so+0x8d8ba)
       #5 std::__1::__tree<kudu::rpc::RpcFeatureFlag, std::__1::less<kudu::rpc::RpcFeatureFlag>, std::__1::allocator<kudu::rpc::RpcFeatureFlag> >::~__tree() /data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/installed/tsan/include/c++/v1/__tree:1821:3 (libkrpc.so+0x8d856)
       #6 std::__1::set<kudu::rpc::RpcFeatureFlag, std::__1::less<kudu::rpc::RpcFeatureFlag>, std::__1::allocator<kudu::rpc::RpcFeatureFlag> >::~set() /data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/installed/tsan/include/c++/v1/set:400:28 (libkrpc.so+0x8bc79)
       #7 cxa_at_exit_wrapper(void*) /data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/src/llvm-6.0.0.src/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:386 (security-itest+0x44c2b3)
      
      Previous read of size 8 at 0x7b0800000d68 by thread T5:
       #0 std::__1::__tree_end_node<std::__1::__tree_node_base<void*>*>* std::__1::__tree_next_iter<std::__1::__tree_end_node<std::__1::__tree_node_base<void*>*>*, std::__1::__tree_node_base<void*>*>(std::__1::__tree_node_base<void*>*) /data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/installed/tsan/include/c++/v1/__tree:185:14 (libkrpc.so+0x90356)
       #1 std::__1::__tree_const_iterator<kudu::rpc::RpcFeatureFlag, std::__1::__tree_node<kudu::rpc::RpcFeatureFlag, void*>*, long>::operator++() /data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/installed/tsan/include/c++/v1/__tree:921 (libkrpc.so+0x90356)
       #2 void std::__1::__tree<kudu::rpc::RpcFeatureFlag, std::__1::less<kudu::rpc::RpcFeatureFlag>, std::__1::allocator<kudu::rpc::RpcFeatureFlag> >::__assign_multi<std::__1::__tree_const_iterator<kudu::rpc::RpcFeatureFlag, std::__1::__tree_node<kudu::rpc::RpcFeatureFlag, void*>*, long> >(std::__1::__tree_const_iterator<kudu::rpc::RpcFeatureFlag, std::__1::__tree_node<kudu::rpc::RpcFeatureFlag, void*>*, long>, std::__1::__tree_const_iterator<kudu::rpc::RpcFeatureFlag, std::__1::__tree_node<kudu::rpc::RpcFeatureFlag, void*>*, long>) /data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/installed/tsan/include/c++/v1/__tree:1667 (libkrpc.so+0x90356)
       #3 std::__1::__tree<kudu::rpc::RpcFeatureFlag, std::__1::less<kudu::rpc::RpcFeatureFlag>, std::__1::allocator<kudu::rpc::RpcFeatureFlag> >::operator=(std::__1::__tree<kudu::rpc::RpcFeatureFlag, std::__1::less<kudu::rpc::RpcFeatureFlag>, std::__1::allocator<kudu::rpc::RpcFeatureFlag> > const&) /data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/installed/tsan/include/c++/v1/__tree:1575:9 (libkrpc.so+0x901a4)
       #4 std::__1::set<kudu::rpc::RpcFeatureFlag, std::__1::less<kudu::rpc::RpcFeatureFlag>, std::__1::allocator<kudu::rpc::RpcFeatureFlag> >::operator=(std::__1::set<kudu::rpc::RpcFeatureFlag, std::__1::less<kudu::rpc::RpcFeatureFlag>, std::__1::allocator<kudu::rpc::RpcFeatureFlag> > const&) /data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/installed/tsan/include/c++/v1/set:485:21 (libkrpc.so+0x870ba)
       #5 kudu::rpc::ClientNegotiation::SendNegotiate() /data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/rpc/client_negotiation.cc:306 (libkrpc.so+0x870ba)
       #6 kudu::rpc::ClientNegotiation::Negotiate(std::__1::unique_ptr<kudu::rpc::ErrorStatusPB, std::__1::default_delete<kudu::rpc::ErrorStatusPB> >*) /data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/rpc/client_negotiation.cc:171:5 (libkrpc.so+0x8693a)
       #7 kudu::rpc::DoClientNegotiation(kudu::rpc::Connection*, kudu::TriStateFlag, kudu::TriStateFlag, kudu::MonoTime, std::__1::unique_ptr<kudu::rpc::ErrorStatusPB, std::__1::default_delete<kudu::rpc::ErrorStatusPB> >*) /data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/rpc/negotiation.cc:217:3 (libkrpc.so+0xb02b4)
       #8 kudu::rpc::Negotiation::RunNegotiation(scoped_refptr<kudu::rpc::Connection> const&, kudu::TriStateFlag, kudu::TriStateFlag, kudu::MonoTime) /data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/rpc/negotiation.cc:294:9 (libkrpc.so+0xaf42b)
       #9 kudu::internal::RunnableAdapter<void (*)(scoped_refptr<kudu::rpc::Connection> const&, kudu::TriStateFlag, kudu::TriStateFlag, kudu::MonoTime)>::Run(scoped_refptr<kudu::rpc::Connection> const&, kudu::TriStateFlag const&, kudu::TriStateFlag const&, kudu::MonoTime const&) /data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/gutil/bind_internal.h:356:12 (libkrpc.so+0xc853d)
       #10 kudu::internal::InvokeHelper<false, void, kudu::internal::RunnableAdapter<void (*)(scoped_refptr<kudu::rpc::Connection> const&, kudu::TriStateFlag, kudu::TriStateFlag, kudu::MonoTime)>, void ()(kudu::rpc::Connection*, kudu::TriStateFlag const&, kudu::TriStateFlag const&, kudu::MonoTime const&)>::MakeItSo(kudu::internal::RunnableAdapter<void (*)(scoped_refptr<kudu::rpc::Connection> const&, kudu::TriStateFlag, kudu::TriStateFlag, kudu::MonoTime)>, kudu::rpc::Connection*, kudu::TriStateFlag const&, kudu::TriStateFlag const&, kudu::MonoTime const&) /data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/gutil/bind_internal.h:925:14 (libkrpc.so+0xc83df)
       #11 kudu::internal::Invoker<4, kudu::internal::BindState<kudu::internal::RunnableAdapter<void (*)(scoped_refptr<kudu::rpc::Connection> const&, kudu::TriStateFlag, kudu::TriStateFlag, kudu::MonoTime)>, void ()(scoped_refptr<kudu::rpc::Connection> const&, kudu::TriStateFlag, kudu::TriStateFlag, kudu::MonoTime), void ()(scoped_refptr<kudu::rpc::Connection>, kudu::TriStateFlag, kudu::TriStateFlag, kudu::MonoTime)>, void ()(scoped_refptr<kudu::rpc::Connection> const&, kudu::TriStateFlag, kudu::TriStateFlag, kudu::MonoTime)>::Run(kudu::internal::BindStateBase*) /data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/gutil/bind_internal.h:1459:12 (libkrpc.so+0xc8299)
       #12 kudu::Callback<void ()()>::Run() const /data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/gutil/callback.h:396:12 (libconsensus.so+0x9ed1d)
       #13 kudu::ClosureRunnable::Run() /data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/util/threadpool.cc:76:9 (libkudu_util.so+0x1c8b3d)
       #14 kudu::ThreadPool::DispatchThread() /data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/util/threadpool.cc:686:22 (libkudu_util.so+0x1c4868)
       #15 boost::_mfi::mf0<void, kudu::ThreadPool>::operator()(kudu::ThreadPool*) const /data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/installed/tsan/include/boost/bind/mem_fn_template.hpp:49:29 (libkudu_util.so+0x1cf7d9)
       #16 void boost::_bi::list1<boost::_bi::value<kudu::ThreadPool*> >::operator()<boost::_mfi::mf0<void, kudu::ThreadPool>, boost::_bi::list0>(boost::_bi::type<void>, boost::_mfi::mf0<void, kudu::ThreadPool>&, boost::_bi::list0&, int) /data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/installed/tsan/include/boost/bind/bind.hpp:259:9 (libkudu_util.so+0x1cf72a)
       #17 boost::_bi::bind_t<void, boost::_mfi::mf0<void, kudu::ThreadPool>, boost::_bi::list1<boost::_bi::value<kudu::ThreadPool*> > >::operator()() /data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/installed/tsan/include/boost/bind/bind.hpp:1222:16 (libkudu_util.so+0x1cf6b3)
       #18 boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, boost::_mfi::mf0<void, kudu::ThreadPool>, boost::_bi::list1<boost::_bi::value<kudu::ThreadPool*> > >, void>::invoke(boost::detail::function::function_buffer&) /data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/installed/tsan/include/boost/function/function_template.hpp:159:11 (libkudu_util.so+0x1cf4a9)
       #19 boost::function0<void>::operator()() const /data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/installed/tsan/include/boost/function/function_template.hpp:770:14 (libkrpc.so+0xb64b1)
       #20 kudu::Thread::SuperviseThread(void*) /data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/util/thread.cc:603:3 (libkudu_util.so+0x1bbfc4)
      
      Thread T5 'client-negotiat' (tid=15200, finished) created by thread T3 at:
       #0 pthread_create /data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/src/llvm-6.0.0.src/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:992 (security-itest+0x47dceb)
       #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>*) /data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/util/thread.cc:556:15 (libkudu_util.so+0x1bb9ef)
       #2 kudu::Status kudu::Thread::Create<void (kudu::ThreadPool::*)(), kudu::ThreadPool*>(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::ThreadPool::* const&)(), kudu::ThreadPool* const&, scoped_refptr<kudu::Thread>*) /data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/util/thread.h:164:12 (libkudu_util.so+0x1c6b85)
       #3 kudu::ThreadPool::CreateThread() /data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/util/threadpool.cc:749:10 (libkudu_util.so+0x1c3e72)
       #4 kudu::ThreadPool::DoSubmit(std::__1::shared_ptr<kudu::Runnable>, kudu::ThreadPoolToken*) /data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/util/threadpool.cc:556:21 (libkudu_util.so+0x1c263f)
       #5 kudu::ThreadPool::Submit(std::__1::shared_ptr<kudu::Runnable>) /data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/util/threadpool.cc:458:10 (libkudu_util.so+0x1c40df)
       #6 kudu::ThreadPool::SubmitClosure(kudu::Callback<void ()()>) /data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/util/threadpool.cc:450:10 (libkudu_util.so+0x1c4021)
       #7 kudu::rpc::ReactorThread::StartConnectionNegotiation(scoped_refptr<kudu::rpc::Connection> const&) /data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/rpc/reactor.cc:582:3 (libkrpc.so+0xbdf93)
       #8 kudu::rpc::ReactorThread::FindOrStartConnection(kudu::rpc::ConnectionId const&, kudu::rpc::CredentialsPolicy, scoped_refptr<kudu::rpc::Connection>*) /data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/rpc/reactor.cc:552:14 (libkrpc.so+0xbe876)
       #9 kudu::rpc::ReactorThread::AssignOutboundCall(std::__1::shared_ptr<kudu::rpc::OutboundCall>) /data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/rpc/reactor.cc:336:14 (libkrpc.so+0xbe410)
       #10 kudu::rpc::AssignOutboundCallTask::Run(kudu::rpc::ReactorThread*) /data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/rpc/reactor.cc:841:14 (libkrpc.so+0xc5d5b)
       #11 kudu::rpc::ReactorThread::AsyncHandler(ev::async&, int) /data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/rpc/reactor.cc:310:10 (libkrpc.so+0xbda51)
       #12 void ev::base<ev_async, ev::async>::method_thunk<kudu::rpc::ReactorThread, &(kudu::rpc::ReactorThread::AsyncHandler(ev::async&, int))>(ev_loop*, ev_async*, int) /data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/installed/tsan/include/ev++.h:479:7 (libkrpc.so+0xc6283)
       #13 ev_invoke_pending /data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/src/libev-4.20/ev.c:3155:11 (libev.so.4+0x9780)
       #14 kudu::rpc::ReactorThread::InvokePendingCb(ev_loop*) /data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/rpc/reactor.cc:176:3 (libkrpc.so+0xbc855)
       #15 ev_run /data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/src/libev-4.20/ev.c:3555:7 (libev.so.4+0xa88d)
       #16 ev::loop_ref::run(int) /data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/installed/tsan/include/ev++.h:211:7 (libkrpc.so+0xc2748)
       #17 kudu::rpc::ReactorThread::RunThread() /data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/rpc/reactor.cc:471:9 (libkrpc.so+0xbc99a)
       #18 boost::_mfi::mf0<void, kudu::rpc::ReactorThread>::operator()(kudu::rpc::ReactorThread*) const /data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/installed/tsan/include/boost/bind/mem_fn_template.hpp:49:29 (libkrpc.so+0xc69e9)
       #19 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) /data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/installed/tsan/include/boost/bind/bind.hpp:259:9 (libkrpc.so+0xc693a)
       #20 boost::_bi::bind_t<void, boost::_mfi::mf0<void, kudu::rpc::ReactorThread>, boost::_bi::list1<boost::_bi::value<kudu::rpc::ReactorThread*> > >::operator()() /data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/installed/tsan/include/boost/bind/bind.hpp:1222:16 (libkrpc.so+0xc68c3)
       #21 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&) /data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/installed/tsan/include/boost/function/function_template.hpp:159:11 (libkrpc.so+0xc66b9)
       #22 boost::function0<void>::operator()() const /data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/installed/tsan/include/boost/function/function_template.hpp:770:14 (libkrpc.so+0xb64b1)
       #23 kudu::Thread::SuperviseThread(void*) /data/somelongdirectorytoavoidrpathissues/src/kudu/src/kudu/util/thread.cc:603:3 (libkudu_util.so+0x1bbfc4)
      
      SUMMARY: ThreadSanitizer: data race /data/somelongdirectorytoavoidrpathissues/src/kudu/thirdparty/src/llvm-6.0.0.src/projects/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc:119 in operator delete(void*)
      
      

      Attachments

        1. security-itest.txt
          1.55 MB
          Hao Hao

        Activity

          People

            Unassigned Unassigned
            hahao Hao Hao
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: