[ 
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)

Reply via email to