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

Segmentation violation in rootcint

    XMLWordPrintable

    Details

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

      Description

      I made i bisect and found that the problem comes from the following commit: commit 9d33273de21076ee78ce558ed47da95892ec5dc1:

      Author: Philippe Canal <pcanal@fnal.gov>
      Date: Mon Aug 31 15:37:32 2015 -0500
      Enable auto-parsing when autoloading is disabled in TClingCallbacks::LookupObject(clang::TagDecl* Tag).

      If I revert it, rootcint/rootcling works.

      ....

      I am working with the master of Root6. The following command fails with segmentation violation in the creation of the dictionary and rootmap:

      /home/hristov/alice/root/bin/rootcint -f /home/hristov/alice/AliRoot/obj/EVE/EveDet/G__EveDet.cxx -rmf /home/hristov/alice/AliRoot/obj/EVE/EveDet/libEveDet.rootmap -rml libEveDet -DZMQ -DWITHXML -DWITHALIEN -I/home/hristov/alice/AliRoot/VZERO/VZEROrec -I/home/hristov/alice/AliRoot/TRD/TRDrec -I/home/hristov/alice/AliRoot/TRD/TRDbase -I/home/hristov/alice/AliRoot/TPC/TPCbase -I/home/hristov/alice/AliRoot/TOF/TOFbase -I/home/hristov/alice/AliRoot/T0/T0base -I/home/hristov/alice/AliRoot/STEER/STEERBase -I/home/hristov/alice/AliRoot/STEER/STEER -I/home/hristov/alice/AliRoot/STEER/ESD -I/home/hristov/alice/AliRoot/STEER/CDB -I/home/hristov/alice/AliRoot/STEER/AOD -I/home/hristov/alice/AliRoot/RAW/RAWDatarec -I/home/hristov/alice/AliRoot/RAW/RAWDatabase -I/home/hristov/alice/AliRoot/PMD/PMDbase -I/home/hristov/alice/AliRoot/MUON/MUONsim -I/home/hristov/alice/AliRoot/MUON/MUONrec -I/home/hristov/alice/AliRoot/MUON/MUONmapping -I/home/hristov/alice/AliRoot/MUON/MUONgeometry -I/home/hristov/alice/AliRoot/MUON/MUONcore -I/home/hristov/alice/AliRoot/MUON/MUONbase -I/home/hristov/alice/AliRoot/MONITOR/alistoragemanager -I/home/hristov/alice/AliRoot/ITS/UPGRADE/ITSUpgradeSim -I/home/hristov/alice/AliRoot/ITS/UPGRADE/ITSUpgradeBase -I/home/hristov/alice/AliRoot/ITS/ITSsim -I/home/hristov/alice/AliRoot/ITS/ITSbase -I/home/hristov/alice/AliRoot/FMD/FMDsim -I/home/hristov/alice/AliRoot/FMD/FMDrec -I/home/hristov/alice/AliRoot/FMD/FMDbase -I/home/hristov/alice/AliRoot/EVE/EveBase -I/home/hristov/alice/AliRoot/EMCAL/EMCALUtils -I/home/hristov/alice/AliRoot/EMCAL/EMCALbase -I/home/hristov/alice/AliRoot/ANALYSIS/ANALYSISalice -I/home/hristov/alice/AliRoot/ANALYSIS/ANALYSIS -I/home/hristov/alice/AliRoot/AD/ADbase -I/home/hristov/alice/root/include -I/home/hristov/alice/AliRoot/EVE/EveDet -I/home/hristov/alien/api/include AliEveADModule.h AliEveEMCALData.h AliEveEMCALSModule.h AliEveEMCALSModuleData.h AliEveFMDLoader.h AliEveITSDigitsInfo.h AliEveITSModule.h AliEveITSModuleStepper.h AliEveITSModuleStepperEditor.h AliEveITSScaledModule.h AliEveITSScaledModuleEditor.h AliEveITSUModule.h AliEveListAnalyser.h AliEveListAnalyserEditor.h AliEveMUONChamber.h AliEveMUONChamberData.h AliEveMUONChamberEditor.h AliEveMUONChamberGL.h AliEveMUONData.h AliEveMUONTrack.h AliEvePMDModule.h AliEvePMDModuleEditor.h AliEveT0Module.h AliEveTOFDigitsInfo.h AliEveTOFDigitsInfoEditor.h AliEveTOFSector.h AliEveTOFSectorEditor.h AliEveTOFStrip.h AliEveTOFStripEditor.h AliEveTPCData.h AliEveTPCLoader.h AliEveTPCLoaderEditor.h AliEveTPCSector2D.h AliEveTPCSector2DEditor.h AliEveTPCSector2DGL.h AliEveTPCSector3D.h AliEveTPCSector3DEditor.h AliEveTPCSector3DGL.h AliEveTPCSectorData.h AliEveTPCSectorViz.h AliEveTPCSectorVizEditor.h AliEveTRDData.h AliEveTRDDataEditor.h AliEveTRDLoader.h AliEveTRDLoaderImp.h AliEveTRDLoaderManager.h AliEveTRDModule.h AliEveTRDModuleImp.h AliEveTRDTrackList.h AliEveTRDTrackListEditor.h AliEveVZEROModule.h AliEveVZEROModuleEditor.h EveDetLinkDef.h

      The backtrace is
      ===========================================================
      There was a crash.
      This is the entire stack trace of all threads:
      ===========================================================
      #0  0x00007fa051a2f84a in __GI___waitpid (pid=17975, stat_loc=stat_loc
      entry=0x7ffdab3d0880, options=options
      entry=0) at ../sysdeps/unix/sysv/linux/waitpid.c:31
      #1  0x00007fa0519a8ffb in do_system (line=<optimized out>) at ../sysdeps/posix/system.c:148
      #2  0x0000000000ad63cf in Exec (shellcmd=<optimized out>, this=<optimized out>) at /home/hristov/alice/root/core/unix/src/TUnixSystem.cxx:2073
      #3  TUnixSystem::StackTrace (this=0x4935190) at /home/hristov/alice/root/core/unix/src/TUnixSystem.cxx:2301
      #4  0x0000000000ad857c in TUnixSystem::DispatchSignals (this=0x4935190, sig=kSigSegmentationViolation) at /home/hristov/alice/root/core/unix/src/TUnixSystem.cxx:3539
      #5  <signal handler called>
      #6  0x0000000000d51b53 in dyn_cast_or_null<clang::ClassTemplateDecl, clang::NamedDecl> (Val=<optimized out>) at /home/hristov/alice/root/interpreter/llvm/inst/include/llvm/Support/Casting.h:321
      #7  TCling::AutoParseImplRecurse (this=this
      entry=0x49a49e0, cls=cls
      entry=0x7059ac8 "map<int,TClonesArray*>", topLevel=topLevel
      entry=true) at /home/hristov/alice/root/core/meta/src/TCling.cxx:5189
      #8  0x0000000000d52597 in TCling::AutoParse (this=0x49a49e0, cls=0x7059ac8 "map<int,TClonesArray*>") at /home/hristov/alice/root/core/meta/src/TCling.cxx:5312
      #9  0x0000000000d88e19 in TClingCallbacks::LookupObject (this=<optimized out>, Tag=0x7fa0509ebf10) at /home/hristov/alice/root/core/meta/src/TClingCallbacks.cxx:300
      #10 0x0000000000909440 in cling::MultiplexInterpreterCallbacks::LookupObject (this=<optimized out>, T=0x7fa0509ebf10) at /home/hristov/alice/root/interpreter/cling/lib/Interpreter/MultiplexInterpreterCallbacks.h:70
      #11 0x00000000015dedf6 in clang::Sema::RequireCompleteTypeImpl(clang::SourceLocation, clang::QualType, clang::Sema::TypeDiagnoser&) ()
      #12 0x00000000015deaa0 in clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType, clang::Sema::TypeDiagnoser&) ()
      #13 0x00000000015d06e5 in clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType, unsigned int) ()
      #14 0x00000000012a7c97 in clang::Sema::CheckFieldDecl(clang::DeclarationName, clang::QualType, clang::TypeSourceInfo*, clang::RecordDecl*, clang::SourceLocation, bool, clang::Expr*, clang::InClassInitStyle, clang::SourceLocation, clang::AccessSpecifier, clang::NamedDecl*, clang::Declarator*) ()
      #15 0x00000000012a7ad2 in clang::Sema::HandleField(clang::Scope*, clang::RecordDecl*, clang::SourceLocation, clang::Declarator&, clang::Expr*, clang::InClassInitStyle, clang::AccessSpecifier) ()
      #16 0x00000000012ef0d0 in clang::Sema::ActOnCXXMemberDeclarator(clang::Scope*, clang::AccessSpecifier, clang::Declarator&, llvm::MutableArrayRef<clang::TemplateParameterList*>, clang::Expr*, clang::VirtSpecifiers const&, clang::InClassInitStyle) ()
      #17 0x000000000115c423 in clang::Parser::ParseCXXClassMemberDeclaration(clang::AccessSpecifier, clang::AttributeList*, clang::Parser::ParsedTemplateInfo const&, clang::ParsingDeclRAIIObject*) ()
      #18 0x0000000001158e0f in clang::Parser::ParseCXXMemberSpecification(clang::SourceLocation, clang::SourceLocation, clang::Parser::ParsedAttributesWithRange&, unsigned int, clang::Decl*) ()
      #19 0x0000000001156fcd in clang::Parser::ParseClassSpecifier(clang::tok::TokenKind, clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, bool, clang::Parser::DeclSpecContext, clang::Parser::ParsedAttributesWithRange&) ()
      #20 0x000000000113bed7 in clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*) ()
      #21 0x00000000011b30f0 in clang::Parser::ParseDeclOrFunctionDefInternal(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec&, clang::AccessSpecifier) ()
      #22 0x00000000011b2e90 in clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*, clang::AccessSpecifier) ()
      #23 0x00000000011b229e in clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) ()
      #24 0x00000000011b15b8 in clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) ()
      #25 0x00000000009c87bd in cling::IncrementalParser::ParseInternal (this=0x49a7260, input=...) at /home/hristov/alice/root/interpreter/cling/lib/Interpreter/IncrementalParser.cpp:781
      #26 0x00000000009c9b0c in cling::IncrementalParser::Compile (this=0x49a7260, input=..., Opts=...) at /home/hristov/alice/root/interpreter/cling/lib/Interpreter/IncrementalParser.cpp:672
      #27 0x00000000009026d9 in cling::Interpreter::DeclareInternal (this=0x49a4d00, input="#ifndef G__VECTOR_HAS_CLASS_ITERATOR\n  #define G__VECTOR_HAS_CLASS_ITERATOR 1\n#endif\n#ifndef ZMQ\n  #define ZMQ 1\n#endif\n#ifndef WITHXML\n  #define WITHXML 1\n#endif\n#ifndef WITHALIEN\n  #define WITHALIEN"..., CO=..., T=0x0) at /home/hristov/alice/root/interpreter/cling/lib/Interpreter/Interpreter.cpp:942
      #28 0x00000000009028ad in cling::Interpreter::declare (this=<optimized out>, input=..., T=<optimized out>) at /home/hristov/alice/root/interpreter/cling/lib/Interpreter/Interpreter.cpp:602
      #29 0x0000000000885294 in InjectModuleUtilHeader (argv0=0x7fa051d29c00 <main_arena> "", modGen=..., interp=..., umbrella=32) at /home/hristov/alice/root/core/utils/src/rootcling.cxx:2212
      #30 0x0000000000888e0b in RootCling (argc=100, argv=0x7ffdab3d6fe8, isDeep=isDeep
      entry=false, isGenreflex=32, isGenreflex
      entry=false) at /home/hristov/alice/root/core/utils/src/rootcling.cxx:4390
      #31 0x00000000008598f7 in main (argc=100, argv=0x7ffdab3d6fe8) at /home/hristov/alice/root/core/utils/src/rootcling.cxx:5886
      ===========================================================

        Attachments

        1. reproducer.tgz
          2 kB
        2. val.log
          38 kB

          Activity

            People

            • Assignee:
              pcanal Philippe Canal
              Reporter:
              hristov Peter Hristov
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: