xAODMuon: Generate ElementLink dictionary for xAOD::MuonContainer.
Avoid auto-parsing, which was seen to casue crashes in 6.20.02.
See !31633 (merged).
Merge request reports
Activity
added EDM master review-pending-level-1 labels
- Resolved by Attila Krasznahorkay
CI Result FAILURE (hash e1225f41)Athena AthSimulation AnalysisBase AthGeneration externals cmake make required tests optional tests Full details available on this CI monitor view
Athena: number of compilation errors 0, warnings 0
AthSimulation: number of compilation errors 0, warnings 0
AnalysisBase: number of compilation errors 1, warnings 1
AthGeneration: number of compilation errors 0, warnings 0
For experts only: Jenkins output [CI-MERGE-REQUEST-CC7 12263]added review-user-action-required label and removed review-pending-level-1 label
mentioned in merge request !31983 (merged)
added 1 commit
- eed2b9cb - Explicitly request required dictionaries rather than using the ELEMENT_LINKS cmake pattern.
hi -
Sorry to be excessively sketchy.
This is addressing these failures seen in the debug build:
1 - xAODDataSource_dataSourceEvent_test_ctest (Failed) 2 - xAODDataSource_dataSource_test_ctest (Failed) 3 - xAODDataSource_dataFrame_test_ctest (Failed) 4 - xAODDataSource_dataFrameTypeConversion_test_ctest (Failed) 5 - xAODDataSource_dataFrameElementLink_test_ctest (Failed) 6 - xAODDataSource_dataFrame_pytest_ctest (Failed) 7 - xAODRootAccess_ut_xaodrootaccess_metadata_test_ctest (Failed) 8 - xAODRootAccess_ut_xaodrootaccess_athenaMode_test_ctest (Failed) 9 - xAODRootAccess_ut_xaodrootaccess_remap_test_ctest (Failed) 10 - xAODRootAccess_ut_xaodrootaccess_slimming_test_ctest (Failed) 11 - xAODRootAccess_ut_xaodrootaccess_stats_test_ctest (Failed) 15 - xAODRootAccess_ut_xaodrootaccess_tchain_test_ctest (Failed) 20 - xAODRootAccess_ut_xaodrootaccess_proxydict_test_ctest (Failed)
which crash like this:
ut_xaodrootaccess_metadata_test.exe: /workspace/build/projects/ROOT-v6.20.02/src/ROOT/v6.20.02/interpreter/llvm/src/tools/clang/lib/Sema/SemaLookup.cpp:2001: bool clang::Sema::LookupQualifiedName(clang::LookupResult&, clang::DeclContext*, bool): Assertion `(!isa<TagDecl>(LookupCtx) || LookupCtx->isDependentContext() || cast<TagDecl>(LookupCtx)->isCompleteDefinition() || cast<TagDecl>(LookupCtx)->isBeingDefined()) && "Declaration context must already be complete!"' failed.
with a stack trace like:
#3 0x00007ffff2bc1202 in __assert_fail () from /lib64/libc.so.6 #4 0x00007fffe96f1979 in clang::Sema::LookupQualifiedName(clang::LookupResult&, clang::DeclContext*, bool) [clone .part.1376] () from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc8-dbg/sw/lcg/releases/LCG_97/ROOT/v6.20.02/x86_64-centos7-gcc8-dbg/lib/libCling.so #5 0x00007fffe981774d in clang::Sema::CheckTypenameType(clang::ElaboratedTypeKeyword, clang::SourceLocation, clang::NestedNameSpecifierLoc, clang::IdentifierInfo const&, clang::SourceLocation) () from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc8-dbg/sw/lcg/releases/LCG_97/ROOT/v6.20.02/x86_64-centos7-gcc8-dbg/lib/libCling.so ... #43 0x00007fffe8afa181 in GetClassSharedLibsForModule ( cls=0x16ac2f60 "SG::AuxTypeVectorFactory<vector<ElementLink<DataVector<xAOD::Muon_v1> > > >", LH=...) at /workspace/build/projects/ROOT-v6.20.02/src/ROOT/v6.20.02/core/metacling/src/TCling.cxx:6875
So cling is crashing trying to autoparse SG::AuxTypeVectorFactory<std::vector<ElementLinkxAOD::MuonContainer >
Regardless of why cling is crashing, we prefer explcitly-generated dictionaries to autoparsing. So the goal here was to generate a dictionary for the above class.
I added the ELEMENT_LINK pattern because that generates a dictionary for
<class name="SG::AuxTypeVectorFactory<ElementLink<@type@> >" />
Although that doesn't seem to be exactly the same type, it was sufficient to fix the crashes.
I didn't notice, though, that this would also define ElementLinkVector types, which is what led to the failure in AnalysisBase.
Requesting just these types explicitly is sufficient to fix the crashes, so i'll try that.
added review-pending-level-1 label and removed review-user-action-required label
CI Result SUCCESS (hash eed2b9cb)Athena AthSimulation AnalysisBase AthGeneration externals cmake make required tests optional tests Full details available on this CI monitor view
Athena: number of compilation errors 0, warnings 0
AthSimulation: number of compilation errors 0, warnings 0
AnalysisBase: number of compilation errors 0, warnings 0
AthGeneration: number of compilation errors 0, warnings 0
For experts only: Jenkins output [CI-MERGE-REQUEST-CC7 12308]Changing back to review-user-action-required. Clara (L1)
added review-user-action-required label and removed review-pending-level-1 label
32 32 // EDM include(s): 33 33 #include "AthLinks/DataLink.h" 34 34 #include "AthLinks/ElementLink.h" 35 #include "xAODRootAccess/tools/TAuxVectorFactory.h" I am baffled by this.
Why would you want the EDM to depend on
xAODRootAccess
?!? It should be picking upSG::AuxTypeVectorFactory
from its original location.The header you use here (xAODRootAccess/tools/TAuxVectorFactory.h) rather defines the
xAOD::TAuxVectorFactory
class.And if we have to start generating a dictionary for
xAOD::TAuxTypeVectorFactory<ElementLink<xAOD::MuonContainer> >
, then we're definitely on the wrong track with this MR. At that point we would have to overcome the issue by "fixing ROOT".
mentioned in merge request !32081 (closed)