Project

General

Profile

Actions

Bug #55497

open

Can't run ceph with ASAN and TSAN

Added by Tao Lyu almost 2 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
common
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

Hi, I'm trying to compile ceph v15.2.1 (9fd2f65f91d9246fae2c841a6222d34d121680ee) with ASAN and TSAN. The compilation options are shown below:

//ASAN
/do_cmake.sh -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DWITH_TESTS=OFF -DWITH_RADOSGW=OFF -DWITH_RBD=OFF -DWITH_MGR_DASHBOARD_FRONTEND=OFF -DWITH_KRBD=OFF -DALLOCATOR=libc -DWITH_ASAN=ON
//TSAN
/do_cmake.sh -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DWITH_TESTS=OFF -DWITH_RADOSGW=OFF -DWITH_RBD=OFF -DWITH_MGR_DASHBOARD_FRONTEND=OFF -DWITH_KRBD=OFF -DALLOCATOR=libc -DWITH_TSAN=ON

But when I setup ceph, any commands related /usr/bin/ceph will stuck, for example, when I run "ceph -h", it will always stuck as shown below.

root@user: LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libasan.so.5 ceph -h

 General usage: 
 ==============
usage: ceph [-h] [-c CEPHCONF] [-i INPUT_FILE] [-o OUTPUT_FILE] [--setuser SETUSER] [--setgroup SETGROUP]
            [--id CLIENT_ID] [--name CLIENT_NAME] [--cluster CLUSTER] [--admin-daemon ADMIN_SOCKET] [-s] [-w]
            [--watch-debug] [--watch-info] [--watch-sec] [--watch-warn] [--watch-error] [-W WATCH_CHANNEL]
            [--version] [--verbose] [--concise] [-f {json,json-pretty,xml,xml-pretty,plain}]
            [--connect-timeout CLUSTER_TIMEOUT] [--block] [--period PERIOD]

Ceph administration tool

optional arguments:
  -h, --help            request mon help
  -c CEPHCONF, --conf CEPHCONF
                        ceph configuration file
  -i INPUT_FILE, --in-file INPUT_FILE
                        input file, or "-" for stdin
  -o OUTPUT_FILE, --out-file OUTPUT_FILE
                        output file, or "-" for stdout
  --setuser SETUSER     set user file permission
  --setgroup SETGROUP   set group file permission
  --id CLIENT_ID, --user CLIENT_ID
                        client id for authentication
  --name CLIENT_NAME, -n CLIENT_NAME
                        client name for authentication
  --cluster CLUSTER     cluster name
  --admin-daemon ADMIN_SOCKET
                        submit admin-socket commands ("help" for help
  -s, --status          show cluster status
  -w, --watch           watch live cluster changes
  --watch-debug         watch debug events
  --watch-info          watch info events
  --watch-sec           watch security events
  --watch-warn          watch warn events
  --watch-error         watch error events
  -W WATCH_CHANNEL, --watch-channel WATCH_CHANNEL
                        watch live cluster changes on a specific channel (e.g., cluster, audit, cephadm, or '*'
                        for all)
  --version, -v         display version
  --verbose             make verbose
  --concise             make less verbose
  -f {json,json-pretty,xml,xml-pretty,plain}, --format {json,json-pretty,xml,xml-pretty,plain}
  --connect-timeout CLUSTER_TIMEOUT
                        set a timeout for connecting to the cluster
  --block               block until completion (scrub and deep-scrub only)
  --period PERIOD, -p PERIOD
                        polling period, default 1.0 second (for polling commands only)

 Local commands: 
 ===============

ping <mon.id>           Send simple presence/life test to a mon
                        <mon.id> may be 'mon.*' for all mons
daemon {type.id|path} <cmd>
                        Same as --admin-daemon, but auto-find admin socket
daemonperf {type.id | path} [stat-pats] [priority] [<interval>] [<count>]
daemonperf {type.id | path} list|ls [stat-pats] [priority]
                        Get selected perf stats from daemon/admin socket
                        Optional shell-glob comma-delim match string stat-pats
                        Optional selection priority (can abbreviate name):
                         critical, interesting, useful, noninteresting, debug
                        List shows a table of all available stats
                        Run <count> times (default forever),
                         once per <interval> seconds (default 1)

For tasan, it will report lot of data race during the setup process. I'll only show some of them here:

WARNING: ThreadSanitizer: data race (pid=439)
  Write of size 1 at 0x7ba000010871 by thread T17 (mutexes: write M506):
    #0 md_config_t::update_legacy_val(ConfigValues&, Option const&, boost::variant<long ConfigValues::*, unsigned long ConfigValues::*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ConfigValues::*, double ConfigValues::*, bool ConfigValues::*, entity_addr_t ConfigValues::*, entity_addrvec_t ConfigValues::*, uuid_d ConfigValues::*>) <null> (libceph-common.so.2+0x592a9c)
    #1 md_config_t::update_legacy_vals(ConfigValues&) <null> (libceph-common.so.2+0x592fea)
    #2 md_config_t::set_mon_vals(ceph::common::CephContext*, ConfigValues&, ConfigTracker const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<void>, std::allocator<std::pair<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&, std::function<bool (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&)>) <null> (libceph-common.so.2+0x5bbd69)
    #3 ceph::common::ConfigProxy::set_mon_vals(ceph::common::CephContext*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<void>, std::allocator<std::pair<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&, std::function<bool (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&)>) <null> (libceph-common.so.2+0xa22d3e)
    #4 LambdaContext<MonClient::handle_config(MConfig*)::{lambda(int)#2}>::finish(int) <null> (libceph-common.so.2+0x9f7dff)
    #5 Context::complete(int) <null> (libceph-common.so.2+0x3aa944)
    #6 Finisher::finisher_thread_entry() <null> (libceph-common.so.2+0x3d4c8e)
    #7 Finisher::FinisherThread::entry() <null> (libceph-common.so.2+0xa1fd6d)
    #8 Thread::entry_wrapper() <null> (libceph-common.so.2+0x46d109)
    #9 Thread::_entry_func(void*) <null> (libceph-common.so.2+0x46d216)

  Previous read of size 1 at 0x7ba000010871 by thread T6 (mutexes: write M803):
    #0 Connection::is_blackhole() const <null> (libceph-common.so.2+0x85701a)
    #1 ProtocolV1::handle_message_footer(char*, int) <null> (libceph-common.so.2+0x896bc2)
    #2 CtFun<ProtocolV1, char*, int>::call(ProtocolV1*) const <null> (libceph-common.so.2+0x8c9b2a)
    #3 std::_Function_handler<void (char*, long), ProtocolV1::read(CtFun<ProtocolV1, char*, int>&, int, char*)::{lambda(char*, int)#1}>::_M_invoke(std::_Any_data const&, char*&&, long&&) <null> (libceph-common.so.2+0x8917a6)
    #4 AsyncConnection::process() <null> (libceph-common.so.2+0x86dc17)
    #5 C_handle_read::do_request(unsigned long) <null> (libceph-common.so.2+0x871b3d)
    #6 EventCenter::process_events(unsigned int, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> >*) <null> (libceph-common.so.2+0x924905)
    #7 std::_Function_handler<void (), NetworkStack::add_thread(unsigned int)::{lambda()#1}>::_M_invoke(std::_Any_data const&) <null> (libceph-common.so.2+0x935e23)
    #8 std::thread::_State_impl<std::thread::_Invoker<std::tuple<std::function<void ()> > > >::_M_run() <null> (libceph-common.so.2+0x932dc3)
    #9 <null> <null> (libstdc++.so.6+0xda6b3)

  Location is heap block of size 14512 at 0x7ba000010000 allocated by thread T1:
    #0 operator new(unsigned long) ../../../../src/libsanitizer/tsan/tsan_new_delete.cpp:64 (libtsan.so.0+0x8f542)
    #1 common_preinit(CephInitParameters const&, code_environment_t, int) <null> (libceph-common.so.2+0x58386a)
    #2 rados_create_cct(char const*, CephInitParameters*) <null> (librados.so.2+0xadf13)
    #3 _rados_create2 <null> (librados.so.2+0xae7ca)
    #4 __pyx_pf_5rados_5Rados_2__setup /root/ceph/build/src/pybind/rados/pyrex/rados.c:12393 (rados.cpython-38-x86_64-linux-gnu.so+0xbc5fe)
    #5 __pyx_pw_5rados_5Rados_3__setup /root/ceph/build/src/pybind/rados/pyrex/rados.c:11881 (rados.cpython-38-x86_64-linux-gnu.so+0xbc5fe)

  Mutex M506 (0x7ba000013628) created at:
    #0 pthread_mutex_lock ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:4250 (libtsan.so.0+0x53908)
    #1 ceph::common::ConfigProxy::add_observer(ceph::md_config_obs_impl<ceph::common::ConfigProxy>*) <null> (libceph-common.so.2+0x53a1b7)
    #2 ceph::common::CephContext::CephContext(unsigned int, code_environment_t, int) <null> (libceph-common.so.2+0x52baea)
    #3 common_preinit(CephInitParameters const&, code_environment_t, int) <null> (libceph-common.so.2+0x58388a)
    #4 rados_create_cct(char const*, CephInitParameters*) <null> (librados.so.2+0xadf13)
    #5 _rados_create2 <null> (librados.so.2+0xae7ca)
    #6 __pyx_pf_5rados_5Rados_2__setup /root/ceph/build/src/pybind/rados/pyrex/rados.c:12393 (rados.cpython-38-x86_64-linux-gnu.so+0xbc5fe)
    #7 __pyx_pw_5rados_5Rados_3__setup /root/ceph/build/src/pybind/rados/pyrex/rados.c:11881 (rados.cpython-38-x86_64-linux-gnu.so+0xbc5fe)

  Mutex M803 (0x7b6000070a40) created at:
    #0 pthread_mutex_lock ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:4250 (libtsan.so.0+0x53908)
    #1 AsyncConnection::connect(entity_addrvec_t const&, int, entity_addr_t&) <null> (libceph-common.so.2+0x860a18)
    #2 AsyncMessenger::create_connect(entity_addrvec_t const&, int, bool) <null> (libceph-common.so.2+0x8767ac)
    #3 AsyncMessenger::connect_to(int, entity_addrvec_t const&, bool, bool) <null> (libceph-common.so.2+0x8778c0)
    #4 MonClient::_add_conn(unsigned int, unsigned long) <null> (libceph-common.so.2+0xa0230f)
    #5 MonClient::_add_conns(unsigned long) <null> (libceph-common.so.2+0xa086f6)
    #6 MonClient::_reopen_session(int) <null> (libceph-common.so.2+0xa0f717)
    #7 MonClient::authenticate(double) <null> (libceph-common.so.2+0xa11c8a)
    #8 librados::v14_2_0::RadosClient::connect() <null> (librados.so.2+0x15b18e)
    #9 _rados_connect <null> (librados.so.2+0x59275)
    #10 __pyx_pf_5rados_5Rados_28connect /root/ceph/build/src/pybind/rados/pyrex/rados.c:16159 (rados.cpython-38-x86_64-linux-gnu.so+0x80e92)
    #11 __pyx_pw_5rados_5Rados_29connect /root/ceph/build/src/pybind/rados/pyrex/rados.c:16094 (rados.cpython-38-x86_64-linux-gnu.so+0x80e92)

  Thread T17 'fn_anonymous' (tid=476, running) created by thread T3 at:
    #0 pthread_create ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:969 (libtsan.so.0+0x605f8)
    #1 Thread::try_create(unsigned long) <null> (libceph-common.so.2+0x46d448)
    #2 Thread::create(char const*, unsigned long) <null> (libceph-common.so.2+0x46d566)
    #3 Finisher::start() <null> (libceph-common.so.2+0x3d2cbd)
    #4 MonClient::init() <null> (libceph-common.so.2+0xa0357f)
    #5 librados::v14_2_0::RadosClient::connect() <null> (librados.so.2+0x15b148)
    #6 _rados_connect <null> (librados.so.2+0x59275)
    #7 __pyx_pf_5rados_5Rados_28connect /root/ceph/build/src/pybind/rados/pyrex/rados.c:16159 (rados.cpython-38-x86_64-linux-gnu.so+0x80e92)
    #8 __pyx_pw_5rados_5Rados_29connect /root/ceph/build/src/pybind/rados/pyrex/rados.c:16094 (rados.cpython-38-x86_64-linux-gnu.so+0x80e92)

  Thread T6 'msgr-worker-2' (tid=465, running) created by thread T3 at:
    #0 pthread_create ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:969 (libtsan.so.0+0x605f8)
    #1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xda989)
    #2 NetworkStack::start() <null> (libceph-common.so.2+0x934721)
    #3 AsyncMessenger::AsyncMessenger(ceph::common::CephContext*, entity_name_t, 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> >, unsigned long) <null> (libceph-common.so.2+0x88501f)
    #4 Messenger::create(ceph::common::CephContext*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, entity_name_t, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, unsigned long) <null> (libceph-common.so.2+0x852645)
    #5 Messenger::create_client_messenger(ceph::common::CephContext*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) <null> (libceph-common.so.2+0x853165)
    #6 MonClient::get_monmap_and_config() <null> (libceph-common.so.2+0xa129f4)
    #7 librados::v14_2_0::RadosClient::connect() <null> (librados.so.2+0x15a42e)
    #8 _rados_connect <null> (librados.so.2+0x59275)
    #9 __pyx_pf_5rados_5Rados_28connect /root/ceph/build/src/pybind/rados/pyrex/rados.c:16159 (rados.cpython-38-x86_64-linux-gnu.so+0x80e92)
    #10 __pyx_pw_5rados_5Rados_29connect /root/ceph/build/src/pybind/rados/pyrex/rados.c:16094 (rados.cpython-38-x86_64-linux-gnu.so+0x80e92)

  Thread T1 (tid=460, finished) created by main thread at:
    #0 pthread_create ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:969 (libtsan.so.0+0x605f8)
    #1 PyThread_start_new_thread <null> (python3.8+0x670ab9)

SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/ceph/libceph-common.so.2+0x592a9c) in md_config_t::update_legacy_val(ConfigValues&, Option const&, boost::variant<long ConfigValues::*, unsigned long ConfigValues::*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ConfigValues::*, double ConfigValues::*, bool ConfigValues::*, entity_addr_t ConfigValues::*, entity_addrvec_t ConfigValues::*, uuid_d ConfigValues::*>)
==================
==================
WARNING: ThreadSanitizer: data race (pid=439)
  Write of size 8 at 0x7ba0000110f0 by thread T17 (mutexes: write M506):
    #0 md_config_t::update_legacy_val(ConfigValues&, Option const&, boost::variant<long ConfigValues::*, unsigned long ConfigValues::*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ConfigValues::*, double ConfigValues::*, bool ConfigValues::*, entity_addr_t ConfigValues::*, entity_addrvec_t ConfigValues::*, uuid_d ConfigValues::*>) <null> (libceph-common.so.2+0x592a1a)
    #1 md_config_t::update_legacy_vals(ConfigValues&) <null> (libceph-common.so.2+0x592fea)
    #2 md_config_t::set_mon_vals(ceph::common::CephContext*, ConfigValues&, ConfigTracker const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<void>, std::allocator<std::pair<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&, std::function<bool (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&)>) <null> (libceph-common.so.2+0x5bbd69)
    #3 ceph::common::ConfigProxy::set_mon_vals(ceph::common::CephContext*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<void>, std::allocator<std::pair<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&, std::function<bool (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&)>) <null> (libceph-common.so.2+0xa22d3e)
    #4 LambdaContext<MonClient::handle_config(MConfig*)::{lambda(int)#2}>::finish(int) <null> (libceph-common.so.2+0x9f7dff)
    #5 Context::complete(int) <null> (libceph-common.so.2+0x3aa944)
    #6 Finisher::finisher_thread_entry() <null> (libceph-common.so.2+0x3d4c8e)
    #7 Finisher::FinisherThread::entry() <null> (libceph-common.so.2+0xa1fd6d)
    #8 Thread::entry_wrapper() <null> (libceph-common.so.2+0x46d109)
    #9 Thread::_entry_func(void*) <null> (libceph-common.so.2+0x46d216)

  Previous read of size 8 at 0x7ba0000110f0 by thread T3 (mutexes: read M770):
    #0 Objecter::start_tick() <null> (librados.so.2+0x174738)
    #1 Objecter::start(OSDMap const*) <null> (librados.so.2+0x177014)
    #2 librados::v14_2_0::RadosClient::connect() <null> (librados.so.2+0x15b400)
    #3 _rados_connect <null> (librados.so.2+0x59275)
    #4 __pyx_pf_5rados_5Rados_28connect /root/ceph/build/src/pybind/rados/pyrex/rados.c:16159 (rados.cpython-38-x86_64-linux-gnu.so+0x80e92)
    #5 __pyx_pw_5rados_5Rados_29connect /root/ceph/build/src/pybind/rados/pyrex/rados.c:16094 (rados.cpython-38-x86_64-linux-gnu.so+0x80e92)

  Location is heap block of size 14512 at 0x7ba000010000 allocated by thread T1:
    #0 operator new(unsigned long) ../../../../src/libsanitizer/tsan/tsan_new_delete.cpp:64 (libtsan.so.0+0x8f542)
    #1 common_preinit(CephInitParameters const&, code_environment_t, int) <null> (libceph-common.so.2+0x58386a)
    #2 rados_create_cct(char const*, CephInitParameters*) <null> (librados.so.2+0xadf13)
    #3 _rados_create2 <null> (librados.so.2+0xae7ca)
    #4 __pyx_pf_5rados_5Rados_2__setup /root/ceph/build/src/pybind/rados/pyrex/rados.c:12393 (rados.cpython-38-x86_64-linux-gnu.so+0xbc5fe)
    #5 __pyx_pw_5rados_5Rados_3__setup /root/ceph/build/src/pybind/rados/pyrex/rados.c:11881 (rados.cpython-38-x86_64-linux-gnu.so+0xbc5fe)

  Mutex M506 (0x7ba000013628) created at:
    #0 pthread_mutex_lock ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:4250 (libtsan.so.0+0x53908)
    #1 ceph::common::ConfigProxy::add_observer(ceph::md_config_obs_impl<ceph::common::ConfigProxy>*) <null> (libceph-common.so.2+0x53a1b7)
    #2 ceph::common::CephContext::CephContext(unsigned int, code_environment_t, int) <null> (libceph-common.so.2+0x52baea)
    #3 common_preinit(CephInitParameters const&, code_environment_t, int) <null> (libceph-common.so.2+0x58388a)
    #4 rados_create_cct(char const*, CephInitParameters*) <null> (librados.so.2+0xadf13)
    #5 _rados_create2 <null> (librados.so.2+0xae7ca)
    #6 __pyx_pf_5rados_5Rados_2__setup /root/ceph/build/src/pybind/rados/pyrex/rados.c:12393 (rados.cpython-38-x86_64-linux-gnu.so+0xbc5fe)
    #7 __pyx_pw_5rados_5Rados_3__setup /root/ceph/build/src/pybind/rados/pyrex/rados.c:11881 (rados.cpython-38-x86_64-linux-gnu.so+0xbc5fe)

  Mutex M770 (0x7b6800010948) created at:
    #0 pthread_rwlock_wrlock ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:1368 (libtsan.so.0+0x3f778)
    #1 Objecter::update_crush_location() <null> (librados.so.2+0x16d06c)
    #2 Objecter::init() <null> (librados.so.2+0x19fbb0)
    #3 librados::v14_2_0::RadosClient::connect() <null> (librados.so.2+0x15ab9d)
    #4 _rados_connect <null> (librados.so.2+0x59275)
    #5 __pyx_pf_5rados_5Rados_28connect /root/ceph/build/src/pybind/rados/pyrex/rados.c:16159 (rados.cpython-38-x86_64-linux-gnu.so+0x80e92)
    #6 __pyx_pw_5rados_5Rados_29connect /root/ceph/build/src/pybind/rados/pyrex/rados.c:16094 (rados.cpython-38-x86_64-linux-gnu.so+0x80e92)

  Thread T17 'fn_anonymous' (tid=476, running) created by thread T3 at:
    #0 pthread_create ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:969 (libtsan.so.0+0x605f8)
    #1 Thread::try_create(unsigned long) <null> (libceph-common.so.2+0x46d448)
    #2 Thread::create(char const*, unsigned long) <null> (libceph-common.so.2+0x46d566)
    #3 Finisher::start() <null> (libceph-common.so.2+0x3d2cbd)
    #4 MonClient::init() <null> (libceph-common.so.2+0xa0357f)
    #5 librados::v14_2_0::RadosClient::connect() <null> (librados.so.2+0x15b148)
    #6 _rados_connect <null> (librados.so.2+0x59275)
    #7 __pyx_pf_5rados_5Rados_28connect /root/ceph/build/src/pybind/rados/pyrex/rados.c:16159 (rados.cpython-38-x86_64-linux-gnu.so+0x80e92)
    #8 __pyx_pw_5rados_5Rados_29connect /root/ceph/build/src/pybind/rados/pyrex/rados.c:16094 (rados.cpython-38-x86_64-linux-gnu.so+0x80e92)

  Thread T3 (tid=462, finished) created by main thread at:
    #0 pthread_create ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:969 (libtsan.so.0+0x605f8)
    #1 PyThread_start_new_thread <null> (python3.8+0x670ab9)

  Thread T1 (tid=460, finished) created by main thread at:
    #0 pthread_create ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:969 (libtsan.so.0+0x605f8)
    #1 PyThread_start_new_thread <null> (python3.8+0x670ab9)

SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/ceph/libceph-common.so.2+0x592a1a) in md_config_t::update_legacy_val(ConfigValues&, Option const&, boost::variant<long ConfigValues::*, unsigned long ConfigValues::*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ConfigValues::*, double ConfigValues::*, bool ConfigValues::*, entity_addr_t ConfigValues::*, entity_addrvec_t ConfigValues::*, uuid_d ConfigValues::*>)
==================
==================
WARNING: ThreadSanitizer: data race (pid=439)
  Write of size 8 at 0x7ba000012510 by thread T17 (mutexes: write M506):
    #0 md_config_t::update_legacy_val(ConfigValues&, Option const&, boost::variant<long ConfigValues::*, unsigned long ConfigValues::*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ConfigValues::*, double ConfigValues::*, bool ConfigValues::*, entity_addr_t ConfigValues::*, entity_addrvec_t ConfigValues::*, uuid_d ConfigValues::*>) <null> (libceph-common.so.2+0x592a1a)
    #1 md_config_t::update_legacy_vals(ConfigValues&) <null> (libceph-common.so.2+0x592fea)
    #2 md_config_t::set_mon_vals(ceph::common::CephContext*, ConfigValues&, ConfigTracker const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<void>, std::allocator<std::pair<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&, std::function<bool (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&)>) <null> (libceph-common.so.2+0x5bbd69)
    #3 ceph::common::ConfigProxy::set_mon_vals(ceph::common::CephContext*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<void>, std::allocator<std::pair<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&, std::function<bool (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&)>) <null> (libceph-common.so.2+0xa22d3e)
    #4 LambdaContext<MonClient::handle_config(MConfig*)::{lambda(int)#2}>::finish(int) <null> (libceph-common.so.2+0x9f7dff)
    #5 Context::complete(int) <null> (libceph-common.so.2+0x3aa944)
    #6 Finisher::finisher_thread_entry() <null> (libceph-common.so.2+0x3d4c8e)
    #7 Finisher::FinisherThread::entry() <null> (libceph-common.so.2+0xa1fd6d)
    #8 Thread::entry_wrapper() <null> (libceph-common.so.2+0x46d109)
    #9 Thread::_entry_func(void*) <null> (libceph-common.so.2+0x46d216)

  Previous read of size 8 at 0x7ba000012510 by thread T21 (mutexes: write M910, write M787):
    #0 MonClient::start_mon_command(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, ceph::buffer::v15_2_0::list const&, ceph::buffer::v15_2_0::list*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, Context*) <null> (libceph-common.so.2+0xa1a400)
    #1 librados::v14_2_0::RadosClient::mon_command_async(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, ceph::buffer::v15_2_0::list const&, ceph::buffer::v15_2_0::list*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, Context*) <null> (librados.so.2+0x147b27)
    #2 librados::v14_2_0::RadosClient::mon_command(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, ceph::buffer::v15_2_0::list const&, ceph::buffer::v15_2_0::list*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) <null> (librados.so.2+0x147d51)
    #3 _rados_mon_command <null> (librados.so.2+0xa32ba)
    #4 __pyx_pf_5rados_5Rados_56mon_command /root/ceph/build/src/pybind/rados/pyrex/rados.c:20764 (rados.cpython-38-x86_64-linux-gnu.so+0xc3bf4)
    #5 __pyx_pw_5rados_5Rados_57mon_command /root/ceph/build/src/pybind/rados/pyrex/rados.c:20375 (rados.cpython-38-x86_64-linux-gnu.so+0xc3bf4)

  Location is heap block of size 14512 at 0x7ba000010000 allocated by thread T1:
    #0 operator new(unsigned long) ../../../../src/libsanitizer/tsan/tsan_new_delete.cpp:64 (libtsan.so.0+0x8f542)
    #1 common_preinit(CephInitParameters const&, code_environment_t, int) <null> (libceph-common.so.2+0x58386a)
    #2 rados_create_cct(char const*, CephInitParameters*) <null> (librados.so.2+0xadf13)
    #3 _rados_create2 <null> (librados.so.2+0xae7ca)
    #4 __pyx_pf_5rados_5Rados_2__setup /root/ceph/build/src/pybind/rados/pyrex/rados.c:12393 (rados.cpython-38-x86_64-linux-gnu.so+0xbc5fe)
    #5 __pyx_pw_5rados_5Rados_3__setup /root/ceph/build/src/pybind/rados/pyrex/rados.c:11881 (rados.cpython-38-x86_64-linux-gnu.so+0xbc5fe)

  Mutex M506 (0x7ba000013628) created at:
    #0 pthread_mutex_lock ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:4250 (libtsan.so.0+0x53908)
    #1 ceph::common::ConfigProxy::add_observer(ceph::md_config_obs_impl<ceph::common::ConfigProxy>*) <null> (libceph-common.so.2+0x53a1b7)
    #2 ceph::common::CephContext::CephContext(unsigned int, code_environment_t, int) <null> (libceph-common.so.2+0x52baea)
    #3 common_preinit(CephInitParameters const&, code_environment_t, int) <null> (libceph-common.so.2+0x58388a)
    #4 rados_create_cct(char const*, CephInitParameters*) <null> (librados.so.2+0xadf13)
    #5 _rados_create2 <null> (librados.so.2+0xae7ca)
    #6 __pyx_pf_5rados_5Rados_2__setup /root/ceph/build/src/pybind/rados/pyrex/rados.c:12393 (rados.cpython-38-x86_64-linux-gnu.so+0xbc5fe)
    #7 __pyx_pw_5rados_5Rados_3__setup /root/ceph/build/src/pybind/rados/pyrex/rados.c:11881 (rados.cpython-38-x86_64-linux-gnu.so+0xbc5fe)

  Mutex M910 (0x7b8000010bd8) created at:
    #0 pthread_mutex_lock ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:4250 (libtsan.so.0+0x53908)
    #1 std::mutex::lock() <null> (librados.so.2+0x13fe45)
    #2 librados::v14_2_0::RadosClient::connect() <null> (librados.so.2+0x15b414)
    #3 _rados_connect <null> (librados.so.2+0x59275)
    #4 __pyx_pf_5rados_5Rados_28connect /root/ceph/build/src/pybind/rados/pyrex/rados.c:16159 (rados.cpython-38-x86_64-linux-gnu.so+0x80e92)
    #5 __pyx_pw_5rados_5Rados_29connect /root/ceph/build/src/pybind/rados/pyrex/rados.c:16094 (rados.cpython-38-x86_64-linux-gnu.so+0x80e92)

  Mutex M787 (0x7b8000010350) created at:
    #0 pthread_mutex_lock ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:4250 (libtsan.so.0+0x53908)
    #1 MonClient::init() <null> (libceph-common.so.2+0xa03154)
    #2 librados::v14_2_0::RadosClient::connect() <null> (librados.so.2+0x15b148)
    #3 _rados_connect <null> (librados.so.2+0x59275)
    #4 __pyx_pf_5rados_5Rados_28connect /root/ceph/build/src/pybind/rados/pyrex/rados.c:16159 (rados.cpython-38-x86_64-linux-gnu.so+0x80e92)
    #5 __pyx_pw_5rados_5Rados_29connect /root/ceph/build/src/pybind/rados/pyrex/rados.c:16094 (rados.cpython-38-x86_64-linux-gnu.so+0x80e92)

  Thread T17 'fn_anonymous' (tid=476, running) created by thread T3 at:
    #0 pthread_create ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:969 (libtsan.so.0+0x605f8)
    #1 Thread::try_create(unsigned long) <null> (libceph-common.so.2+0x46d448)
    #2 Thread::create(char const*, unsigned long) <null> (libceph-common.so.2+0x46d566)
    #3 Finisher::start() <null> (libceph-common.so.2+0x3d2cbd)
    #4 MonClient::init() <null> (libceph-common.so.2+0xa0357f)
    #5 librados::v14_2_0::RadosClient::connect() <null> (librados.so.2+0x15b148)
    #6 _rados_connect <null> (librados.so.2+0x59275)
    #7 __pyx_pf_5rados_5Rados_28connect /root/ceph/build/src/pybind/rados/pyrex/rados.c:16159 (rados.cpython-38-x86_64-linux-gnu.so+0x80e92)
    #8 __pyx_pw_5rados_5Rados_29connect /root/ceph/build/src/pybind/rados/pyrex/rados.c:16094 (rados.cpython-38-x86_64-linux-gnu.so+0x80e92)

  Thread T21 (tid=480, running) created by main thread at:
    #0 pthread_create ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:969 (libtsan.so.0+0x605f8)
    #1 PyThread_start_new_thread <null> (python3.8+0x670ab9)

  Thread T1 (tid=460, finished) created by main thread at:
    #0 pthread_create ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:969 (libtsan.so.0+0x605f8)
    #1 PyThread_start_new_thread <null> (python3.8+0x670ab9)

SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/ceph/libceph-common.so.2+0x592a1a) in md_config_t::update_legacy_val(ConfigValues&, Option const&, boost::variant<long ConfigValues::*, unsigned long ConfigValues::*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ConfigValues::*, double ConfigValues::*, bool ConfigValues::*, entity_addr_t ConfigValues::*, entity_addrvec_t ConfigValues::*, uuid_d ConfigValues::*>)
==================
==================
WARNING: ThreadSanitizer: data race (pid=439)
  Read of size 8 at 0x7b80000102d0 by thread T23:
    #0 MonClient::_hunting() const <null> (libceph-common.so.2+0x9f7337)
    #1 MonClient::shutdown() <null> (libceph-common.so.2+0xa09bcd)
    #2 librados::v14_2_0::RadosClient::shutdown() <null> (librados.so.2+0x1545a6)
    #3 rados_shutdown@@ <null> (librados.so.2+0x594e5)
    #4 __pyx_pf_5rados_5Rados_8shutdown /root/ceph/build/src/pybind/rados/pyrex/rados.c:13440 (rados.cpython-38-x86_64-linux-gnu.so+0x5b9b8)
    #5 __pyx_pw_5rados_5Rados_9shutdown /root/ceph/build/src/pybind/rados/pyrex/rados.c:13395 (rados.cpython-38-x86_64-linux-gnu.so+0x5b9b8)

  Previous write of size 8 at 0x7b80000102d0 by thread T14 (mutexes: write M787):
    #0 std::pair<std::_Rb_tree_iterator<std::pair<entity_addrvec_t const, MonConnection> >, bool> std::_Rb_tree<entity_addrvec_t, std::pair<entity_addrvec_t const, MonConnection>, std::_Select1st<std::pair<entity_addrvec_t const, MonConnection> >, std::less<entity_addrvec_t>, std::allocator<std::pair<entity_addrvec_t const, MonConnection> > >::_M_emplace_unique<std::pair<entity_addrvec_t, MonConnection> >(std::pair<entity_addrvec_t, MonConnection>&&) <null> (libceph-common.so.2+0xa220d9)
    #1 MonClient::_add_conn(unsigned int, unsigned long) <null> (libceph-common.so.2+0xa0272b)
    #2 MonClient::_add_conns(unsigned long) <null> (libceph-common.so.2+0xa086f6)
    #3 MonClient::_reopen_session(int) <null> (libceph-common.so.2+0xa0f717)
    #4 MonClient::handle_monmap(MMonMap*) <null> (libceph-common.so.2+0xa111fa)
    #5 MonClient::ms_dispatch(Message*) <null> (libceph-common.so.2+0xa1948d)
    #6 Messenger::ms_deliver_dispatch(boost::intrusive_ptr<Message> const&) <null> (libceph-common.so.2+0x707a96)
    #7 DispatchQueue::entry() <null> (libceph-common.so.2+0x701e2b)
    #8 DispatchQueue::DispatchThread::entry() <null> (libceph-common.so.2+0x88715d)
    #9 Thread::entry_wrapper() <null> (libceph-common.so.2+0x46d109)
    #10 Thread::_entry_func(void*) <null> (libceph-common.so.2+0x46d216)

  Location is heap block of size 3784 at 0x7b8000010000 allocated by thread T1:
    #0 operator new(unsigned long) ../../../../src/libsanitizer/tsan/tsan_new_delete.cpp:64 (libtsan.so.0+0x8f542)
    #1 _rados_create2 <null> (librados.so.2+0xae8be)
    #2 __pyx_pf_5rados_5Rados_2__setup /root/ceph/build/src/pybind/rados/pyrex/rados.c:12393 (rados.cpython-38-x86_64-linux-gnu.so+0xbc5fe)
    #3 __pyx_pw_5rados_5Rados_3__setup /root/ceph/build/src/pybind/rados/pyrex/rados.c:11881 (rados.cpython-38-x86_64-linux-gnu.so+0xbc5fe)

  Mutex M787 (0x7b8000010350) created at:
    #0 pthread_mutex_lock ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:4250 (libtsan.so.0+0x53908)
    #1 MonClient::init() <null> (libceph-common.so.2+0xa03154)
    #2 librados::v14_2_0::RadosClient::connect() <null> (librados.so.2+0x15b148)
    #3 _rados_connect <null> (librados.so.2+0x59275)
    #4 __pyx_pf_5rados_5Rados_28connect /root/ceph/build/src/pybind/rados/pyrex/rados.c:16159 (rados.cpython-38-x86_64-linux-gnu.so+0x80e92)
    #5 __pyx_pw_5rados_5Rados_29connect /root/ceph/build/src/pybind/rados/pyrex/rados.c:16094 (rados.cpython-38-x86_64-linux-gnu.so+0x80e92)

  Thread T23 (tid=483, running) created by main thread at:
    #0 pthread_create ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:969 (libtsan.so.0+0x605f8)
    #1 PyThread_start_new_thread <null> (python3.8+0x670ab9)

  Thread T14 'ms_dispatch' (tid=473, running) created by thread T3 at:
    #0 pthread_create ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:969 (libtsan.so.0+0x605f8)
    #1 Thread::try_create(unsigned long) <null> (libceph-common.so.2+0x46d448)
    #2 Thread::create(char const*, unsigned long) <null> (libceph-common.so.2+0x46d566)
    #3 DispatchQueue::start() <null> (libceph-common.so.2+0x6fc2bd)
    #4 AsyncMessenger::ready() <null> (libceph-common.so.2+0x87b11c)
    #5 librados::v14_2_0::RadosClient::connect() <null> (librados.so.2+0x15bb1a)
    #6 _rados_connect <null> (librados.so.2+0x59275)
    #7 __pyx_pf_5rados_5Rados_28connect /root/ceph/build/src/pybind/rados/pyrex/rados.c:16159 (rados.cpython-38-x86_64-linux-gnu.so+0x80e92)
    #8 __pyx_pw_5rados_5Rados_29connect /root/ceph/build/src/pybind/rados/pyrex/rados.c:16094 (rados.cpython-38-x86_64-linux-gnu.so+0x80e92)

  Thread T1 (tid=460, finished) created by main thread at:
    #0 pthread_create ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:969 (libtsan.so.0+0x605f8)
    #1 PyThread_start_new_thread <null> (python3.8+0x670ab9)

SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/ceph/libceph-common.so.2+0x9f7337) in MonClient::_hunting() const
==================
==================
WARNING: ThreadSanitizer: data race (pid=439)
  Write of size 1 at 0x7b54000403e1 by thread T23:
    #0 NetworkStack::stop() <null> (libceph-common.so.2+0x934a66)
    #1 void ceph::_any::op_func<StackSingleton>(ceph::_any::op, void*) <null> (libceph-common.so.2+0x88740b)
    #2 ceph::common::CephContext::~CephContext() <null> (libceph-common.so.2+0x52cc65)
    #3 ceph::common::CephContext::put() <null> (libceph-common.so.2+0x52ef4c)
    #4 std::_Function_handler<void (ceph::common::CephContext*), librados::v14_2_0::RadosClient::RadosClient(ceph::common::CephContext*)::{lambda(ceph::common::CephContext*)#1}>::_M_invoke(std::_Any_data const&, ceph::common::CephContext*&&) <null> (librados.so.2+0x1469fb)
    #5 librados::v14_2_0::RadosClient::~RadosClient() <null> (librados.so.2+0x15c8a4)
    #6 librados::v14_2_0::RadosClient::~RadosClient() <null> (librados.so.2+0x15c966)
    #7 rados_shutdown@@ <null> (librados.so.2+0x5950f)
    #8 __pyx_pf_5rados_5Rados_8shutdown /root/ceph/build/src/pybind/rados/pyrex/rados.c:13440 (rados.cpython-38-x86_64-linux-gnu.so+0x5b9b8)
    #9 __pyx_pw_5rados_5Rados_9shutdown /root/ceph/build/src/pybind/rados/pyrex/rados.c:13395 (rados.cpython-38-x86_64-linux-gnu.so+0x5b9b8)

  Previous read of size 1 at 0x7b54000403e1 by thread T4:
    #0 std::_Function_handler<void (), NetworkStack::add_thread(unsigned int)::{lambda()#1}>::_M_invoke(std::_Any_data const&) <null> (libceph-common.so.2+0x935eb3)
    #1 std::thread::_State_impl<std::thread::_Invoker<std::tuple<std::function<void ()> > > >::_M_run() <null> (libceph-common.so.2+0x932dc3)
    #2 <null> <null> (libstdc++.so.6+0xda6b3)

  Location is heap block of size 520 at 0x7b5400040380 allocated by thread T3:
    #0 operator new(unsigned long) ../../../../src/libsanitizer/tsan/tsan_new_delete.cpp:64 (libtsan.so.0+0x8f542)
    #1 NetworkStack::create_worker(ceph::common::CephContext*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int) <null> (libceph-common.so.2+0x934fe3)
    #2 NetworkStack::NetworkStack(ceph::common::CephContext*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) <null> (libceph-common.so.2+0x9354e1)
    #3 PosixNetworkStack::PosixNetworkStack(ceph::common::CephContext*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) <null> (libceph-common.so.2+0x931905)
    #4 NetworkStack::create(ceph::common::CephContext*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) <null> (libceph-common.so.2+0x934ce9)
    #5 AsyncMessenger::AsyncMessenger(ceph::common::CephContext*, entity_name_t, 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> >, unsigned long) <null> (libceph-common.so.2+0x8859dd)
    #6 Messenger::create(ceph::common::CephContext*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, entity_name_t, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, unsigned long) <null> (libceph-common.so.2+0x852645)
    #7 Messenger::create_client_messenger(ceph::common::CephContext*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) <null> (libceph-common.so.2+0x853165)
    #8 MonClient::get_monmap_and_config() <null> (libceph-common.so.2+0xa129f4)
    #9 librados::v14_2_0::RadosClient::connect() <null> (librados.so.2+0x15a42e)
    #10 _rados_connect <null> (librados.so.2+0x59275)
    #11 __pyx_pf_5rados_5Rados_28connect /root/ceph/build/src/pybind/rados/pyrex/rados.c:16159 (rados.cpython-38-x86_64-linux-gnu.so+0x80e92)
    #12 __pyx_pw_5rados_5Rados_29connect /root/ceph/build/src/pybind/rados/pyrex/rados.c:16094 (rados.cpython-38-x86_64-linux-gnu.so+0x80e92)

  Thread T23 (tid=483, running) created by main thread at:
    #0 pthread_create ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:969 (libtsan.so.0+0x605f8)
    #1 PyThread_start_new_thread <null> (python3.8+0x670ab9)

  Thread T4 'msgr-worker-0' (tid=463, running) created by thread T3 at:
    #0 pthread_create ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:969 (libtsan.so.0+0x605f8)
    #1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xda989)
    #2 NetworkStack::start() <null> (libceph-common.so.2+0x934721)
    #3 AsyncMessenger::AsyncMessenger(ceph::common::CephContext*, entity_name_t, 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> >, unsigned long) <null> (libceph-common.so.2+0x88501f)
    #4 Messenger::create(ceph::common::CephContext*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, entity_name_t, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, unsigned long) <null> (libceph-common.so.2+0x852645)
    #5 Messenger::create_client_messenger(ceph::common::CephContext*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) <null> (libceph-common.so.2+0x853165)
    #6 MonClient::get_monmap_and_config() <null> (libceph-common.so.2+0xa129f4)
    #7 librados::v14_2_0::RadosClient::connect() <null> (librados.so.2+0x15a42e)
    #8 _rados_connect <null> (librados.so.2+0x59275)
    #9 __pyx_pf_5rados_5Rados_28connect /root/ceph/build/src/pybind/rados/pyrex/rados.c:16159 (rados.cpython-38-x86_64-linux-gnu.so+0x80e92)
    #10 __pyx_pw_5rados_5Rados_29connect /root/ceph/build/src/pybind/rados/pyrex/rados.c:16094 (rados.cpython-38-x86_64-linux-gnu.so+0x80e92)

  Thread T3 (tid=462, finished) created by main thread at:
    #0 pthread_create ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:969 (libtsan.so.0+0x605f8)
    #1 PyThread_start_new_thread <null> (python3.8+0x670ab9)

SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/ceph/libceph-common.so.2+0x934a66) in NetworkStack::stop()

Can somebody help me solve these problems? Thanks in advance!

No data to display

Actions

Also available in: Atom PDF