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

ROOT 6 does not read ROOT 5 RooFit workspaces because of cint <-> cling difference

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Critical
    • Resolution: Fixed
    • 6.10/06, 6.12/06, 6.14/06
    • 6.16/00
    • Cling, RooFit/RooStats
    • None
    • Ubuntu / MacOS with master

    Description

      Opening a ROOT 5 workspace like rf502_workspace.root, the following happens:

      Warning in <TStreamerInfo::BuildCheck>:
       The StreamerInfo of class RooExpensiveObjectCache read from file /home/shageboe/ThesisWorkspace/125.root
       has the same version (=2) as the active class but a different checksum.
       You should update the version to ClassDef(RooExpensiveObjectCache,3).
       Do not try to write objects with the current class definition,
       the files will not be readable.
       
      Warning in <TStreamerInfo::CompareContent>: The following data member of
       the on-file layout version 2 of class 'RooExpensiveObjectCache' differs from
       the in-memory layout version 2:
       map<TString,ExpensiveObject*> _map; //
       vs
       map<TString,RooExpensiveObjectCache::ExpensiveObject*> _map; //
      
      

      The problem is a nested class in RooExpensiveObjectCache, where the name generated by TClass changes.

      5.34/32

      TClass::GetClass("map<TString,ExpensiveObject*>")->GetName()
      (const char* 0x1d2cde0)"map<TString,RooExpensiveObjectCache::ExpensiveObject*>"
      

      master

      TClass::GetClass("map<TString,ExpensiveObject*>")->GetName()
      (const char *) "map<TString,ExpensiveObject*>"
      

      This triggers the streamer warning above.

      Master with using declaration:

      using ExpensiveObject = RooExpensiveObjectCache::ExpensiveObject;
      

      TClass::GetClass("map<TString,ExpensiveObject*>")->GetName()
      (const char *) "map<TString,RooExpensiveObjectCache::ExpensiveObject*>"
      

      This doesn't trigger the streamer warning. However, when reading the Workspace, SIGSEV in

      #0  0x00007ffff4c1d021 in TStreamerInfo::ReadBuffer<char**> (this=0x134d400, b=..., arr=@0x7fffff7ff6f0: 0x7fffff7ff700, 
          compinfo=0x2171418, first=0, last=1, narr=1, eoffset=0, arrayMode=0)
          at /home/shageboe/root-src/io/io/src/TStreamerInfoReadBuffer.cxx:759
      #1  0x00007ffff4aa5857 in TStreamerInfoActions::GenericReadAction (buf=..., addr=0x3733fb0, config=0x2171400)
          at /home/shageboe/root-src/io/io/src/TStreamerInfoActions.cxx:185
      #2  0x00007ffff49aa9d5 in TStreamerInfoActions::TConfiguredAction::operator() (this=0x1aca4d0, buffer=..., object=0x3733fb0)
          at /home/shageboe/root-dbg/include/TStreamerInfoActions.h:124
      #3  0x00007ffff49a9503 in TBufferFile::ApplySequence (this=0x135b160, sequence=..., obj=0x3733fb0)
          at /home/shageboe/root-src/io/io/src/TBufferFile.cxx:3564
      #4  0x00007ffff49a8ee1 in TBufferFile::ReadClassBuffer (this=0x135b160, cl=0x1787b40, pointer=0x3733fb0, onFileClass=0x0)
          at /home/shageboe/root-src/io/io/src/TBufferFile.cxx:3485
      #5  0x00007fffe7bcea11 in RooAbsArg::Streamer (this=0x3733fb0, R(bool)=...)
          at /home/shageboe/root-src/roofit/roofitcore/src/RooAbsArg.cxx:2417
      #6  0x00007ffff77fe6fd in TStreamerBase::ReadBuffer (this=0x134ca30, b=..., pointer=0x3733fb0 "\020\310\r\350\377\177")
          at /home/shageboe/root-src/core/meta/src/TStreamerElement.cxx:752
      #7  0x00007ffff4c25c06 in TStreamerInfo::ReadBuffer<char**> (this=0x134c860, b=..., arr=@0x7fffff801340: 0x7fffff801350, 
          compinfo=0x21a4a48, first=0, last=1, narr=1, eoffset=0, arrayMode=0)
          at /home/shageboe/root-src/io/io/src/TStreamerInfoReadBuffer.cxx:1342
      #8  0x00007ffff4aa5857 in TStreamerInfoActions::GenericReadAction (buf=..., addr=0x3733fb0, config=0x21a4a30)
          at /home/shageboe/root-src/io/io/src/TStreamerInfoActions.cxx:185
      #9  0x00007ffff49aa9d5 in TStreamerInfoActions::TConfiguredAction::operator() (this=0xe7e6b0, buffer=..., object=0x3733fb0)
          at /home/shageboe/root-dbg/include/TStreamerInfoActions.h:124
      #10 0x00007ffff49a9503 in TBufferFile::ApplySequence (this=0x135b160, sequence=..., obj=0x3733fb0)
          at /home/shageboe/root-src/io/io/src/TBufferFile.cxx:3564
      #11 0x00007ffff49a8ee1 in TBufferFile::ReadClassBuffer (this=0x135b160, cl=0x17873a0, pointer=0x3733fb0, onFileClass=0x0)
          at /home/shageboe/root-src/io/io/src/TBufferFile.cxx:3485
      #12 0x00007ffff77fe82d in TStreamerBase::ReadBuffer (this=0x134c580, b=..., pointer=0x3733fb0 "\020\310\r\350\377\177")
          at /home/shageboe/root-src/core/meta/src/TStreamerElement.cxx:773
      #13 0x00007ffff4c25c06 in TStreamerInfo::ReadBuffer<char**> (this=0x134c340, b=..., arr=@0x7fffff802f60: 0x7fffff802f70, 
          compinfo=0x222a348, first=0, last=1, narr=1, eoffset=0, arrayMode=0)
          at /home/shageboe/root-src/io/io/src/TStreamerInfoReadBuffer.cxx:1342
      #14 0x00007ffff4aa5857 in TStreamerInfoActions::GenericReadAction (buf=..., addr=0x3733fb0, config=0x222a330)
          at /home/shageboe/root-src/io/io/src/TStreamerInfoActions.cxx:185
      #15 0x00007ffff49aa9d5 in TStreamerInfoActions::TConfiguredAction::operator() (this=0x222b9e0, buffer=..., object=0x3733fb0)
          at /home/shageboe/root-dbg/include/TStreamerInfoActions.h:124
      #16 0x00007ffff49a9503 in TBufferFile::ApplySequence (this=0x135b160, sequence=..., obj=0x3733fb0)
          at /home/shageboe/root-src/io/io/src/TBufferFile.cxx:3564
      #17 0x00007ffff49a8ee1 in TBufferFile::ReadClassBuffer (this=0x135b160, cl=0x1786710, pointer=0x3733fb0, onFileClass=0x0)
          at /home/shageboe/root-src/io/io/src/TBufferFile.cxx:3485
      #18 0x00007fffe7d0ec68 in RooRealVar::Streamer (this=0x3733fb0, R(bool)=...)
          at /home/shageboe/root-src/roofit/roofitcore/src/RooRealVar.cxx:1143
      #19 0x00007ffff77a6b82 in TClass::StreamerTObjectInitialized (pThis=0x1ccc5d0, object=0x3733fb0, b=...)
          at /home/shageboe/root-src/core/meta/src/TClass.cxx:6529
      #20 0x00007ffff49aa163 in TClass::Streamer (this=0x1ccc5d0, obj=0x3733fb0, b=..., onfile_class=0x0)
          at /home/shageboe/root-dbg/include/TClass.h:568
      #21 0x00007ffff49a5849 in TBufferFile::ReadObjectAny (this=0x135b160, clCast=0xf0af50)
          at /home/shageboe/root-src/io/io/src/TBufferFile.cxx:2471
      #22 0x00007ffff769efbd in operator>><TObject> (buf=..., obj=@0x7fffff803590: 0x167a050)
          at /home/shageboe/root-dbg/include/TBuffer.h:390
      #23 0x00007fffe7cae68b in RooLinkedList::Streamer (this=0x3733398, R(bool)=...)
          at /home/shageboe/root-src/roofit/roofitcore/src/RooLinkedList.cxx:889
      #24 0x00007ffff4c2591f in TStreamerInfo::ReadBuffer<char**> (this=0x1339a10, b=..., arr=@0x7fffff804df0: 0x7fffff804e00, 
          compinfo=0x1fefce8, first=0, last=1, narr=1, eoffset=0, arrayMode=0)
          at /home/shageboe/root-src/io/io/src/TStreamerInfoReadBuffer.cxx:1303
      #25 0x00007ffff4aa5857 in TStreamerInfoActions::GenericReadAction (buf=..., addr=0x3733380, config=0x1fefcd0)
      ...
       
      #8256 0x00007ffff4a0d443 in TDirectoryFile::Get (this=0x1038f70, namecycle=0x7fffffff8c88 "combined")
          at /home/shageboe/root-src/io/io/src/TDirectoryFile.cxx:952
      #8257 0x00007ffff75ab0bc in TROOT::FindSpecialObject (this=0x7ffff7b66e88 <ROOT::Internal::GetROOT1()::alloc>, 
          name=0x7fffffff8c88 "combined", where=@0xbd8fe0: 0x647bb0) at /home/shageboe/root-src/core/base/src/TROOT.cxx:1394
      #8258 0x00007ffff10bddd5 in TCling::GetObjectAddress (this=0x69d410, Name=0x7fffffff8c88 "combined", 
      ---Type <return> to continue, or q <return> to quit---
          LookupCtx=@0xbd8fe0: 0x647bb0) at /home/shageboe/root-src/core/metacling/src/TCling.cxx:7047
      #8259 0x00007ffff10bda9a in TCling__GetObjectAddress (Name=0x7fffffff8c88 "combined", LookupCtx=@0xbd8fe0: 0x647bb0)
          at /home/shageboe/root-src/core/metacling/src/TCling.cxx:619
      #8260 0x00007ffff11f44d8 in TClingCallbacks::tryFindROOTSpecialInternal (this=0xbd8fb0, R=..., S=0x840030)
          at /home/shageboe/root-src/core/metacling/src/TClingCallbacks.cxx:490
      #8261 0x00007ffff11f423a in TClingCallbacks::LookupObject (this=0xbd8fb0, R=..., S=0x840030)
          at /home/shageboe/root-src/core/metacling/src/TClingCallbacks.cxx:259
      #8262 0x00007ffff12436bf in cling::MultiplexInterpreterCallbacks::LookupObject(clang::LookupResult&, clang::Scope*) ()
         from /home/shageboe/root-dbg/lib/libCling.so
      #8263 0x00007ffff2698303 in clang::MultiplexExternalSemaSource::LookupUnqualified(clang::LookupResult&, clang::Scope*) ()
         from /home/shageboe/root-dbg/lib/libCling.so
      #8264 0x00007ffff29ede98 in clang::Sema::LookupName(clang::LookupResult&, clang::Scope*, bool) ()
         from /home/shageboe/root-dbg/lib/libCling.so
      #8265 0x00007ffff275732c in clang::Sema::ClassifyName(clang::Scope*, clang::CXXScopeSpec&, clang::IdentifierInfo*&, clang::SourceLocation, clang::Token const&, bool, std::unique_ptr<clang::CorrectionCandidateCallback, std::default_delete<clang::CorrectionCandidateCallback> >) () from /home/shageboe/root-dbg/lib/libCling.so
      #8266 0x00007ffff264953f in clang::Parser::TryAnnotateName(bool, std::unique_ptr<clang::CorrectionCandidateCallback, std::default_delete<clang::CorrectionCandidateCallback> >) () from /home/shageboe/root-dbg/lib/libCling.so
      #8267 0x00007ffff262d35f in clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::AllowedConstructsKind, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) ()
         from /home/shageboe/root-dbg/lib/libCling.so
      #8268 0x00007ffff262d142 in clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::AllowedConstructsKind, clang::SourceLocation*) () from /home/shageboe/root-dbg/lib/libCling.so
      #8269 0x00007ffff2633775 in clang::Parser::ParseCompoundStatementBody(bool) () from /home/shageboe/root-dbg/lib/libCling.so
      #8270 0x00007ffff2633f93 in clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) ()
         from /home/shageboe/root-dbg/lib/libCling.so
      #8271 0x00007ffff2648407 in clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) () from /home/shageboe/root-dbg/lib/libCling.so
      #8272 0x00007ffff25c7b40 in clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, unsigned int, clang::SourceLocation*, clang::Parser::ForRangeInit*) () from /home/shageboe/root-dbg/lib/libCling.so
      #8273 0x00007ffff264778d in clang::Parser::ParseDeclOrFunctionDefInternal(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec&, clang::AccessSpecifier) () from /home/shageboe/root-dbg/lib/libCling.so
      #8274 0x00007ffff264708d in clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*, clang::AccessSpecifier) () from /home/shageboe/root-dbg/lib/libCling.so
      #8275 0x00007ffff26463c0 in clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) () from /home/shageboe/root-dbg/lib/libCling.so
      #8276 0x00007ffff2645043 in clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) ()
         from /home/shageboe/root-dbg/lib/libCling.so
      #8277 0x00007ffff12a6d0c in cling::IncrementalParser::ParseInternal(llvm::StringRef) ()
         from /home/shageboe/root-dbg/lib/libCling.so
      #8278 0x00007ffff12a835a in cling::IncrementalParser::Compile(llvm::StringRef, cling::CompilationOptions const&) ()
         from /home/shageboe/root-dbg/lib/libCling.so
      #8279 0x00007ffff123dba2 in cling::Interpreter::EvaluateInternal(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cling::CompilationOptions, cling::Value*, cling::Transaction**, unsigned long) ()
         from /home/shageboe/root-dbg/lib/libCling.so
      #8280 0x00007ffff123d328 in cling::Interpreter::process(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cling::Value*, cling::Transaction**, bool) () from /home/shageboe/root-dbg/lib/libCling.so
      #8281 0x00007ffff12e8665 in cling::MetaProcessor::process(llvm::StringRef, cling::Interpreter::CompilationResult&, cling::Value*, bool) () from /home/shageboe/root-dbg/lib/libCling.so
      #8282 0x00007ffff10cb0f7 in HandleInterpreterException (metaProcessor=0xbe6e50, 
          input_line=0x1e65010 "#line 1 \"ROOT_prompt_3\"\ncombined", compRes=@0x7fffffffae7c: cling::Interpreter::kSuccess, 
          result=0x7fffffffae80) at /home/shageboe/root-src/core/metacling/src/TCling.cxx:2150
      #8283 0x00007ffff10cad2c in TCling::ProcessLine (this=0x69d410, line=0x1e64fd0 "#line 1 \"ROOT_prompt_3\"\ncombined", 
          error=0x7fffffffb424) at /home/shageboe/root-src/core/metacling/src/TCling.cxx:2308
      #8284 0x00007ffff7678a74 in TApplication::ProcessLine (this=0x687900, line=0x1e64fd0 "#line 1 \"ROOT_prompt_3\"\ncombined", 
      ---Type <return> to continue, or q <return> to quit---
          sync=false, err=0x7fffffffb424) at /home/shageboe/root-src/core/base/src/TApplication.cxx:1031
      #8285 0x00007ffff7bb7665 in TRint::ProcessLineNr (this=0x687900, filestem=0x7ffff7bcaeb2 "ROOT_prompt_", 
          line=0x7fffffffb579 "combined", error=0x7fffffffb424) at /home/shageboe/root-src/core/rint/src/TRint.cxx:746
      #8286 0x00007ffff7bb88ac in TRint::HandleTermInput (this=0x687900) at /home/shageboe/root-src/core/rint/src/TRint.cxx:607
      #8287 0x00007ffff7bb536a in TTermInputHandler::Notify (this=0xe62d50) at /home/shageboe/root-src/core/rint/src/TRint.cxx:131
      #8288 0x00007ffff7bba329 in TTermInputHandler::ReadNotify (this=0xe62d50)
          at /home/shageboe/root-src/core/rint/src/TRint.cxx:123
      #8289 0x00007ffff78253a2 in TUnixSystem::CheckDescriptors (this=0x6277c0)
          at /home/shageboe/root-src/core/unix/src/TUnixSystem.cxx:1322
      #8290 0x00007ffff7824de7 in TUnixSystem::DispatchOneEvent (this=0x6277c0, pendingOnly=false)
          at /home/shageboe/root-src/core/unix/src/TUnixSystem.cxx:1077
      #8291 0x00007ffff76fbace in TSystem::InnerLoop (this=0x6277c0) at /home/shageboe/root-src/core/base/src/TSystem.cxx:412
      #8292 0x00007ffff76fb7b5 in TSystem::Run (this=0x6277c0) at /home/shageboe/root-src/core/base/src/TSystem.cxx:362
      #8293 0x00007ffff7679a84 in TApplication::Run (this=0x687900, retrn=false)
          at /home/shageboe/root-src/core/base/src/TApplication.cxx:1183
      #8294 0x00007ffff7bb7537 in TRint::Run (this=0x687900, retrn=false) at /home/shageboe/root-src/core/rint/src/TRint.cxx:460
      #8295 0x00000000004009c6 in main (argc=1, argv=0x7fffffffdc58) at /home/shageboe/root-src/main/src/rmain.cxx:30
      
      

       

      Not all ROOT 6 versions are affected:
      A bit of bash-scripting yields:

      6.00.02-x86_64-slc6-gcc48-opt
       Warning in cling::CIFactory::createCI():
        C++ ABI mismatch, compiled with __GLIBCXX__ v20130531 running with v20141219
       
      6.02.12-x86_64-slc6-gcc48-opt OK
      6.04.10-x86_64-slc6-gcc48-opt OK
      6.04.12-x86_64-slc6-gcc49-opt OK
      6.04.14-x86_64-slc6-gcc49-opt OK
      6.04.16-HiggsComb-x86_64-slc6-gcc49-opt OK
      6.04.16-x86_64-slc6-gcc49-opt OK
      6.04.18-x86_64-slc6-gcc49-opt OK
      6.06.02-x86_64-slc6-gcc48-opt OK
      6.06.02-x86_64-slc6-gcc49-opt OK
      6.06.06-x86_64-slc6-gcc49-opt OK
      6.08.00-x86_64-slc6-gcc49-opt OK
      6.08.02-x86_64-slc6-gcc49-opt OK
      6.08.02-x86_64-slc6-gcc62-opt
      Error: unable to find match to xrootd4.4.1-6.08.02-x86_64-slc6-gcc62-opt
      6.08.06-HiggsComb-x86_64-slc6-gcc49-opt OK
      6.08.06-x86_64-slc6-gcc49-opt OK
      6.08.06-x86_64-slc6-gcc62-opt OK
      6.10.06-x86_64-slc6-gcc62-opt affected
      6.12.06-x86_64-slc6-gcc62-opt affected
      6.14.04-x86_64-slc6-gcc62-opt affected
      
      

      Attachments

        Activity

          People

            pcanal Philippe Canal
            shageboe Stephan Hageboeck
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:
              Actual End: