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

Possible data race in kudu::security::InitKerberosForServer

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Not A Bug
    • Affects Version/s: None
    • Fix Version/s: n/a
    • Component/s: security
    • Labels:
      None

      Description

      Original issue reported in IMPALA-9455. Impala has a test that is reporting a race condition when running on a TSAN build. The race condition is on the global field KinitContext::g_kinit_ctx

      WARNING: ThreadSanitizer: data race (pid=9892)
         Write of size 8 at 0x0000076700c8 by main thread:
           #0 kudu::security::InitKerberosForServer(std::string const&, std::string const&, std::string const&, bool) Impala/be/src/kudu/security/init.cc:488:15 (rpc-mgr-kerberized-test+0x1d5a627)
           #1 impala::SecureAuthProvider::Start() Impala/be/src/rpc/authentication.cc:947:5 (rpc-mgr-kerberized-test+0x1b0056b)
           #2 impala::AuthManager::Init() Impala/be/src/rpc/authentication.cc:1269:3 (rpc-mgr-kerberized-test+0x1afedc3)
           #3 impala::InitAuth(std::string const&) Impala/be/src/rpc/authentication.cc:781:3 (rpc-mgr-kerberized-test+0x1afdb2f)
           #4 impala::RpcMgrKerberizedTest::SetUp() Impala/be/src/rpc/rpc-mgr-kerberized-test.cc:49:5 (rpc-mgr-kerberized-test+0x1949e01)
           #5 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (rpc-mgr-kerberized-test+0x4191f72)
           #6 __libc_start_main <null> (libc.so.6+0x21c04)
       
         Previous read of size 8 at 0x0000076700c8 by thread T42:
           #0 kudu::security::(anonymous namespace)::RenewThread() Impala/be/src/kudu/security/init.cc:205:37 (rpc-mgr-kerberized-test+0x1d5b020)
           #1 boost::detail::function::void_function_invoker0<void (*)(), void>::invoke(boost::detail::function::function_buffer&) Impala-Toolchain/boost-1.57.0-p3/include/boost/function/function_template.hpp:112:11 (rpc-mgr-kerberized-test+0x195fc9b)
           #2 boost::function0<void>::operator()() const Impala-Toolchain/boost-1.57.0-p3/include/boost/function/function_template.hpp:766:14 (rpc-mgr-kerberized-test+0x19e2031)
           #3 kudu::Thread::SuperviseThread(void*) Impala/be/src/kudu/util/thread.cc:675:3 (rpc-mgr-kerberized-test+0x19dfc3a)
       
         Location is global 'kudu::security::(anonymous namespace)::g_kinit_ctx' of size 8 at 0x0000076700c8 (rpc-mgr-kerberized-test+0x0000076700c8)
       
         Thread T42 'reacquire threa' (tid=9953, running) created by main thread at:
           #0 pthread_create /mnt/source/llvm/llvm-5.0.1.src-p2/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:889 (rpc-mgr-kerberized-test+0x18da63b)
           #1 kudu::Thread::StartThread(std::string const&, std::string const&, boost::function<void ()> const&, unsigned long, scoped_refptr<kudu::Thread>*) Impala/be/src/kudu/util/thread.cc:619:15 (rpc-mgr-kerberized-test+0x19df4d0)
           #2 kudu::Status kudu::Thread::Create<void (*)()>(std::string const&, std::string const&, void (* const&)(), scoped_refptr<kudu::Thread>*) Impala/be/src/kudu/util/thread.h:158:12 (rpc-mgr-kerberized-test+0x1d5c956)
           #3 kudu::security::InitKerberosForServer(std::string const&, std::string const&, std::string const&, bool) Impala/be/src/kudu/security/init.cc:497:3 (rpc-mgr-kerberized-test+0x1d5a743)
           #4 impala::SecureAuthProvider::Start() Impala/be/src/rpc/authentication.cc:947:5 (rpc-mgr-kerberized-test+0x1b0056b)
           #5 impala::AuthManager::Init() Impala/be/src/rpc/authentication.cc:1269:3 (rpc-mgr-kerberized-test+0x1afedc3)
           #6 impala::InitAuth(std::string const&) Impala/be/src/rpc/authentication.cc:781:3 (rpc-mgr-kerberized-test+0x1afdb2f)
           #7 impala::RpcMgrKerberizedTest::SetUp() Impala/be/src/rpc/rpc-mgr-kerberized-test.cc:49:5 (rpc-mgr-kerberized-test+0x1949e01)
           #8 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) <null> (rpc-mgr-kerberized-test+0x4191f72)
           #9 __libc_start_main <null> (libc.so.6+0x21c04)
       
       SUMMARY: ThreadSanitizer: data race Impala/be/src/kudu/security/init.cc:488:15 in kudu::security::InitKerberosForServer(std::string const&, std::string const&, std::string const&, bool)
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                stakiar Sahil Takiar
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: