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

Major failure on linux interactive python with template instantiations

    XMLWordPrintable

    Details

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

      SLF6, GCC 6.2.0 (new ABI).

      Description

      This was reported to Philippe and co. by email in September. Due to the difficulty of making a minimal reproducer, Philippe has been working in an art software environment in order to trace the problem.

      Here is the original backtrace:

      #0  0x00007fffee747d23 in clang::TemplateTypeParmDecl::getDefaultArgumentLoc() const () from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #1  0x00007fffed9d15bf in clang::Sema::CheckTemplateParameterList(clang::TemplateParameterList*, clang::TemplateParameterList*, clang::Sema::TemplateParamListContext) ()
         from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #2  0x00007fffed9eb409 in clang::Sema::CheckClassTemplate(clang::Scope*, unsigned int, clang::Sema::TagUseKind, clang::SourceLocation, clang::CXXScopeSpec&, clang::IdentifierInfo*, clang::SourceLocation, clang::AttributeList*, clang::TemplateParameterList*, clang::AccessSpecifier, clang::SourceLocation, clang::SourceLocation, unsigned int, clang::TemplateParameterList**, clang::Sema::SkipBodyInfo*) ()
         from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #3  0x00007fffed7350ba in clang::Sema::ActOnTag(clang::Scope*, unsigned int, clang::Sema::TagUseKind, clang::SourceLocation, clang::CXXScopeSpec&, clang::IdentifierInfo*, clang::SourceLocation, clang::AttributeList*, clang::AccessSpecifier, clang::SourceLocation, llvm::MutableArrayRef<clang::TemplateParameterList*>, bool&, bool&, clang::SourceLocation, bool, clang::ActionResult<clang::OpaquePtr<clang::QualType>, false>, bool, clang::Sema::SkipBodyInfo*) () from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #4  0x00007fffed519fda in clang::Parser::ParseClassSpecifier(clang::tok::TokenKind, clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, bool, clang::Parser::DeclSpecContext, clang::Parser::ParsedAttributesWithRange&) () from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #5  0x00007fffed4f8bc8 in clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*) () from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #6  0x00007fffed574861 in clang::Parser::ParseSingleDeclarationAfterTemplate(unsigned int, clang::Parser::ParsedTemplateInfo const&, clang::ParsingDeclRAIIObject&, clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*) () from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #7  0x00007fffed576241 in clang::Parser::ParseTemplateDeclarationOrSpecialization(unsigned int, clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*) ()
         from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #8  0x00007fffed57642f in clang::Parser::ParseDeclarationStartingWithTemplate(unsigned int, clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*) ()
         from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #9  0x00007fffed504027 in clang::Parser::ParseDeclaration(unsigned int, clang::SourceLocation&, clang::Parser::ParsedAttributesWithRange&) ()
         from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #10 0x00007fffed585731 in clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) ()
         from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #11 0x00007fffed511163 in clang::Parser::ParseInnerNamespace(std::vector<clang::SourceLocation, std::allocator<clang::SourceLocation> >&, std::vector<clang::IdentifierInfo*, std::allocator<clang::IdentifierInfo*> >&, std::vector<clang::SourceLocation, std::allocator<clang::SourceLocation> >&, unsigned int, clang::SourceLocation&, clang::ParsedAttributes&, clang::BalancedDelimiterTracker&) ()
         from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #12 0x00007fffed511782 in clang::Parser::ParseNamespace(unsigned int, clang::SourceLocation&, clang::SourceLocation) ()
         from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #13 0x00007fffed50407d in clang::Parser::ParseDeclaration(unsigned int, clang::SourceLocation&, clang::Parser::ParsedAttributesWithRange&) ()
         from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #14 0x00007fffed585731 in clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) ()
         from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #15 0x00007fffed586254 in clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) () from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #16 0x00007fffed11ef61 in cling::IncrementalParser::ParseInternal(llvm::StringRef) () from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #17 0x00007fffed1202dc in cling::IncrementalParser::Compile(llvm::StringRef, cling::CompilationOptions const&) ()
         from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #18 0x00007fffed0c178e in cling::Interpreter::DeclareInternal(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cling::CompilationOptions const&, cling::Transaction**) const () from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #19 0x00007fffed0c18a4 in cling::Interpreter::parseForModule(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
         from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #20 0x00007fffed0737fe in ExecAutoParse(char const*, bool, cling::Interpreter*) () from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #21 0x00007fffed073de7 in TCling::AutoParseImplRecurse(char const*, bool) () from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #22 0x00007fffed0741ce in TCling::AutoParse(char const*) () from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #23 0x00007fffed08d63e in TClingCallbacks::LookupObject(clang::TagDecl*) () from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #24 0x00007fffed0bf750 in cling::MultiplexInterpreterCallbacks::LookupObject(clang::TagDecl*) () from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #25 0x00007fffedaccbf4 in clang::MultiplexExternalSemaSource::CompleteType(clang::TagDecl*) () from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #26 0x00007fffeda9ea96 in clang::Sema::RequireCompleteTypeImpl(clang::SourceLocation, clang::QualType, clang::Sema::TypeDiagnoser*) ()
         from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #27 0x00007fffeda9ec65 in clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType, clang::Sema::TypeDiagnoser&) ()
         from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #28 0x00007fffed6a4710 in clang::Sema::RequireCompleteDeclContext(clang::CXXScopeSpec&, clang::DeclContext*) ()
         from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #29 0x00007fffed9cf3af in clang::Sema::LookupTemplateName(clang::LookupResult&, clang::Scope*, clang::CXXScopeSpec&, clang::QualType, bool, bool&) ()
         from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #30 0x00007fffed9d02ee in clang::Sema::isTemplateName(clang::Scope*, clang::CXXScopeSpec&, bool, clang::UnqualifiedId&, clang::OpaquePtr<clang::QualType>, bool, clang::OpaquePtr<clang::TemplateName>&, bool&)
          () from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #31 0x00007fffed53118a in clang::Parser::ParseOptionalCXXScopeSpecifier(clang::CXXScopeSpec&, clang::OpaquePtr<clang::QualType>, bool, bool*, bool, clang::IdentifierInfo**) ()
         from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #32 0x00007fffed4fd774 in clang::Parser::ParseDeclaratorInternal(clang::Declarator&, void (clang::Parser::*)(clang::Declarator&)) ()
         from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #33 0x00007fffed4fe002 in clang::Parser::ParseDeclarator(clang::Declarator&) () from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #34 0x00007fffed574a97 in clang::Parser::ParseSingleDeclarationAfterTemplate(unsigned int, clang::Parser::ParsedTemplateInfo const&, clang::ParsingDeclRAIIObject&, clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*) () from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #35 0x00007fffed575dc1 in clang::Parser::ParseExplicitInstantiation(unsigned int, clang::SourceLocation, clang::SourceLocation, clang::SourceLocation&, clang::AccessSpecifier) ()
         from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #36 0x00007fffed5764d6 in clang::Parser::ParseDeclarationStartingWithTemplate(unsigned int, clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*) ()
         from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #37 0x00007fffed504027 in clang::Parser::ParseDeclaration(unsigned int, clang::SourceLocation&, clang::Parser::ParsedAttributesWithRange&) ()
         from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #38 0x00007fffed585731 in clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) ()
         from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #39 0x00007fffed586254 in clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) () from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #40 0x00007fffed11ef04 in cling::IncrementalParser::ParseInternal(llvm::StringRef) () from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #41 0x00007fffed1202dc in cling::IncrementalParser::Compile(llvm::StringRef, cling::CompilationOptions const&) ()
         from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #42 0x00007fffed0c178e in cling::Interpreter::DeclareInternal(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cling::CompilationOptions const&, cling::Transaction**) const () from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #43 0x00007fffed0c292b in cling::Interpreter::process(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cling::Value*, cling::Transaction**) ()
         from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #44 0x00007fffed1586cf in cling::MetaProcessor::process(char const*, cling::Interpreter::CompilationResult&, cling::Value*) ()
         from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #45 0x00007fffed069eb8 in HandleInterpreterException(cling::MetaProcessor*, char const*, cling::Interpreter::CompilationResult&, cling::Value*) ()
         from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #46 0x00007fffed0764f1 in TCling::ProcessLine(char const*, TInterpreter::EErrorCode*) () from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #47 0x00007fffeff5b8c9 in TApplication::ProcessLine(char const*, bool, int*) () from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCore.so
      #48 0x00007fffefef93d3 in TROOT::ProcessLine(char const*, int*) () from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCore.so
      #49 0x00007ffff7c00066 in ?? ()
      #50 0x00007fffffff95a0 in ?? ()
      #51 0x0000000002f73830 in ?? ()
      #52 0x0000000002f73830 in ?? ()
      #53 0x00007fffffff96f0 in ?? ()
      #54 0x0000000002f73830 in ?? ()
      #55 0x00007fffed095f52 in TClingCallFunc::IFacePtr() () from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCling.so
      #56 0x00007ffff02cb7e0 in guard variable for ROOT::Internal::GetROOT1()::alloc () from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libCore.so
      #57 0x00007fffffff96f0 in ?? ()
      #58 0x00007ffff14f3047 in FastCall(long, void*, void*, void*) () from /home/greenc/work/cet-is/test-products/root/v6_07_99/Linux64bit+2.6-2.12-e12-prof/lib/libPyROOT.so
      Backtrace stopped: previous frame inner to this frame (corrupt stack?)

      and Philippe's initial comment on the problem:

      Apparently there is some code (produced in part by rootcling) that is breaking clang.

      Taking a look at the libgallery_dict dictionary might give a clue.

      > clang::TemplateTypeParmDecl::getDefaultArgumentLoc()

      It seems that clang is looking for a 'file location'. One potential cause is that one of the necessary header file was not found.

      At any rate being able to reproduce the problem with a full debug build of ROOT (i.e. CMAKE_BUILD_TYPE and LLVM_BUILD_TYPE both set to Debug) would be the fastest way to resolve this.

      Thanks,
      Philippe.

        Attachments

          Activity

            People

            • Assignee:
              pcanal Philippe Canal
              Reporter:
              chgreen Christopher Green
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:
                Actual End: