[ https://issues.apache.org/jira/browse/IMPALA-10170?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sahil Takiar resolved IMPALA-10170. ----------------------------------- Fix Version/s: Impala 4.0 Resolution: Fixed > Data race on Webserver::UrlHandler::is_on_nav_bar_ > -------------------------------------------------- > > Key: IMPALA-10170 > URL: https://issues.apache.org/jira/browse/IMPALA-10170 > Project: IMPALA > Issue Type: Sub-task > Components: Backend > Reporter: Sahil Takiar > Assignee: Sahil Takiar > Priority: Major > Fix For: Impala 4.0 > > > {code} > WARNING: ThreadSanitizer: data race (pid=31102) > Read of size 1 at 0x7b2c0006e3b0 by thread T42: > #0 impala::Webserver::UrlHandler::is_on_nav_bar() const > /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/util/webserver.h:152:41 > (impalad+0x256ff39) > #1 > impala::Webserver::GetCommonJson(rapidjson::GenericDocument<rapidjson::UTF8<char>, > rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>, > rapidjson::CrtAllocator>*, sq_connection const*, > kudu::WebCallbackRegistry::WebRequest const&) > /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/util/webserver.cc:527:24 > (impalad+0x256be13) > #2 impala::Webserver::RenderUrlWithTemplate(sq_connection const*, > kudu::WebCallbackRegistry::WebRequest const&, impala::Webserver::UrlHandler > const&, std::__cxx11::basic_stringstream<char, std::char_traits<char>, > std::allocator<char> >*, impala::ContentType*) > /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/util/webserver.cc:816:3 > (impalad+0x256e882) > #3 impala::Webserver::BeginRequestCallback(sq_connection*, > sq_request_info*) > /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/util/webserver.cc:714:5 > (impalad+0x256cfbb) > #4 impala::Webserver::BeginRequestCallbackStatic(sq_connection*) > /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/util/webserver.cc:556:20 > (impalad+0x256ba98) > #5 handle_request <null> (impalad+0x2582d59) > Previous write of size 2 at 0x7b2c0006e3b0 by main thread: > #0 > impala::Webserver::UrlHandler::UrlHandler(impala::Webserver::UrlHandler&&) > /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/util/webserver.h:141:9 > (impalad+0x2570dbc) > #1 std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, > std::allocator<char> > const, > impala::Webserver::UrlHandler>::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> >, > impala::Webserver::UrlHandler, > true>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, > std::allocator<char> >, impala::Webserver::UrlHandler>&&) > /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/toolchain-packages-gcc7.5.0/gcc-7.5.0/lib/gcc/x86_64-pc-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/stl_pair.h:362:4 > (impalad+0x25738b3) > #2 void > __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler> > > >::construct<std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler>, std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> >, > impala::Webserver::UrlHandler> >(std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler>*, std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> >, > impala::Webserver::UrlHandler>&&) > /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/toolchain-packages-gcc7.5.0/gcc-7.5.0/lib/gcc/x86_64-pc-linux-gnu/7.5.0/../../../../include/c++/7.5.0/ext/new_allocator.h:136:23 > (impalad+0x2573848) > #3 void > std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler> > > > >::construct<std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler>, std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> >, > impala::Webserver::UrlHandler> > >(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler> > >&, > std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, > std::allocator<char> > const, impala::Webserver::UrlHandler>*, > std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, > std::allocator<char> >, impala::Webserver::UrlHandler>&&) > /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/toolchain-packages-gcc7.5.0/gcc-7.5.0/lib/gcc/x86_64-pc-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/alloc_traits.h:475:8 > (impalad+0x25737f1) > #4 void std::_Rb_tree<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> >, > std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, > std::allocator<char> > const, impala::Webserver::UrlHandler>, > std::_Select1st<std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler> >, std::less<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > >, > std::allocator<std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler> > > >::_M_construct_node<std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> >, > impala::Webserver::UrlHandler> > >(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler> >*, std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> >, > impala::Webserver::UrlHandler>&&) > /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/toolchain-packages-gcc7.5.0/gcc-7.5.0/lib/gcc/x86_64-pc-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/stl_tree.h:626:8 > (impalad+0x257369b) > #5 std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler> >* > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, > std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler>, > std::_Select1st<std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler> >, std::less<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > >, > std::allocator<std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler> > > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> >, > impala::Webserver::UrlHandler> >(std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> >, > impala::Webserver::UrlHandler>&&) > /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/toolchain-packages-gcc7.5.0/gcc-7.5.0/lib/gcc/x86_64-pc-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/stl_tree.h:643:4 > (impalad+0x2573309) > #6 > std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler> >, bool> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, > std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler>, > std::_Select1st<std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler> >, std::less<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > >, > std::allocator<std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler> > > >::_M_emplace_unique<std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> >, > impala::Webserver::UrlHandler> >(std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> >, > impala::Webserver::UrlHandler>&&) > /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/toolchain-packages-gcc7.5.0/gcc-7.5.0/lib/gcc/x86_64-pc-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/stl_tree.h:2351:19 > (impalad+0x25731be) > #7 > _ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6impala9Webserver10UrlHandlerESt4lessIS5_ESaISt4pairIKS5_S8_EEE6insertISB_IS5_S8_EEENSt9enable_ifIXsr16is_constructibleISD_T_EE5valueESB_ISt17_Rb_tree_iteratorISD_EbEE4typeEOSJ_ > > /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/toolchain-packages-gcc7.5.0/gcc-7.5.0/lib/gcc/x86_64-pc-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/stl_map.h:809:16 > (impalad+0x25704d8) > #8 > impala::Webserver::RegisterUrlCallback(std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const&, > std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::function<void (kudu::WebCallbackRegistry::WebRequest const&, > rapidjson::GenericDocument<rapidjson::UTF8<char>, > rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>, > rapidjson::CrtAllocator>*)> const&, bool) > /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/util/webserver.cc:868:17 > (impalad+0x256f3f8) > #9 impala::RegisterLogLevelCallbacks(impala::Webserver*, bool) > /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/util/logging-support.cc:320:14 > (impalad+0x24d73bd) > #10 impala::CatalogServer::RegisterWebpages(impala::Webserver*) > /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/catalog/catalog-server.cc:310:3 > (impalad+0x1ac10a3) > #11 CatalogdMain(int, char**) > /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/catalog/catalogd-main.cc:98:18 > (impalad+0x1ab3f89) > #12 main > /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/service/daemon-main.cc:41:12 > (impalad+0x1ab2d9d) > Location is heap block of size 168 at 0x7b2c0006e370 allocated by main > thread: > #0 operator new(unsigned long) > /mnt/source/llvm/llvm-5.0.1.src-p3/projects/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc:44 > (impalad+0x1ab04d6) > #1 > __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler> > >::allocate(unsigned long, void const*) > /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/toolchain-packages-gcc7.5.0/gcc-7.5.0/lib/gcc/x86_64-pc-linux-gnu/7.5.0/../../../../include/c++/7.5.0/ext/new_allocator.h:111:27 > (impalad+0x257376e) > #2 > std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler> > > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler> > >&, unsigned long) > /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/toolchain-packages-gcc7.5.0/gcc-7.5.0/lib/gcc/x86_64-pc-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/alloc_traits.h:436:20 > (impalad+0x2573712) > #3 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, > std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler>, > std::_Select1st<std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler> >, std::less<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > >, > std::allocator<std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler> > >::_M_get_node() > /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/toolchain-packages-gcc7.5.0/gcc-7.5.0/lib/gcc/x86_64-pc-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/stl_tree.h:588:16 > (impalad+0x2573626) > #4 std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler> >* > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, > std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler>, > std::_Select1st<std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler> >, std::less<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > >, > std::allocator<std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler> > > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> >, > impala::Webserver::UrlHandler> >(std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> >, > impala::Webserver::UrlHandler>&&) > /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/toolchain-packages-gcc7.5.0/gcc-7.5.0/lib/gcc/x86_64-pc-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/stl_tree.h:642:23 > (impalad+0x25732f0) > #5 > std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler> >, bool> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, > std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler>, > std::_Select1st<std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler> >, std::less<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > >, > std::allocator<std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const, > impala::Webserver::UrlHandler> > > >::_M_emplace_unique<std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> >, > impala::Webserver::UrlHandler> >(std::pair<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> >, > impala::Webserver::UrlHandler>&&) > /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/toolchain-packages-gcc7.5.0/gcc-7.5.0/lib/gcc/x86_64-pc-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/stl_tree.h:2351:19 > (impalad+0x25731be) > #6 > _ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6impala9Webserver10UrlHandlerESt4lessIS5_ESaISt4pairIKS5_S8_EEE6insertISB_IS5_S8_EEENSt9enable_ifIXsr16is_constructibleISD_T_EE5valueESB_ISt17_Rb_tree_iteratorISD_EbEE4typeEOSJ_ > > /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/toolchain-packages-gcc7.5.0/gcc-7.5.0/lib/gcc/x86_64-pc-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/stl_map.h:809:16 > (impalad+0x25704d8) > #7 > impala::Webserver::RegisterUrlCallback(std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const&, > std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::function<void (kudu::WebCallbackRegistry::WebRequest const&, > rapidjson::GenericDocument<rapidjson::UTF8<char>, > rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>, > rapidjson::CrtAllocator>*)> const&, bool) > /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/util/webserver.cc:868:17 > (impalad+0x256f3f8) > #8 impala::RegisterLogLevelCallbacks(impala::Webserver*, bool) > /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/util/logging-support.cc:320:14 > (impalad+0x24d73bd) > #9 impala::CatalogServer::RegisterWebpages(impala::Webserver*) > /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/catalog/catalog-server.cc:310:3 > (impalad+0x1ac10a3) > #10 CatalogdMain(int, char**) > /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/catalog/catalogd-main.cc:98:18 > (impalad+0x1ab3f89) > #11 main > /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/service/daemon-main.cc:41:12 > (impalad+0x1ab2d9d) > Thread T42 'sq_worker' (tid=31159, running) created by thread T40 at: > #0 pthread_create > /mnt/source/llvm/llvm-5.0.1.src-p3/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:889 > (impalad+0x1a24026) > #1 sq_start_thread <null> (impalad+0x2579a24) > SUMMARY: ThreadSanitizer: data race > /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/util/webserver.h:152:41 > in impala::Webserver::UrlHandler::is_on_nav_bar() const > ================== > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)