1. 18 Aug, 2017 7 commits
  2. 17 Aug, 2017 5 commits
  3. 16 Aug, 2017 8 commits
  4. 15 Aug, 2017 11 commits
    • MQ: Fix lock-order-inversion between WatchMutex and mSubjectsMutex · e4a9d91d
      WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=30633)
        Cycle in lock order graph: M758 (0x7f4ad14344e0) => M759 (0x7f4ad1434510) => M758
      
        Mutex M759 acquired here while holding mutex M758 in thread T61:
          #0 pthread_mutex_lock <null> (libtsan.so.0+0x00000003b62e)
          #1 XrdSysMutex::Lock() /usr/include/xrootd/XrdSys/XrdSysPthread.hh:149 (libXrdEosMgm.so+0x000000552aca)
          #2 XrdMqSharedObjectChangeNotifier::SomListener() /afs/cern.ch/user/g/gbitzes/dev/eos/mq/XrdMqSharedObject.cc:2120 (libXrdEosMgm.so+0x000000552aca)
          #3 XrdMqSharedObjectChangeNotifier::StartSomListener(void*) /afs/cern.ch/user/g/gbitzes/dev/eos/mq/XrdMqSharedObject.cc:2330 (libXrdEosMgm.so+0x000000555205)
          #4 XrdSysThread_Xeq /home/gbitzes/xrootd/src/XrdSys/XrdSysPthread.cc:86 (libXrdUtils.so.2+0x00000002d50f)
          #5 <null> <null> (libtsan.so.0+0x0000000257eb)
      
          Hint: use TSAN_OPTIONS=second_deadlock_stack=1 to get more informative warning message
      
        Mutex M758 acquired here while holding mutex M759 in thread T61:
          #0 pthread_mutex_lock <null> (libtsan.so.0+0x00000003b62e)
          #1 XrdSysMutex::Lock() /usr/include/xrootd/XrdSys/XrdSysPthread.hh:149 (libXrdEosMgm.so+0x0000005549ca)
          #2 XrdMqSharedObjectChangeNotifier::SomListener() /afs/cern.ch/user/g/gbitzes/dev/eos/mq/XrdMqSharedObject.cc:2309 (libXrdEosMgm.so+0x0000005549ca)
          #3 XrdMqSharedObjectChangeNotifier::StartSomListener(void*) /afs/cern.ch/user/g/gbitzes/dev/eos/mq/XrdMqSharedObject.cc:2330 (libXrdEosMgm.so+0x000000555205)
          #4 XrdSysThread_Xeq /home/gbitzes/xrootd/src/XrdSys/XrdSysPthread.cc:86 (libXrdUtils.so.2+0x00000002d50f)
          #5 <null> <null> (libtsan.so.0+0x0000000257eb)
      Georgios Bitzes committed
    • MGM: Make IostatLastPopularityBin atomic, as it's accessed concurrently · d045f3b2
      Caught by TSan:
      
      WARNING: ThreadSanitizer: data race (pid=12134)
        Write of size 8 at 0x7f917b733578 by thread T53 (mutexes: write M742):
          #0 eos::mgm::Iostat::AddToPopularity(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long long, long, long) /afs/cern.ch/user/g/gbitzes/dev/eos/mgm/Iostat.hh:365 (libXrdEosMgm.so+0x0000003f873e)
          #1 eos::mgm::Iostat::Receive() /afs/cern.ch/user/g/gbitzes/dev/eos/mgm/Iostat.cc:325 (libXrdEosMgm.so+0x0000003f873e)
          #2 eos::mgm::Iostat::StaticReceive(void*) /afs/cern.ch/user/g/gbitzes/dev/eos/mgm/Iostat.cc:241 (libXrdEosMgm.so+0x0000003fa2f5)
          #3 XrdSysThread_Xeq /home/gbitzes/xrootd/src/XrdSys/XrdSysPthread.cc:86 (libXrdUtils.so.2+0x00000002d50f)
          #4 <null> <null> (libtsan.so.0+0x0000000257eb)
      
        Previous read of size 8 at 0x7f917b733578 by thread T67:
          #0 eos::mgm::Iostat::Circulate() /afs/cern.ch/user/g/gbitzes/dev/eos/mgm/Iostat.cc:1541 (libXrdEosMgm.so+0x0000003e920b)
          #1 eos::mgm::Iostat::StaticCirculate(void*) /afs/cern.ch/user/g/gbitzes/dev/eos/mgm/Iostat.cc:248 (libXrdEosMgm.so+0x0000003e9675)
          #2 XrdSysThread_Xeq /home/gbitzes/xrootd/src/XrdSys/XrdSysPthread.cc:86 (libXrdUtils.so.2+0x00000002d50f)
          #3 <null> <null> (libtsan.so.0+0x0000000257eb)
      
        As if synchronized via sleep:
          #0 nanosleep <null> (libtsan.so.0+0x00000004c2e1)
          #1 XrdSysTimer::Snooze(int) /home/gbitzes/xrootd/src/XrdSys/XrdSysTimer.cc:180 (libXrdUtils.so.2+0x00000002e162)
          #2 eos::mgm::Iostat::Receive() /afs/cern.ch/user/g/gbitzes/dev/eos/mgm/Iostat.cc:475 (libXrdEosMgm.so+0x0000003f994b)
          #3 eos::mgm::Iostat::StaticReceive(void*) /afs/cern.ch/user/g/gbitzes/dev/eos/mgm/Iostat.cc:241 (libXrdEosMgm.so+0x0000003fa2f5)
          #4 XrdSysThread_Xeq /home/gbitzes/xrootd/src/XrdSys/XrdSysPthread.cc:86 (libXrdUtils.so.2+0x00000002d50f)
          #5 <null> <null> (libtsan.so.0+0x0000000257eb)
      
        Location is global 'XrdSfsGetFileSystem::myFS' of size 23216 at 0x7f917b7313c0 (libXrdEosMgm.so+0x00000084f578)
      Georgios Bitzes committed
    • NS: Fix InhericChildren, in-memory implementation did not override interface · f7b6a45e
      Discovered through a clang warning:
      
      /afs/cern.ch/user/g/gbitzes/dev/eos/namespace/ns_in_memory/ContainerMD.hh:131:8:
        warning: 'eos::ContainerMD::InheritChildren' hides overloaded virtual function [-Woverloaded-virtual]
        void InheritChildren(const ContainerMD& other);
             ^
      /afs/cern.ch/user/g/gbitzes/dev/eos/namespace/interface/IContainerMD.hh:80:16:
        note: hidden overloaded virtual function 'eos::IContainerMD::InheritChildren' declared here: type mismatch at 1st parameter ('const eos::IContainerMD &' vs 'const eos::ContainerMD &')
        virtual void InheritChildren(const IContainerMD& other)
                     ^
      Georgios Bitzes committed
  5. 14 Aug, 2017 9 commits