Skip to content
  • Georgios Bitzes's avatar
    COMMON: Fix data-race (write under read lock) in FileSystem.hh · c84510bd
    Georgios Bitzes authored
    WARNING: ThreadSanitizer: data race (pid=11483)
      Write of size 8 at 0x7b4c000036b0 by thread T105 (mutexes: read M2044, read M2202):
        #0 eos::common::FileSystem::SetLongLong(char const*, long long, bool) /afs/cern.ch/user/g/gbitzes/dev/eos-dev/common/FileSystem.hh:390 (libXrdEosMgm.so+0x00000027d722)
        #1 eos::mgm::Messaging::Update(XrdAdvisoryMqMessage*) /afs/cern.ch/user/g/gbitzes/dev/eos-dev/mgm/Messaging.cc:163 (libXrdEosMgm.so+0x00000027d722)
        #2 eos::mgm::Messaging::Process(XrdMqMessage*) /afs/cern.ch/user/g/gbitzes/dev/eos-dev/mgm/Messaging.cc:220 (libXrdEosMgm.so+0x00000027bfab)
        #3 eos::mgm::Messaging::Listen() /afs/cern.ch/user/g/gbitzes/dev/eos-dev/mgm/Messaging.cc:187 (libXrdEosMgm.so+0x00000027ab4e)
        #4 XrdMqMessaging::Start(void*) /afs/cern.ch/user/g/gbitzes/dev/eos-dev/mq/XrdMqMessaging.cc:35 (libXrdMqClient.so.4+0x0000000272ac)
        #5 XrdSysThread_Xeq <null> (libXrdUtils.so.2+0x00000002d75e)
        #6 <null> <null> (libtsan.so.0+0x0000000257eb)
    
      Previous write of size 8 at 0x7b4c000036b0 by main thread (mutexes: read M2044, read M2202):
        #0 eos::common::FileSystem::SetString(char const*, char const*, bool) /afs/cern.ch/user/g/gbitzes/dev/eos-dev/common/FileSystem.hh:358 (libXrdEosMgm.so+0x0000005421e3)
        #1 eos::mgm::FileSystem::SetConfigStatus(int) /afs/cern.ch/user/g/gbitzes/dev/eos-dev/mgm/FileSystem.cc:166 (libXrdEosMgm.so+0x0000005421e3)
        #2 eos::mgm::FsView::ReapplyConfigStatus() /afs/cern.ch/user/g/gbitzes/dev/eos-dev/mgm/FsView.cc:4153 (libXrdEosMgm.so+0x00000041b7bb)
        #3 eos::mgm::Master::Activate(XrdOucString&, XrdOucString&, int) /afs/cern.ch/user/g/gbitzes/dev/eos-dev/mgm/Master.cc:1145 (libXrdEosMgm.so+0x0000006940d8)
        #4 eos::mgm::Master::ApplyMasterConfig(XrdOucString&, XrdOucString&, eos::mgm::Master::Transition::Type) /afs/cern.ch/user/g/gbitzes/dev/eos-dev/mgm/Master.cc:1056 (libXrdEosMgm.so+0x00000069483b)
        #5 XrdMgmOfs::Configure(XrdSysError&) /afs/cern.ch/user/g/gbitzes/dev/eos-dev/mgm/XrdMgmOfsConfigure.cc:1899 (libXrdEosMgm.so+0x000000455222)
        #6 XrdSfsGetFileSystem /afs/cern.ch/user/g/gbitzes/dev/eos-dev/mgm/XrdMgmOfs.cc:137 (libXrdEosMgm.so+0x0000004cc72f)
        #7 XrdXrootdloadFileSystem(XrdSysError*, XrdSfsFileSystem*, char*, int, char const*, XrdOucEnv*) <null> (libXrdServer.so.2+0x00000004be05)
        #8 XrdXrootdProtocol::Configure(char*, XrdProtocol_Config*) <null> (libXrdServer.so.2+0x000000045671)
        #9 XrdgetProtocol <null> (libXrdServer.so.2+0x000000055233)
        #10 XrdProtLoad::getProtocol(char const*, char const*, char*, XrdProtocol_Config*) <null> (xrootd+0x00000040de08)
        #11 XrdProtLoad::Load(char const*, char const*, char*, XrdProtocol_Config*) <null> (xrootd+0x00000040def2)
        #12 XrdConfig::Setup(char*) <null> (xrootd+0x0000004079ea)
        #13 XrdConfig::Configure(int, char**) <null> (xrootd+0x00000040c4be)
        #14 main <null> (xrootd+0x000000406465)
    c84510bd