Uploaded image for project: 'ROOT'
  1. ROOT
  2. ROOT-10508

RDataFrame created from TChain after calling TChain::AddFriend() crashes when trying to plot a variable if MultiThread is enabled

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: High
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 6.22/00
    • Component/s: None
    • Labels:
      None
    • Environment:

      Ubuntu 18.04, ROOT master

      Description

      When running the following small reproducer: 

      TChain* chain = new TChain();
      chain->Add("file.root/myTree");
       
      TChain* fchain = new TChain();
      fchain->Add("filez.root/myTree");
       
      chain->AddFriend(fchain);
       
      ROOT::EnableImplicitMT(1);
      ROOT::RDataFrame rdf(*chain);
      auto h = rdf.Histo1D("px");
      h->Draw();
      

      I get a crash with the following stack:

      Error in <TFile::GetObjectChecked>: The provided key name is invalid
      .
       
       
       
       *** Break *** segmentation violation
       
       
       
       
       
       
       
      ===========================================================
       
      There was a crash.
       
      This is the entire stack trace of all threads:
       
      ===========================================================
       
      #0  0x00007fefc6b96687 in __GI___waitpid (pid=14397, stat_loc=stat_l
      oc
       
      entry=0x7ffcaf4b2c28, options=options
       
      entry=0) at ../sysdeps/unix/sysv/linux/waitpid.c:30
       
      #1  0x00007fefc6b01067 in do_system (line=<optimized out>) at ../sys
      deps/posix/system.c:149
       
      #2  0x00007fefc773ae23 in TUnixSystem::StackTrace() () from /home/ma
      ssimiliano/root-devel/build_master/lib/libCore.so
       
      #3  0x00007fefc773d814 in TUnixSystem::DispatchSignals(ESignals) () 
      from /home/massimiliano/root-devel/build_master/lib/libCore.so
       
      #4  <signal handler called>
       
      #5  0x00007fefb3a05c93 in ROOT::TTreeProcessorMT::Process(std::funct
      ion<void (TTreeReader&)>) () from /home/massimiliano/root-devel/buil
      d_master/lib/libTreePlayer.so
       
      #6  0x00007fefb3d153f7 in ROOT::Detail::RDF::RLoopManager::RunTreePr
      ocessorMT() () from /home/massimiliano/root-devel/build_master/lib/l
      ibROOTDataFrame.so
       
      #7  0x00007fefb3d159e5 in ROOT::Detail::RDF::RLoopManager::Run() () 
      from /home/massimiliano/root-devel/build_master/lib/libROOTDataFrame
      .so
       
      #8  0x00007fefc7fdeb1f in ?? ()
       
      #9  0x00007ffcaf4b5a30 in ?? ()
       
      #10 0x00007ffcaf4b5b28 in ?? ()
       
      #11 0x00007ffcaf4b5a30 in ?? ()
       
      #12 0x00007fefc7fdeb77 in ?? ()
       
      #13 0x00007ffcaf4b5b28 in ?? ()
       
      #14 0x00007ffcaf4b5b28 in ?? ()
       
      #15 0x00007ffcaf4b5a50 in ?? ()
       
      #16 0x00007fefc7fded9c in ?? ()
       
      #17 0x00007ffcaf4b5b60 in ?? ()
       
      #18 0x00007ffcaf4b5b28 in ?? ()
       
      #19 0x00007ffcaf4b5c00 in ?? ()
       
      #20 0x00007fefc7fdd2c4 in ?? ()
       
      #21 0x0000000000000000 in ?? ()
       
      ===========================================================
       
       
       
       
       
      The lines below might hint at the cause of the crash.
       
      You may get help by asking at the ROOT forum http://root.cern.ch/for
      um
       
      Only if you are really convinced it is a bug in ROOT then please sub
      mit a
       
      report at http://root.cern.ch/bugs Please post the ENTIRE stack trac
      e
       
      from above as an attachment in addition to anything else
       
      that might help us fixing this issue.
       
      ===========================================================
       
      #5  0x00007fefb3a05c93 in ROOT::TTreeProcessorMT::Process(std::funct
      ion<void (TTreeReader&)>) () from /home/massimiliano/root-devel/buil
      d_master/lib/libTreePlayer.so
       
      #6  0x00007fefb3d153f7 in ROOT::Detail::RDF::RLoopManager::RunTreePr
      ocessorMT() () from /home/massimiliano/root-devel/build_master/lib/l
      ibROOTDataFrame.so
       
      #7  0x00007fefb3d159e5 in ROOT::Detail::RDF::RLoopManager::Run() () 
      from /home/massimiliano/root-devel/build_master/lib/libROOTDataFrame
      .so
       
      #8  0x00007fefc7fdeb1f in ?? ()
       
      #9  0x00007ffcaf4b5a30 in ?? ()
       
      #10 0x00007ffcaf4b5b28 in ?? ()
       
      #11 0x00007ffcaf4b5a30 in ?? ()
       
      #12 0x00007fefc7fdeb77 in ?? ()
       
      #13 0x00007ffcaf4b5b28 in ?? ()
       
      #14 0x00007ffcaf4b5b28 in ?? ()
       
      #15 0x00007ffcaf4b5a50 in ?? ()
       
      #16 0x00007fefc7fded9c in ?? ()
       
      #17 0x00007ffcaf4b5b60 in ?? ()
       
      #18 0x00007ffcaf4b5b28 in ?? ()
       
      #19 0x00007ffcaf4b5c00 in ?? ()
       
      #20 0x00007fefc7fdd2c4 in ?? ()
       
      #21 0x0000000000000000 in ?? ()
       
      ===========================================================
      

      Everything works fine if I remove 

      ROOT::EnableImplicitMT(1);
      

       

      I also attach the files used to generate the files.

      Am I doing something wrong?

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                swunsch Stefan Wunsch
                Reporter:
                gallim Massimiliano Galli
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: