cms-sw / cmssw

CMS Offline Software
http://cms-sw.github.io/
Apache License 2.0
1.07k stars 4.28k forks source link

Unexpected parsing of classes by ROOT 6.24 #40375

Open Dr15Jones opened 1 year ago

Dr15Jones commented 1 year ago

When turning on gDebug = 2 and INFO messages, I see the following

%MSG-i Root_Information:  TrackRefitter:refittedForPixelDQM@ctor  TInterpreter::TCling::AutoParse() 20-Dec-2022 11:15:37 CST pre-events
Trying to autoparse for edm::OneToOne<vector<Trajectory>,vector<reco::Track>,unsigned short>
%MSG
%MSG-i Root_Information:  TrackRefitter:refittedForPixelDQM@ctor  TInterpreter::TCling::AutoParse() 20-Dec-2022 11:15:37 CST pre-events
Starting autoparse for vector<Trajectory>

%MSG
%MSG-i Root_Information:  TrackRefitter:refittedForPixelDQM@ctor  TInterpreter::TCling::AutoParse() 20-Dec-2022 11:15:37 CST pre-events
Starting autoparse for Trajectory

%MSG
%MSG-i Root_Information:  TrackRefitter:refittedForPixelDQM@ctor  TInterpreter::TCling::AutoParse() 20-Dec-2022 11:15:37 CST pre-events
We can proceed for Trajectory. We have 1 headers.
%MSG
%MSG-i Root_Information:  TrackRefitter:refittedForPixelDQM@ctor  TInterpreter::AutoParse() 20-Dec-2022 11:15:37 CST pre-events
Parsing full payload for Trajectory
%MSG
%MSG-i Root_Information:  TrackRefitter:refittedForPixelDQM@ctor  TInterpreter::Autoparse() 20-Dec-2022 11:15:39 CST pre-events
>>> RSS key Trajectory - before 1280.796 MB - after 1295.516 MB - delta 14.720 MB
%MSG
%MSG-i Root_Information:  TrackRefitter:refittedForPixelDQM@ctor  TInterpreter::Autoparse() 20-Dec-2022 11:15:39 CST pre-events
>>> VSIZE key Trajectory - before 1830.676 MB - after 1830.688 MB - delta 0.012 MB
%MSG

and

%MSG-i Root_Information:  TrackRefitter:refittedForPixelDQM@ctor  TInterpreter::TCling::AutoParse() 20-Dec-2022 11:15:39 CST pre-events
Starting autoparse for vector<reco::Track>

%MSG
%MSG-i Root_Information:  TrackRefitter:refittedForPixelDQM@ctor  TInterpreter::TCling::AutoParse() 20-Dec-2022 11:15:39 CST pre-events
Starting autoparse for reco::Track

%MSG
%MSG-i Root_Information:  TrackRefitter:refittedForPixelDQM@ctor  TInterpreter::TCling::AutoParse() 20-Dec-2022 11:15:39 CST pre-events
We can proceed for reco::Track. We have 1 headers.
%MSG
%MSG-i Root_Information:  TrackRefitter:refittedForPixelDQM@ctor  TInterpreter::AutoParse() 20-Dec-2022 11:15:39 CST pre-events
Parsing full payload for reco::Track
%MSG
%MSG-i Root_Information:  TrackRefitter:refittedForPixelDQM@ctor  TInterpreter::Autoparse() 20-Dec-2022 11:15:39 CST pre-events
>>> RSS key reco::Track - before 1295.516 MB - after 1299.612 MB - delta 4.096 MB
%MSG
%MSG-i Root_Information:  TrackRefitter:refittedForPixelDQM@ctor  TInterpreter::Autoparse() 20-Dec-2022 11:15:39 CST pre-events
>>> VSIZE key reco::Track - before 1830.688 MB - after 1830.700 MB - delta 0.012 MB
%MSG

In both cases, we have explicit directives to generate the dictionaries https://github.com/cms-sw/cmssw/blob/6d2f66057131baacc2fcbdd203588c41c885b42c/TrackingTools/PatternTools/src/classes_def.xml#L2

https://github.com/cms-sw/cmssw/blob/6d2f66057131baacc2fcbdd203588c41c885b42c/DataFormats/TrackReco/src/classes_def.xml#L338

Dr15Jones commented 1 year ago

@pcanal FYI

cmsbuild commented 1 year ago

A new Issue was created by @Dr15Jones Chris Jones.

@Dr15Jones, @perrotta, @dpiparo, @rappoccio, @makortel, @smuzaffar can you please review it and eventually sign/assign? Thanks.

cms-bot commands are listed here

Dr15Jones commented 1 year ago

assign core

cmsbuild commented 1 year ago

New categories assigned: core

@Dr15Jones,@smuzaffar,@makortel you have been requested to review this Pull request/Issue and eventually sign? Thanks

Dr15Jones commented 1 year ago

I see this for other cases as well, such as reco::Muon.

One particular one that stands out is the message

%MSG-i Root_Information:  MuonSelector:muonsPt10@ctor  TInterpreter::TCling::AutoParse() 20-Dec-2022 11:15:43 CST pre-events
Starting autoparse for edm::Ref<vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track> >

%MSG
%MSG-i Root_Information:  MuonSelector:muonsPt10@ctor  TInterpreter::TCling::AutoParse() 20-Dec-2022 11:15:43 CST pre-events
We can proceed for edm::Ref<vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track> >. We have 1 headers.
%MSG
%MSG-i Root_Information:  MuonSelector:muonsPt10@ctor  TClass::GetListOfMethods() 20-Dec-2022 11:15:43 CST pre-events
Header Parsing - Asking for all the methods of class edm::Ref<vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track> >: this can involve parsing.
%MSG

where this does have an explicit dictionary

https://github.com/cms-sw/cmssw/blob/6d2f66057131baacc2fcbdd203588c41c885b42c/DataFormats/TrackReco/src/classes_def.xml#L354

pcanal commented 1 year ago

Does std::vector<reco::Track> also have a dictionary? (does any FindUsingAdvance have a dictionary?)

Dr15Jones commented 1 year ago

Does std::vector also have a dictionary?

Yes https://github.com/cms-sw/cmssw/blob/6d2f66057131baacc2fcbdd203588c41c885b42c/DataFormats/TrackReco/src/classes_def.xml#L351

(does any FindUsingAdvance have a dictionary?)

No, as the type has no state and is not a member of Ref (it just says how to go to the next element in the container).

pcanal commented 1 year ago

For debugging purpose, can you request a dictionary for edm::refhelper::FindUsingAdvance<std::vector<reco::Track> and see it changes the behavior?

Dr15Jones commented 1 year ago

@pcanal adding the FindUsingAdvance dictionary made a small (I don't think overly important) difference.

Doing diff on the two logs (with the old being '<' and the new with the dictionary being '>')

< >>> RSS key reco::Track - before 1295.516 MB - after 1299.612 MB - delta 4.096 MB
> >>> RSS key reco::Track - before 1294.924 MB - after 1299.928 MB - delta 5.004 MB
< >>> VSIZE key reco::Track - before 1830.688 MB - after 1830.700 MB - delta 0.012 MB
> >>> VSIZE key reco::Track - before 1830.180 MB - after 1830.192 MB - delta 0.012 MB
< Starting autoparse for vector<reco::Track>
< Starting autoparse for reco::Track
> We can proceed for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>. We have 1 headers.
< Trying to autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
< Starting autoparse for vector<reco::Track>
< Starting autoparse for reco::Track
< We can proceed for reco::Track. We have 1 headers.
< Starting autoparse for reco::Track
< Starting autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
< Starting autoparse for vector<reco::Track>
< Starting autoparse for reco::Track
< Trying to autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
< Starting autoparse for vector<reco::Track>
< Starting autoparse for reco::Track
< Starting autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
< Trying to autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
< Starting autoparse for vector<reco::Track>
< Starting autoparse for reco::Track
< We can proceed for reco::Track. We have 1 headers.
< Starting autoparse for reco::Track
< Starting autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
< Starting autoparse for vector<reco::Track>
< Starting autoparse for reco::Track
< Trying to autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
< Starting autoparse for vector<reco::Track>
< Starting autoparse for reco::Track
< Starting autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
< Trying to autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
< Starting autoparse for vector<reco::Track>
< Starting autoparse for reco::Track
< Starting autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
< Trying to autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
< Starting autoparse for vector<reco::Track>
< Starting autoparse for reco::Track
< Starting autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
< Trying to autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
< Starting autoparse for vector<reco::Track>
< Starting autoparse for reco::Track
< Starting autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
< Trying to autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
< Starting autoparse for vector<reco::Track>
< Starting autoparse for reco::Track
< Starting autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
> Starting autoparse for reco::Track
> We can proceed for reco::Track. We have 1 headers.
< Trying to autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
< Starting autoparse for vector<reco::Track>
< Starting autoparse for reco::Track
< Starting autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
< Trying to autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
< Starting autoparse for vector<reco::Track>
< Starting autoparse for reco::Track
< Starting autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
< Trying to autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
< Starting autoparse for vector<reco::Track>
< Starting autoparse for reco::Track
< Starting autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
< Trying to autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
< Starting autoparse for vector<reco::Track>
< Starting autoparse for reco::Track
< Starting autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
< Trying to autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
< Starting autoparse for vector<reco::Track>
< Starting autoparse for reco::Track
< Starting autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
< Trying to autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
< Starting autoparse for vector<reco::Track>
< Starting autoparse for reco::Track
< Starting autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
< Trying to autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
< Starting autoparse for vector<reco::Track>
< Starting autoparse for reco::Track
< Starting autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
< Trying to autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
< Starting autoparse for vector<reco::Track>
< Starting autoparse for reco::Track
< Starting autoparse for edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track>
Dr15Jones commented 1 year ago

I guess one difference is ROOT did not do Starting autoparse for vector<reco::Track> once there was an explicit FindUsingAdvance dictionary.

pcanal commented 1 year ago

Note that we were working on a similar issue (https://github.com/cms-sw/cmssw/issues/33196) last year but did not come to a conclusion.

The diff output seems to show 2 things. One is that adding the dictionary for the FindUsingAdvance class does seem to prevent the auto parsing. Second, for some reason to trying many times to auto parse the same classes (hypothesis: it might be because it fails when trying for FindUsingAdvance)

Dr15Jones commented 1 year ago

One can find the log files at FNAL /uscms_data/d2/cdj/build/temp/fix/root6/CMSSW_13_0_ROOT6_X_2022-12-15-2300/matrix/4.44_RunElectron2012A/rootdebug*.log

pcanal commented 1 year ago

It is puzzling why it is still doing the autoparse for reco::Track :(

makortel commented 1 year ago

I dug a bit of the history of the explicit FindUsingAdvance dictionary mentioned in https://github.com/cms-sw/cmssw/issues/33196#issuecomment-800505283. It was merged in master in https://github.com/cms-sw/cmssw/pull/8362, and in the ROOT6 branch of the time in https://github.com/cms-sw/cmssw/pull/5858. The latter PR suggests that the need for explicit FindUsingAdvance dictionary to avoid auto-parsing might have been observed already then?

Dr15Jones commented 1 year ago

From the debugging output from ROOT, here are all the classes for which it says it will be running the parser. The vast majority look like they are from member data we marked as transient.

Long64_t
TStreamerInfoActions::TIDNode
ULong64_t
__atomic_base<Long64_t>
__atomic_base<ROOT::Math::LorentzVector<ROOT::Math::PtEtaPhiM4D<double> >*>
__atomic_base<ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> >*>
__atomic_base<ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double>,ROOT::Math::DefaultCoordinateSystemTag>*>
__atomic_base<ROOT::Math::SMatrix<double,5,5,ROOT::Math::MatRepSym<double,5> >*>
__atomic_base<atomic<atomic<tbb::detail::d1::list_node<unsigned long>*>*>*>
__atomic_base<bool>
__atomic_base<edm::Ptr<reco::PFCandidate>*>
__atomic_base<edm::RefVector<vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track> >*>
__atomic_base<reco::Track*>
__atomic_base<tbb::detail::d1::list_node<unsigned long>*>
__atomic_base<unsigned int>
__atomic_base<unsigned long>
__atomic_base<vector<const void*>*>
__atomic_base<vector<edm::Ptr<CaloTower> >*>
__atomic_base<vector<edm::Ptr<reco::Candidate> >*>
__atomic_base<vector<edm::Ptr<reco::PFCandidate> >*>
__atomic_base<vector<pair<edm::Ref<vector<reco::PFTau>,reco::PFTau,edm::refhelper::FindUsingAdvance<vector<reco::PFTau>,reco::PFTau> >,edm::Ref<vector<reco::PFTauTransverseImpactParameter>,reco::PFTauTransverseImpactParameter,edm::refhelper::FindUsingAdvance<vector<reco::PFTauTransverseImpactParameter>,reco::PFTauTransverseImpactParameter> > > >*>
__atomic_base<vector<pair<edm::Ref<vector<reco::PFTau>,reco::PFTau,edm::refhelper::FindUsingAdvance<vector<reco::PFTau>,reco::PFTau> >,edm::Ref<vector<reco::Vertex>,reco::Vertex,edm::refhelper::FindUsingAdvance<vector<reco::Vertex>,reco::Vertex> > > >*>
__atomic_base<vector<pair<edm::Ref<vector<reco::PFTau>,reco::PFTau,edm::refhelper::FindUsingAdvance<vector<reco::PFTau>,reco::PFTau> >,float> >*>
__atomic_base<vector<pair<edm::Ref<vector<reco::PFTau>,reco::PFTau,edm::refhelper::FindUsingAdvance<vector<reco::PFTau>,reco::PFTau> >,vector<edm::Ref<vector<reco::Vertex>,reco::Vertex,edm::refhelper::FindUsingAdvance<vector<reco::Vertex>,reco::Vertex> > > > >*>
__atomic_base<vector<pair<edm::RefToBase<reco::Jet>,edm::RefVector<vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track> > > >*>
__atomic_base<vector<pair<edm::RefToBase<reco::Jet>,float> >*>
__atomic_base<vector<pair<edm::RefToBase<reco::Jet>,reco::JetExtendedAssociation::JetExtendedData> >*>
__atomic_base<vector<pair<edm::RefToBase<reco::Jet>,reco::JetFlavour> >*>
__atomic_base<vector<pair<edm::RefToBase<reco::Jet>,reco::JetFlavourInfo> >*>
__atomic_base<vector<pair<edm::RefToBase<reco::Jet>,reco::MatchedPartons> >*>
__atomic_base<vector<pair<edm::RefToBase<reco::Jet>,vector<reco::PFRecoTauChargedHadron> > >*>
__atomic_base<vector<pair<edm::RefToBase<reco::Jet>,vector<reco::RecoTauPiZero> > >*>
__atomic_base<vector<reco::PFRecoTauChargedHadron>*>
__atomic_base<vector<reco::RecoTauPiZero>*>
__atomic_base<vector<reco::SuperCluster>*>
__atomic_flag_base
__mutex_base
__pair_base<CSCDetId,pair<unsigned int,unsigned int> >
__pair_base<DTChamberId,pair<unsigned int,unsigned int> >
__pair_base<DTLayerId,pair<unsigned int,unsigned int> >
__pair_base<DetId,float>
__pair_base<RPCDetId,pair<unsigned int,unsigned int> >
__pair_base<edm::BranchID,set<edm::BranchID> >
__pair_base<edm::BranchKey,edm::BranchDescription>
__pair_base<edm::Hash<1>,edm::ParameterSetBlob>
__pair_base<edm::ProductID,unsigned int>
__pair_base<edm::Ptr<reco::Candidate>,reco::SoftLeptonProperties>
__pair_base<pat::IsolationKeys,reco::IsoDeposit>
__pair_base<string,bool>
__pair_base<string,vector<float> >
__pair_base<unsigned int,reco::btag::TrackData>
__pair_base<unsigned int,string>
__pair_base<unsigned int,unsigned int>
__shared_ptr<const CaloCellGeometry>
__shared_ptr<const TrajectorySeed>
__shared_ptr<edm::IndexIntoFile::EventFinder>
__shared_ptr<void>
__uniq_ptr_impl<const reco::JetCorrectorImpl,default_delete<const reco::JetCorrectorImpl> >
__uniq_ptr_impl<edm::storage::Storage,default_delete<edm::storage::Storage> >
__uniq_ptr_impl<gen::PdfInfo,default_delete<gen::PdfInfo> >
__uniq_ptr_impl<unsigned int,cms::cuda::host::impl::HostDeleter>
__uniq_ptr_impl<unsigned int,default_delete<unsigned int[]> >
atomic<EDataType>
atomic<Long64_t>
atomic<ROOT::Math::LorentzVector<ROOT::Math::PtEtaPhiM4D<double> >*>
atomic<ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> >*>
atomic<ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double>,ROOT::Math::DefaultCoordinateSystemTag>*>
atomic<ROOT::Math::SMatrix<double,5,5,ROOT::Math::MatRepSym<double,5> >*>
atomic<TLeaf::DeserializeType> atomic<TLeaf::DeserializeType>
atomic<atomic<atomic<tbb::detail::d1::list_node<unsigned long>*>*>*>
atomic<bool>
atomic<edm::Ptr<reco::PFCandidate>*>
atomic<edm::RefVector<vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track> >*>
atomic<reco::Track*>
atomic<tbb::detail::d1::list_node<unsigned long>*>
atomic<unsigned int>
atomic<vector<const void*>*>
atomic<vector<edm::Ptr<CaloTower> >*>
atomic<vector<edm::Ptr<reco::Candidate> >*>
atomic<vector<edm::Ptr<reco::PFCandidate> >*>
atomic<vector<pair<edm::Ref<vector<reco::PFTau>,reco::PFTau,edm::refhelper::FindUsingAdvance<vector<reco::PFTau>,reco::PFTau> >,edm::Ref<vector<reco::PFTauTransverseImpactParameter>,reco::PFTauTransverseImpactParameter,edm::refhelper::FindUsingAdvance<vector<reco::PFTauTransverseImpactParameter>,reco::PFTauTransverseImpactParameter> > > >*>
atomic<vector<pair<edm::Ref<vector<reco::PFTau>,reco::PFTau,edm::refhelper::FindUsingAdvance<vector<reco::PFTau>,reco::PFTau> >,edm::Ref<vector<reco::Vertex>,reco::Vertex,edm::refhelper::FindUsingAdvance<vector<reco::Vertex>,reco::Vertex> > > >*>
atomic<vector<pair<edm::Ref<vector<reco::PFTau>,reco::PFTau,edm::refhelper::FindUsingAdvance<vector<reco::PFTau>,reco::PFTau> >,float> >*>
atomic<vector<pair<edm::Ref<vector<reco::PFTau>,reco::PFTau,edm::refhelper::FindUsingAdvance<vector<reco::PFTau>,reco::PFTau> >,vector<edm::Ref<vector<reco::Vertex>,reco::Vertex,edm::refhelper::FindUsingAdvance<vector<reco::Vertex>,reco::Vertex> > > > >*>
atomic<vector<pair<edm::RefToBase<reco::Jet>,edm::RefVector<vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track> > > >*>
atomic<vector<pair<edm::RefToBase<reco::Jet>,float> >*>
atomic<vector<pair<edm::RefToBase<reco::Jet>,reco::JetExtendedAssociation::JetExtendedData> >*>
atomic<vector<pair<edm::RefToBase<reco::Jet>,reco::JetFlavour> >*>
atomic<vector<pair<edm::RefToBase<reco::Jet>,reco::JetFlavourInfo> >*>
atomic<vector<pair<edm::RefToBase<reco::Jet>,reco::MatchedPartons> >*>
atomic<vector<pair<edm::RefToBase<reco::Jet>,vector<reco::PFRecoTauChargedHadron> > >*>
atomic<vector<pair<edm::RefToBase<reco::Jet>,vector<reco::RecoTauPiZero> > >*>
atomic<vector<reco::PFRecoTauChargedHadron>*>
atomic<vector<reco::RecoTauPiZero>*>
atomic<vector<reco::SuperCluster>*>
bool
char
cms 
cms::cuda
cms::cuda::host
cms::cuda::host::impl
cms::cuda::host::impl::HostDeleter
double
edm::AtomicPtrCache<edm::Ptr<reco::PFCandidate> >
edm::AtomicPtrCache<vector<edm::Ptr<reco::Candidate> > >
edm::AtomicPtrCache<vector<reco::PFRecoTauChargedHadron> >
edm::AtomicPtrCache<vector<reco::RecoTauPiZero> >
edm::EDGetTokenT<ClusterSummary>
edm::EDGetTokenT<edmNew::DetSetVector<SiStripCluster> >
edm::ESGetToken<SiStripQuality,SiStripQualityRcd>
edm::ESTokenIndex
edm::TypeWithDict
edm::propagate_const<shared_ptr<edm::IndexIntoFile::EventFinder> >
edm::propagate_const<unique_ptr<edm::storage::Storage,default_delete<edm::storage::Storage> > >
edm::propagate_const<vector<unsigned long>*>
edm::value_ptr<vector<unsigned long> >
float
int
pair<Long64_t,TBranch*>
pat::UserHolder<edm::Ptr<pat::PackedCandidate> >
short
signed char
tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<unsigned int,edm::helpers::KeyVal<edm::Ref<vector<reco::PFCandidate>,reco::PFCandidate,edm::refhelper::FindUsingAdvance<vector<reco::PFCandidate>,reco::PFCandidate> >,vector<pair<edm::Ref<vector<reco::Vertex>,reco::Vertex,edm::refhelper::FindUsingAdvance<vector<reco::Vertex>,reco::Vertex> >,int> > >,hash<unsigned int>,equal_to<unsigned int>,tbb::detail::d1::tbb_allocator<pair<const unsigned int,edm::helpers::KeyVal<edm::Ref<vector<reco::PFCandidate>,reco::PFCandidate,edm::refhelper::FindUsingAdvance<vector<reco::PFCandidate>,reco::PFCandidate> >,vector<pair<edm::Ref<vector<reco::Vertex>,reco::Vertex,edm::refhelper::FindUsingAdvance<vector<reco::Vertex>,reco::Vertex> >,int> > > > >,false> >
tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<unsigned int,edm::helpers::KeyVal<edm::Ref<vector<reco::PFJet>,reco::PFJet,edm::refhelper::FindUsingAdvance<vector<reco::PFJet>,reco::PFJet> >,edm::RefVector<vector<reco::PFCandidate>,reco::PFCandidate,edm::refhelper::FindUsingAdvance<vector<reco::PFCandidate>,reco::PFCandidate> > >,hash<unsigned int>,equal_to<unsigned int>,tbb::detail::d1::tbb_allocator<pair<const unsigned int,edm::helpers::KeyVal<edm::Ref<vector<reco::PFJet>,reco::PFJet,edm::refhelper::FindUsingAdvance<vector<reco::PFJet>,reco::PFJet> >,edm::RefVector<vector<reco::PFCandidate>,reco::PFCandidate,edm::refhelper::FindUsingAdvance<vector<reco::PFCandidate>,reco::PFCandidate> > > > >,false> >
tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<unsigned int,edm::helpers::KeyVal<edm::Ref<vector<reco::SuperCluster>,reco::SuperCluster,edm::refhelper::FindUsingAdvance<vector<reco::SuperCluster>,reco::SuperCluster> >,edm::Ref<vector<reco::HFEMClusterShape>,reco::HFEMClusterShape,edm::refhelper::FindUsingAdvance<vector<reco::HFEMClusterShape>,reco::HFEMClusterShape> > >,hash<unsigned int>,equal_to<unsigned int>,tbb::detail::d1::tbb_allocator<pair<const unsigned int,edm::helpers::KeyVal<edm::Ref<vector<reco::SuperCluster>,reco::SuperCluster,edm::refhelper::FindUsingAdvance<vector<reco::SuperCluster>,reco::SuperCluster> >,edm::Ref<vector<reco::HFEMClusterShape>,reco::HFEMClusterShape,edm::refhelper::FindUsingAdvance<vector<reco::HFEMClusterShape>,reco::HFEMClusterShape> > > > >,false> >
tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<unsigned int,edm::helpers::KeyVal<edm::Ref<vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track> >,edm::Ref<vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track> > >,hash<unsigned int>,equal_to<unsigned int>,tbb::detail::d1::tbb_allocator<pair<const unsigned int,edm::helpers::KeyVal<edm::Ref<vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track> >,edm::Ref<vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track> > > > >,false> >
tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<unsigned int,edm::helpers::KeyVal<edm::Ref<vector<reco::Vertex>,reco::Vertex,edm::refhelper::FindUsingAdvance<vector<reco::Vertex>,reco::Vertex> >,vector<pair<edm::Ref<vector<reco::PFCandidate>,reco::PFCandidate,edm::refhelper::FindUsingAdvance<vector<reco::PFCandidate>,reco::PFCandidate> >,int> > >,hash<unsigned int>,equal_to<unsigned int>,tbb::detail::d1::tbb_allocator<pair<const unsigned int,edm::helpers::KeyVal<edm::Ref<vector<reco::Vertex>,reco::Vertex,edm::refhelper::FindUsingAdvance<vector<reco::Vertex>,reco::Vertex> >,vector<pair<edm::Ref<vector<reco::PFCandidate>,reco::PFCandidate,edm::refhelper::FindUsingAdvance<vector<reco::PFCandidate>,reco::PFCandidate> >,int> > > > >,false> >
tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<unsigned int,edm::helpers::KeyVal<edm::RefToBase<reco::Jet>,edm::RefToBase<reco::Jet> >,hash<unsigned int>,equal_to<unsigned int>,tbb::detail::d1::tbb_allocator<pair<const unsigned int,edm::helpers::KeyVal<edm::RefToBase<reco::Jet>,edm::RefToBase<reco::Jet> > > >,false> >
tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<unsigned short,edm::helpers::KeyVal<edm::Ref<vector<Trajectory>,Trajectory,edm::refhelper::FindUsingAdvance<vector<Trajectory>,Trajectory> >,edm::Ref<vector<reco::GsfTrack>,reco::GsfTrack,edm::refhelper::FindUsingAdvance<vector<reco::GsfTrack>,reco::GsfTrack> > >,hash<unsigned short>,equal_to<unsigned short>,tbb::detail::d1::tbb_allocator<pair<const unsigned short,edm::helpers::KeyVal<edm::Ref<vector<Trajectory>,Trajectory,edm::refhelper::FindUsingAdvance<vector<Trajectory>,Trajectory> >,edm::Ref<vector<reco::GsfTrack>,reco::GsfTrack,edm::refhelper::FindUsingAdvance<vector<reco::GsfTrack>,reco::GsfTrack> > > > >,false> >
tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<unsigned short,edm::helpers::KeyVal<edm::Ref<vector<Trajectory>,Trajectory,edm::refhelper::FindUsingAdvance<vector<Trajectory>,Trajectory> >,edm::Ref<vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track> > >,hash<unsigned short>,equal_to<unsigned short>,tbb::detail::d1::tbb_allocator<pair<const unsigned short,edm::helpers::KeyVal<edm::Ref<vector<Trajectory>,Trajectory,edm::refhelper::FindUsingAdvance<vector<Trajectory>,Trajectory> >,edm::Ref<vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track> > > > >,false> >
tbb::detail::d1::hash_compare<unsigned int,hash<unsigned int>,equal_to<unsigned int> >
tbb::detail::d1::hash_compare<unsigned short,hash<unsigned short>,equal_to<unsigned short> >
tbb::detail::d1::list_node<unsigned long>
tbb::detail::d1::segment_table<atomic<tbb::detail::d1::list_node<unsigned long>*>,tbb::detail::d1::tbb_allocator<pair<const unsigned int,edm::helpers::KeyVal<edm::Ref<vector<reco::PFCandidate>,reco::PFCandidate,edm::refhelper::FindUsingAdvance<vector<reco::PFCandidate>,reco::PFCandidate> >,vector<pair<edm::Ref<vector<reco::Vertex>,reco::Vertex,edm::refhelper::FindUsingAdvance<vector<reco::Vertex>,reco::Vertex> >,int> > > > >,tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<unsigned int,edm::helpers::KeyVal<edm::Ref<vector<reco::PFCandidate>,reco::PFCandidate,edm::refhelper::FindUsingAdvance<vector<reco::PFCandidate>,reco::PFCandidate> >,vector<pair<edm::Ref<vector<reco::Vertex>,reco::Vertex,edm::refhelper::FindUsingAdvance<vector<reco::Vertex>,reco::Vertex> >,int> > >,hash<unsigned int>,equal_to<unsigned int>,tbb::detail::d1::tbb_allocator<pair<const unsigned int,edm::helpers::KeyVal<edm::Ref<vector<reco::PFCandidate>,reco::PFCandidate,edm::refhelper::FindUsingAdvance<vector<reco::PFCandidate>,reco::PFCandidate> >,vector<pair<edm::Ref<vector<reco::Vertex>,reco::Vertex,edm::refhelper::FindUsingAdvance<vector<reco::Vertex>,reco::Vertex> >,int> > > > >,false> >::unordered_segment_table,63>
tbb::detail::d1::segment_table<atomic<tbb::detail::d1::list_node<unsigned long>*>,tbb::detail::d1::tbb_allocator<pair<const unsigned int,edm::helpers::KeyVal<edm::Ref<vector<reco::PFJet>,reco::PFJet,edm::refhelper::FindUsingAdvance<vector<reco::PFJet>,reco::PFJet> >,edm::RefVector<vector<reco::PFCandidate>,reco::PFCandidate,edm::refhelper::FindUsingAdvance<vector<reco::PFCandidate>,reco::PFCandidate> > > > >,tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<unsigned int,edm::helpers::KeyVal<edm::Ref<vector<reco::PFJet>,reco::PFJet,edm::refhelper::FindUsingAdvance<vector<reco::PFJet>,reco::PFJet> >,edm::RefVector<vector<reco::PFCandidate>,reco::PFCandidate,edm::refhelper::FindUsingAdvance<vector<reco::PFCandidate>,reco::PFCandidate> > >,hash<unsigned int>,equal_to<unsigned int>,tbb::detail::d1::tbb_allocator<pair<const unsigned int,edm::helpers::KeyVal<edm::Ref<vector<reco::PFJet>,reco::PFJet,edm::refhelper::FindUsingAdvance<vector<reco::PFJet>,reco::PFJet> >,edm::RefVector<vector<reco::PFCandidate>,reco::PFCandidate,edm::refhelper::FindUsingAdvance<vector<reco::PFCandidate>,reco::PFCandidate> > > > >,false> >::unordered_segment_table,63>
tbb::detail::d1::segment_table<atomic<tbb::detail::d1::list_node<unsigned long>*>,tbb::detail::d1::tbb_allocator<pair<const unsigned int,edm::helpers::KeyVal<edm::Ref<vector<reco::SuperCluster>,reco::SuperCluster,edm::refhelper::FindUsingAdvance<vector<reco::SuperCluster>,reco::SuperCluster> >,edm::Ref<vector<reco::HFEMClusterShape>,reco::HFEMClusterShape,edm::refhelper::FindUsingAdvance<vector<reco::HFEMClusterShape>,reco::HFEMClusterShape> > > > >,tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<unsigned int,edm::helpers::KeyVal<edm::Ref<vector<reco::SuperCluster>,reco::SuperCluster,edm::refhelper::FindUsingAdvance<vector<reco::SuperCluster>,reco::SuperCluster> >,edm::Ref<vector<reco::HFEMClusterShape>,reco::HFEMClusterShape,edm::refhelper::FindUsingAdvance<vector<reco::HFEMClusterShape>,reco::HFEMClusterShape> > >,hash<unsigned int>,equal_to<unsigned int>,tbb::detail::d1::tbb_allocator<pair<const unsigned int,edm::helpers::KeyVal<edm::Ref<vector<reco::SuperCluster>,reco::SuperCluster,edm::refhelper::FindUsingAdvance<vector<reco::SuperCluster>,reco::SuperCluster> >,edm::Ref<vector<reco::HFEMClusterShape>,reco::HFEMClusterShape,edm::refhelper::FindUsingAdvance<vector<reco::HFEMClusterShape>,reco::HFEMClusterShape> > > > >,false> >::unordered_segment_table,63>
tbb::detail::d1::segment_table<atomic<tbb::detail::d1::list_node<unsigned long>*>,tbb::detail::d1::tbb_allocator<pair<const unsigned int,edm::helpers::KeyVal<edm::Ref<vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track> >,edm::Ref<vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track> > > > >,tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<unsigned int,edm::helpers::KeyVal<edm::Ref<vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track> >,edm::Ref<vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track> > >,hash<unsigned int>,equal_to<unsigned int>,tbb::detail::d1::tbb_allocator<pair<const unsigned int,edm::helpers::KeyVal<edm::Ref<vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track> >,edm::Ref<vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track> > > > >,false> >::unordered_segment_table,63>
tbb::detail::d1::segment_table<atomic<tbb::detail::d1::list_node<unsigned long>*>,tbb::detail::d1::tbb_allocator<pair<const unsigned int,edm::helpers::KeyVal<edm::Ref<vector<reco::Vertex>,reco::Vertex,edm::refhelper::FindUsingAdvance<vector<reco::Vertex>,reco::Vertex> >,vector<pair<edm::Ref<vector<reco::PFCandidate>,reco::PFCandidate,edm::refhelper::FindUsingAdvance<vector<reco::PFCandidate>,reco::PFCandidate> >,int> > > > >,tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<unsigned int,edm::helpers::KeyVal<edm::Ref<vector<reco::Vertex>,reco::Vertex,edm::refhelper::FindUsingAdvance<vector<reco::Vertex>,reco::Vertex> >,vector<pair<edm::Ref<vector<reco::PFCandidate>,reco::PFCandidate,edm::refhelper::FindUsingAdvance<vector<reco::PFCandidate>,reco::PFCandidate> >,int> > >,hash<unsigned int>,equal_to<unsigned int>,tbb::detail::d1::tbb_allocator<pair<const unsigned int,edm::helpers::KeyVal<edm::Ref<vector<reco::Vertex>,reco::Vertex,edm::refhelper::FindUsingAdvance<vector<reco::Vertex>,reco::Vertex> >,vector<pair<edm::Ref<vector<reco::PFCandidate>,reco::PFCandidate,edm::refhelper::FindUsingAdvance<vector<reco::PFCandidate>,reco::PFCandidate> >,int> > > > >,false> >::unordered_segment_table,63>
tbb::detail::d1::segment_table<atomic<tbb::detail::d1::list_node<unsigned long>*>,tbb::detail::d1::tbb_allocator<pair<const unsigned int,edm::helpers::KeyVal<edm::RefToBase<reco::Jet>,edm::RefToBase<reco::Jet> > > >,tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<unsigned int,edm::helpers::KeyVal<edm::RefToBase<reco::Jet>,edm::RefToBase<reco::Jet> >,hash<unsigned int>,equal_to<unsigned int>,tbb::detail::d1::tbb_allocator<pair<const unsigned int,edm::helpers::KeyVal<edm::RefToBase<reco::Jet>,edm::RefToBase<reco::Jet> > > >,false> >::unordered_segment_table,63>
tbb::detail::d1::segment_table<atomic<tbb::detail::d1::list_node<unsigned long>*>,tbb::detail::d1::tbb_allocator<pair<const unsigned short,edm::helpers::KeyVal<edm::Ref<vector<Trajectory>,Trajectory,edm::refhelper::FindUsingAdvance<vector<Trajectory>,Trajectory> >,edm::Ref<vector<reco::GsfTrack>,reco::GsfTrack,edm::refhelper::FindUsingAdvance<vector<reco::GsfTrack>,reco::GsfTrack> > > > >,tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<unsigned short,edm::helpers::KeyVal<edm::Ref<vector<Trajectory>,Trajectory,edm::refhelper::FindUsingAdvance<vector<Trajectory>,Trajectory> >,edm::Ref<vector<reco::GsfTrack>,reco::GsfTrack,edm::refhelper::FindUsingAdvance<vector<reco::GsfTrack>,reco::GsfTrack> > >,hash<unsigned short>,equal_to<unsigned short>,tbb::detail::d1::tbb_allocator<pair<const unsigned short,edm::helpers::KeyVal<edm::Ref<vector<Trajectory>,Trajectory,edm::refhelper::FindUsingAdvance<vector<Trajectory>,Trajectory> >,edm::Ref<vector<reco::GsfTrack>,reco::GsfTrack,edm::refhelper::FindUsingAdvance<vector<reco::GsfTrack>,reco::GsfTrack> > > > >,false> >::unordered_segment_table,63>
tbb::detail::d1::segment_table<atomic<tbb::detail::d1::list_node<unsigned long>*>,tbb::detail::d1::tbb_allocator<pair<const unsigned short,edm::helpers::KeyVal<edm::Ref<vector<Trajectory>,Trajectory,edm::refhelper::FindUsingAdvance<vector<Trajectory>,Trajectory> >,edm::Ref<vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track> > > > >,tbb::detail::d1::concurrent_unordered_base<tbb::detail::d1::concurrent_unordered_map_traits<unsigned short,edm::helpers::KeyVal<edm::Ref<vector<Trajectory>,Trajectory,edm::refhelper::FindUsingAdvance<vector<Trajectory>,Trajectory> >,edm::Ref<vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track> > >,hash<unsigned short>,equal_to<unsigned short>,tbb::detail::d1::tbb_allocator<pair<const unsigned short,edm::helpers::KeyVal<edm::Ref<vector<Trajectory>,Trajectory,edm::refhelper::FindUsingAdvance<vector<Trajectory>,Trajectory> >,edm::Ref<vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<vector<reco::Track>,reco::Track> > > > >,false> >::unordered_segment_table,63>
tuple<const reco::JetCorrectorImpl*,default_delete<const reco::JetCorrectorImpl> >
tuple<edm::storage::Storage*,default_delete<edm::storage::Storage> >
tuple<gen::PdfInfo*,default_delete<gen::PdfInfo> >
tuple<unsigned int*,cms::cuda::host::impl::HostDeleter>
tuple<unsigned int*,default_delete<unsigned int[]> >
unique_ptr<const reco::JetCorrectorImpl,default_delete<const reco::JetCorrectorImpl> >
unique_ptr<edm::storage::Storage,default_delete<edm::storage::Storage> >
unique_ptr<gen::PdfInfo,default_delete<gen::PdfInfo> >
unique_ptr<unsigned int[],cms::cuda::host::impl::HostDeleter>
unique_ptr<unsigned int[],default_delete<unsigned int[]> >
unsigned char
unsigned int
unsigned long
unsigned short
Dr15Jones commented 1 year ago

@pcanal

What if in this loop https://github.com/root-project/root/blob/0336235b97dc8eda16536a182006e41e0a44e823/core/meta/src/TProtoClass.cxx#L241-L250

any element marked 'transient' would be skipped rather than having to try to load its TClass?

pcanal commented 1 year ago

In that loop we already suspend the autoparsing, so I would suspect it would make no difference. Do you see the autoparsing coming from that path?

Dr15Jones commented 1 year ago

I see the message prefixed by Treating beforehand mother class for the various classes which are associated with transient data members.

Dr15Jones commented 1 year ago

I believe I have found a race condition between calling TFile::Open and TClass::GetClass

I have the following executable which I build in CMSSW_13_0_ROOT6_X_2022-12-15-2300 which uses ROOT 6.27.1

#include <string>
#include <vector>

#include "TFile.h"
#include "TClass.h"
#include "TInterpreter.h"

#include "tbb/task_group.h"
#include <atomic>
#include <algorithm>

std::vector<std::string> loadClasses() {
  std::vector<std::string> ret;

  constexpr std::array<const char*,12> types = {{
                                                {"edm::Wrapper<vector<reco::Muon> >"},
                                                {"edm::Wrapper<edm::ValueMap<float> >"},
                                                {"edm::Wrapper<edm::ValueMap<int> >"},
                                                {"edm::Wrapper<edm::ValueMap<reco::JetID> >"},
                                                {"edm::Wrapper<vector<L1GctFibreWord> >"},
                                                {"edm::Wrapper<vector<L1GctInternEmCand> >"},
                                                {"edm::Wrapper<vector<L1GctInternHFData> >"},
                                                {"edm::Wrapper<vector<L1GctJetCounts> >"},
                                                {"edm::Wrapper<vector<L1TriggerError> >"},
                                                {"edm::Wrapper<edm::ValueMap<edm::Ptr<reco::PFCandidate> > >"},
                                                {"edm::Wrapper<vector<pat::Tau> >"},
                                                {"edm::Wrapper<vector<reco::PFV0> >"}}};

  ret.reserve(types.size());
  std::copy(types.begin(), types.end(), std::back_inserter(ret));

  return ret;
}

int main() {

   gInterpreter->SetClassAutoloading(1);

  std::atomic<int> waiting(2);
  tbb::task_group group;

  std::unique_ptr<TFile> f;
  group.run([&]() {
              if( --waiting != 0) {
                do {
                } while(waiting.load() !=0);
              }

              f = std::unique_ptr<TFile>(TFile::Open("step2.root"));
            });

  group.run([&]() {
              auto classes = loadClasses();

              if( --waiting != 0) {
                do {
                } while(waiting.load() !=0);
              }

              for(auto const& c: classes) {
                TClass::GetClass(c.c_str());
              }
            });

  group.wait();

}

Which when run in GDB reports the following

DataFormatsProvenance_xr dictionary forward declarations' payload:4:1: error: expected unqualified-id
extern int __Cling_AutoLoading_Map;
^
DataFormatsProvenance_xr dictionary forward declarations' payload:4:1: error: expected ')'
/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02763/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/etc/plugins/TFile/P010_TWebFile.C:3:26: note: to match this '('
   gPluginMgr->AddHandler("TFile", "^http[s]?:", "TWebFile",
                         ^
DataFormatsProvenance_xr dictionary forward declarations' payload:5:14: error: namespaces can only be defined in global or namespace scope
namespace edm{class __attribute__((annotate("$clingAutoload$DataFormats/Provenance/interface/ProductID.h")))  __attribute__((annotate("$clingAutoload$DataFormats/Provenance/interface/BranchDescription.h")))  ProductID;}
             ^
DataFormatsProvenance_xr dictionary forward declarations' payload:6:14: error: namespaces can only be defined in global or namespace scope
namespace std{template <typename _T1, typename _T2> struct __attribute__((annotate("$clingAutoload$bits/stl_iterator.h")))  __attribute__((annotate("$clingAutoload$string")))  pair;
             ^
DataFormatsProvenance_xr dictionary forward declarations' payload:8:14: error: namespaces can only be defined in global or namespace scope
namespace edm{class __attribute__((annotate("$clingAutoload$DataFormats/Provenance/interface/BranchID.h")))  __attribute__((annotate("$clingAutoload$DataFormats/Provenance/interface/BranchDescription.h")))  BranchID;}
             ^
DataFormatsProvenance_xr dictionary forward declarations' payload:9:14: error: namespaces can only be defined in global or namespace scope
namespace std{template <typename _Tp = void> struct __attribute__((annotate("$clingAutoload$bits/stl_function.h")))  __attribute__((annotate("$clingAutoload$string")))  less;
             ^
DataFormatsProvenance_xr dictionary forward declarations' payload:11:14: error: namespaces can only be defined in global or namespace scope
namespace std{template <typename _Tp> class __attribute__((annotate("$clingAutoload$bits/allocator.h")))  __attribute__((annotate("$clingAutoload$string")))  allocator;
             ^
DataFormatsProvenance_xr dictionary forward declarations' payload:13:14: error: namespaces can only be defined in global or namespace scope
namespace edm{class __attribute__((annotate("$clingAutoload$DataFormats/Provenance/interface/BranchKey.h")))  BranchKey;}
             ^
DataFormatsProvenance_xr dictionary forward declarations' payload:14:14: error: namespaces can only be defined in global or namespace scope
namespace edm{class __attribute__((annotate("$clingAutoload$DataFormats/Provenance/interface/BranchDescription.h")))  BranchDescription;}
             ^
DataFormatsProvenance_xr dictionary forward declarations' payload:15:14: error: namespaces can only be defined in global or namespace scope
namespace edm{class __attribute__((annotate("$clingAutoload$DataFormats/Provenance/interface/ProcessConfiguration.h")))  ProcessConfiguration;}
             ^
DataFormatsProvenance_xr dictionary forward declarations' payload:16:14: error: namespaces can only be defined in global or namespace scope
namespace edm{class __attribute__((annotate("$clingAutoload$DataFormats/Provenance/interface/ProductProvenance.h")))  ProductProvenance;}
             ^
DataFormatsProvenance_xr dictionary forward declarations' payload:17:14: error: namespaces can only be defined in global or namespace scope
namespace edm{struct __attribute__((annotate("$clingAutoload$DataFormats/Provenance/interface/StoredProductProvenance.h")))  StoredProductProvenance;}
             ^
DataFormatsProvenance_xr dictionary forward declarations' payload:18:14: error: namespaces can only be defined in global or namespace scope
namespace edm{class __attribute__((annotate("$clingAutoload$DataFormats/Provenance/interface/ThinnedAssociationsHelper.h")))  ThinnedAssociationBranches;}
             ^
DataFormatsProvenance_xr dictionary forward declarations' payload:19:14: error: namespaces can only be defined in global or namespace scope
namespace edm{class __attribute__((annotate("$clingAutoload$DataFormats/Provenance/interface/EventEntryInfo.h")))  EventEntryInfo;}
             ^
DataFormatsProvenance_xr dictionary forward declarations' payload:21:14: error: namespaces can only be defined in global or namespace scope
namespace edm{class __attribute__((annotate("$clingAutoload$DataFormats/Provenance/interface/EventProcessHistoryID.h")))  EventProcessHistoryID;}
             ^
DataFormatsProvenance_xr dictionary forward declarations' payload:22:14: error: namespaces can only be defined in global or namespace scope
namespace edm{class __attribute__((annotate("$clingAutoload$DataFormats/Provenance/interface/RunLumiEntryInfo.h")))  RunLumiEntryInfo;}
             ^
DataFormatsProvenance_xr dictionary forward declarations' payload:23:14: error: namespaces can only be defined in global or namespace scope
namespace edm{class __attribute__((annotate("$clingAutoload$DataFormats/Provenance/interface/EventID.h")))  __attribute__((annotate("$clingAutoload$DataFormats/Provenance/interface/EventAuxiliary.h")))  EventID;}
             ^
DataFormatsProvenance_xr dictionary forward declarations' payload:24:14: error: namespaces can only be defined in global or namespace scope
namespace edm{class __attribute__((annotate("$clingAutoload$DataFormats/Provenance/interface/BranchChildren.h")))  BranchChildren;}
             ^
DataFormatsProvenance_xr dictionary forward declarations' payload:25:14: error: namespaces can only be defined in global or namespace scope
namespace edm{class __attribute__((annotate("$clingAutoload$DataFormats/Provenance/interface/ElementID.h")))  ElementID;}
             ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]

and the assert with the traceback

testRoot: /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/core/metacling/src/TCling.cxx:2219: virtual void TCling::RegisterModule(const char*, const char**, const char**, const char*, const char*, void (*)(), const FwdDeclArgsToKeepCollection_t&, const char**, Bool_t, Bool_t): Assertion `cling::Interpreter::kSuccess == compRes && "The forward declarations could not be compiled"' failed.
#3  0x00007ffff5166426 in __assert_fail () from /lib64/libc.so.6
#4  0x00007fffedb5a940 in TCling::RegisterModule (this=0x50bdf0, modulename=0x7fffbc5f9050 "DataFormatsProvenance_xr", headers=0x7fffbc625600 <(anonymous namespace)::TriggerDictionaryInitialization_DataFormatsProvenance_xr_Impl()::headers>, includePaths=0x7fffbc6255a0 <(anonymous namespace)::TriggerDictionaryInitialization_DataFormatsProvenance_xr_Impl()::includePaths>, payloadCode=0x7fffbc5f633d "\n#line 1 \"DataFormatsProvenance_xr dictionary payload\"\n\n#ifndef CMS_DICT_IMPL\n  #define CMS_DICT_IMPL 1\n#endif\n#ifndef _REENTRANT\n  #define _REENTRANT 1\n#endif\n#ifndef GNUSOURCE\n  #define GNUSOURCE 1\n"..., fwdDeclsCode=0x7fffbc5f761d "\n#line 1 \"DataFormatsProvenance_xr dictionary forward declarations' payload\"\n#pragma clang diagnostic ignored \"-Wkeyword-compat\"\n#pragma clang diagnostic ignored \"-Wignored-attributes\"\n#pragma clang d"..., triggerFunc=0x7fffbc5a92e5 <(anonymous namespace)::TriggerDictionaryInitialization_DataFormatsProvenance_xr_Impl()>, fwdDeclsArgToSkip=..., classesHeaders=0x7fffbc624f40 <(anonymous namespace)::TriggerDictionaryInitialization_DataFormatsProvenance_xr_Impl()::classesHeaders>, lateRegistration=false, hasCxxModule=false) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/core/metacling/src/TCling.cxx:2219
#5  0x00007ffff669adba in TROOT::RegisterModule (modulename=0x7fffbc5f9050 "DataFormatsProvenance_xr", headers=0x7fffbc625600 <(anonymous namespace)::TriggerDictionaryInitialization_DataFormatsProvenance_xr_Impl()::headers>, includePaths=0x7fffbc6255a0 <(anonymous namespace)::TriggerDictionaryInitialization_DataFormatsProvenance_xr_Impl()::includePaths>, payloadCode=0x7fffbc5f633d "\n#line 1 \"DataFormatsProvenance_xr dictionary payload\"\n\n#ifndef CMS_DICT_IMPL\n  #define CMS_DICT_IMPL 1\n#endif\n#ifndef _REENTRANT\n  #define _REENTRANT 1\n#endif\n#ifndef GNUSOURCE\n  #define GNUSOURCE 1\n"..., fwdDeclCode=0x7fffbc5f761d "\n#line 1 \"DataFormatsProvenance_xr dictionary forward declarations' payload\"\n#pragma clang diagnostic ignored \"-Wkeyword-compat\"\n#pragma clang diagnostic ignored \"-Wignored-attributes\"\n#pragma clang d"..., triggerFunc=0x7fffbc5a92e5 <(anonymous namespace)::TriggerDictionaryInitialization_DataFormatsProvenance_xr_Impl()>, fwdDeclsArgToSkip=..., classesHeaders=0x7fffbc624f40 <(anonymous namespace)::TriggerDictionaryInitialization_DataFormatsProvenance_xr_Impl()::classesHeaders>, hasCxxModule=false) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/core/base/src/TROOT.cxx:2557
#6  0x00007fffbc5a955f in (anonymous namespace)::TriggerDictionaryInitialization_DataFormatsProvenance_xr_Impl() () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/lib/el8_amd64_gcc11/libDataFormatsProvenance.so
#7  0x00007ffff7dd805a in call_init (l=<optimized out>, argc=argc@entry=1, argv=argv@entry=0x7fffffff28b8, env=env@entry=0x50eb10) at dl-init.c:72
#8  0x00007ffff7dd815a in call_init (env=0x50eb10, argv=0x7fffffff28b8, argc=1, l=<optimized out>) at dl-init.c:118
#9  _dl_init (main_map=0x2a9cd90, argc=1, argv=0x7fffffff28b8, env=0x50eb10) at dl-init.c:119
#10 0x00007ffff52879bc in _dl_catch_exception () from /lib64/libc.so.6
#11 0x00007ffff7ddf88e in dl_open_worker (a=0x7fffffff19d0) at dl-open.c:794
#12 dl_open_worker (a=0x7fffffff19d0) at dl-open.c:757
#13 0x00007ffff5287964 in _dl_catch_exception () from /lib64/libc.so.6
#14 0x00007ffff7ddfa71 in _dl_open (file=0x22fc2b0 "/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02763/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/lib/el8_amd64_gcc11/libDataFormatsMuonReco.so", mode=-2147483391, caller_dlopen=0x7fffede7a6f5 <cling::utils::platform::DLOpen(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)+21>, nsid=<optimized out>, argc=1, argv=<optimized out>, env=0x50eb10) at dl-open.c:876
#15 0x00007ffff5eb9f8a in dlopen_doit () from /lib64/libdl.so.2
#16 0x00007ffff5287964 in _dl_catch_exception () from /lib64/libc.so.6
#17 0x00007ffff5287a23 in _dl_catch_error () from /lib64/libc.so.6
#18 0x00007ffff5eba52e in _dlerror_run () from /lib64/libdl.so.2
#19 0x00007ffff5eba02a in dlopen@@GLIBC_2.2.5 () from /lib64/libdl.so.2
#20 0x00007fffede7a6f5 in cling::utils::platform::DLOpen(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#21 0x00007fffedd73761 in cling::DynamicLibraryManager::loadLibrary(llvm::StringRef, bool, bool) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#22 0x00007fffedb5fd23 in TCling::Load (this=0x50bdf0, filename=0x28c5440 "/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02763/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/lib/el8_amd64_gcc11/libDataFormatsMuonReco.so", system=true) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/core/metacling/src/TCling.cxx:3498
#23 0x00007ffff672493f in TSystem::Load (this=0x42b800, module=0x28d79f0 "/cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/lib/el8_amd64_gcc11/libDataFormatsMuonReco.so", entry=0x0, system=true) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/core/base/src/TSystem.cxx:1945
#24 0x00007ffff683a197 in TUnixSystem::Load (this=0x42b800, module=0x28d79f0 "/cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/lib/el8_amd64_gcc11/libDataFormatsMuonReco.so", entry=0x0, system=true) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/core/unix/src/TUnixSystem.cxx:2773
#25 0x00007ffff6699b3a in TROOT::LoadClass (this=0x7ffff6a0b8e0 <ROOT::Internal::GetROOT1()::alloc>, libname=0x2724870 "libDataFormatsMuonReco.so", check=false) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/core/base/src/TROOT.cxx:2144
#26 0x00007fffedb6a3b5 in TCling::ShallowAutoLoadImpl (cls=0x2427a10 "edm::Wrapper<vector<reco::Muon> >") at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/core/metacling/src/TCling.cxx:6118
#27 0x00007fffedb6a572 in TCling::DeepAutoLoadImpl (cls=0x2427a10 "edm::Wrapper<vector<reco::Muon> >", visited=..., nameIsNormalized=false) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/core/metacling/src/TCling.cxx:6151
#28 0x00007fffedb6ab5f in TCling::AutoLoad (this=0x50bdf0, cls=0x2427a10 "edm::Wrapper<vector<reco::Muon> >", knowDictNotLoaded=true) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/core/metacling/src/TCling.cxx:6263
#29 0x00007ffff67c1767 in TClass::GetClass (name=0x2b001b0 "edm::Wrapper<vector<reco::Muon> >", load=true, silent=false, hint_pair_offset=0, hint_pair_size=0) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/core/meta/src/TClass.cxx:3105
#30 0x00007ffff67c11ad in TClass::GetClass (name=0x2b001b0 "edm::Wrapper<vector<reco::Muon> >", load=true, silent=false) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/core/meta/src/TClass.cxx:2971
#31 0x0000000000402a5f in tbb::detail::d1::function_task<main::{lambda()#2}>::execute(tbb::detail::d1::execution_data&) ()
#32 0x00007ffff6362955 in tbb::detail::r1::task_dispatcher::local_wait_for_all<false, tbb::detail::r1::external_waiter> (waiter=..., t=0x7fffd7ec3c00, this=0x7fffec9e9c00) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/external/tbb/v2021.8.0-rc1-0f8119bbef025dd7dc49da168f35adac/tbb-v2021.8.0-rc1/src/tbb/task_dispatcher.h:322
#33 tbb::detail::r1::task_dispatcher::local_wait_for_all<tbb::detail::r1::external_waiter> (waiter=..., t=<optimized out>, this=0x7fffec9e9c00) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/external/tbb/v2021.8.0-rc1-0f8119bbef025dd7dc49da168f35adac/tbb-v2021.8.0-rc1/src/tbb/task_dispatcher.h:458
#34 tbb::detail::r1::task_dispatcher::execute_and_wait (t=<optimized out>, wait_ctx=..., w_ctx=...) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/external/tbb/v2021.8.0-rc1-0f8119bbef025dd7dc49da168f35adac/tbb-v2021.8.0-rc1/src/tbb/task_dispatcher.cpp:168
#35 0x00000000004023e6 in main ()

If I modify the program to just call TFile::Open things are fine and if it just calls the TClass::GetClass functions. Only when they are done together does the problem appear.

pcanal commented 1 year ago

I see the message prefixed by Treating beforehand mother class for the various classes which are associated with transient data members.

That does indicates the loop is working as expected, but it should not imply auto-parsing triggered for those classes through that code path.

pcanal commented 1 year ago

I believe I have found a race condition between calling TFile::Open and TClass::GetClass

That looks indeed bad. Let me try to reproduce it.

Dr15Jones commented 1 year ago

On another run in gdb I get a segmentation fault in the TFile::Open path while the TClass:GetClass path is running

Thread 2 (Thread 0x7fffd79ed700 (LWP 3638076) "testRoot"):
#0  0x0000000000000000 in ?? ()
#1  0x00007fffed9d657d in clang::LazyGenerationalUpdatePtr<clang::Decl const*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain>::get (this=0x7fffd79e3fa8, O=0x22cc028) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/interpreter/llvm/src/tools/clang/include/clang/AST/ExternalASTSource.h:445
#2  0x00007fffeda0038a in clang::Redeclarable<clang::FunctionDecl>::DeclLink::getPrevious (this=0x22cc090, D=0x22cc028) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/interpreter/llvm/src/tools/clang/include/clang/AST/Redeclarable.h:134
#3  0x00007ffff0b5220d in clang::LinkageComputer::getLVForDecl(clang::NamedDecl const*, clang::LVComputationKind) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#4  0x00007ffff0b53439 in clang::NamedDecl::getLinkageInternal() const () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#5  0x00007ffff0b536ff in clang::FunctionDecl::isExternC() const () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#6  0x00007fffeeae8cc8 in clang::Sema::CheckFunctionDeclaration(clang::Scope*, clang::FunctionDecl*, clang::LookupResult&, bool) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#7  0x00007fffeeaedd31 in clang::Sema::ActOnFunctionDeclarator(clang::Scope*, clang::Declarator&, clang::DeclContext*, clang::TypeSourceInfo*, clang::LookupResult&, llvm::MutableArrayRef<clang::TemplateParameterList*>, bool&) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#8  0x00007fffeeaf1d71 in clang::Sema::HandleDeclarator(clang::Scope*, clang::Declarator&, llvm::MutableArrayRef<clang::TemplateParameterList*>) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#9  0x00007fffeeaf3a3c in clang::Sema::ActOnStartOfFunctionDef(clang::Scope*, clang::Declarator&, llvm::MutableArrayRef<clang::TemplateParameterList*>, clang::Sema::SkipBodyInfo*) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#10 0x00007fffee79f253 in clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#11 0x00007fffee6e4fd9 in clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::SourceLocation*, clang::Parser::ForRangeInit*) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#12 0x00007fffee79c6e2 in clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributesWithRange&, clang::ParsingDeclSpec*, clang::AccessSpecifier) [clone .part.0] () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#13 0x00007fffee7a28a0 in clang::Parser::ParseExternalDeclaration(clang::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#14 0x00007fffee7a2c7d in clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, bool) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#15 0x00007fffede131b8 in cling::IncrementalParser::ParseInternal(llvm::StringRef) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#16 0x00007fffede1421d in cling::IncrementalParser::Compile(llvm::StringRef, cling::CompilationOptions const&) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#17 0x00007fffedd8ccc7 in cling::Interpreter::loadHeader(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cling::Transaction**) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#18 0x00007fffede60313 in cling::MetaSema::actOnLCommand(llvm::StringRef, cling::Transaction**) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#19 0x00007fffede6049f in cling::MetaSema::actOnxCommand(llvm::StringRef, llvm::StringRef, cling::Value*) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#20 0x00007fffede6da59 in cling::MetaParser::isXCommand(cling::MetaSema::ActionResult&, cling::Value*) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#21 0x00007fffede6f374 in cling::MetaParser::isCommand(cling::MetaSema::ActionResult&, cling::Value*) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#22 0x00007fffede59528 in cling::MetaProcessor::process(llvm::StringRef, cling::Interpreter::CompilationResult&, cling::Value*, bool) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/ex--Type <RET> for more, q to quit, c to continue without paging--
ternal/el8_amd64_gcc11/lib/libCling.so
#23 0x00007fffedb5bc54 in HandleInterpreterException (metaProcessor=0x1340f20, input_line=0x7fffd000ac00 ".X  /cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02763/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/etc/plugins/TFile/P130_TDavixFile.C", compRes=@0x7fffd79e643c: cling::Interpreter::kSuccess, result=0x7fffd79e6440) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/core/metacling/src/TCling.cxx:2455
#24 0x00007fffedb5c6a3 in TCling::ProcessLine (this=0x50bdf0, line=0x7fffd000a8a0 ".X  /cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02763/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/etc/plugins/TFile/P130_TDavixFile.C", error=0x0) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/core/metacling/src/TCling.cxx:2599
#25 0x00007fffedb5ff6a in TCling::ProcessLineSynch (this=0x50bdf0, line=0x7fffd000a8a0 ".X  /cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02763/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/etc/plugins/TFile/P130_TDavixFile.C", error=0x0) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/core/metacling/src/TCling.cxx:3549
#26 0x00007ffff66ab5ff in TApplication::ExecuteFile (file=0x7fffd000d590 "/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02763/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/etc/plugins/TFile/P130_TDavixFile.C", error=0x0, keep=false) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/core/base/src/TApplication.cxx:1661
#27 0x00007fffedb66402 in TCling::ExecuteMacro (this=0x50bdf0, filename=0x7fffd000d590 "/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02763/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/etc/plugins/TFile/P130_TDavixFile.C", error=0x0) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/core/metacling/src/TCling.cxx:5348
#28 0x00007ffff669a347 in TROOT::Macro (this=0x7ffff6a0b8e0 <ROOT::Internal::GetROOT1()::alloc>, filename=0x7fffd000a140 "/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02763/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/etc/plugins/TFile/P130_TDavixFile.C", error=0x0, padUpdate=false) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/core/base/src/TROOT.cxx:2282
#29 0x00007ffff66f0a53 in TPluginManager::LoadHandlerMacros (this=0x42b7d0, path=0x7fffd0001660 "/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02763/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/etc/plugins/TFile") at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/core/base/src/TPluginManager.cxx:416
#30 0x00007ffff66f1039 in TPluginManager::LoadHandlersFromPluginDirs (this=0x42b7d0, base=0x7ffff6ee449e "TFile") at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/core/base/src/TPluginManager.cxx:500
#31 0x00007ffff66f1926 in TPluginManager::FindHandler (this=0x42b7d0, base=0x7ffff6ee449e "TFile", uri=0x7fffd0000f90 "file:step2.root") at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/core/base/src/TPluginManager.cxx:582
#32 0x00007ffff6cd6f24 in TFile::Open (url=0x403004 "step2.root", options=0x40300e "", ftitle=0x40300e "", compress=101, netopt=0) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/io/io/src/TFile.cxx:4232
#33 0x0000000000402673 in tbb::detail::d1::function_task<main::{lambda()#1}>::execute(tbb::detail::d1::execution_data&) ()
#34 0x00007ffff635b284 in tbb::detail::r1::task_dispatcher::local_wait_for_all<false, tbb::detail::r1::outermost_worker_waiter> (t=0x7fffd7ec3d00, waiter=..., this=0x7fffec9e9c80) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/external/tbb/v2021.8.0-rc1-0f8119bbef025dd7dc49da168f35adac/tbb-v2021.8.0-rc1/src/tbb/task_dispatcher.h:322
#35 tbb::detail::r1::task_dispatcher::local_wait_for_all<tbb::detail::r1::outermost_worker_waiter> (t=0x0, waiter=..., this=0x7fffec9e9c80) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/external/tbb/v2021.8.0-rc1-0f8119bbef025dd7dc49da168f35adac/tbb-v2021.8.0-rc1/src/tbb/task_dispatcher.h:458
#36 tbb::detail::r1::arena::process (tls=..., this=<optimized out>) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/external/tbb/v2021.8.0-rc1-0f8119bbef025dd7dc49da168f35adac/tbb-v2021.8.0-rc1/src/tbb/arena.cpp:137
#37 tbb::detail::r1::market::process (this=<optimized out>, j=...) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/external/tbb/v2021.8.0-rc1-0f8119bbef025dd7dc49da168f35adac/tbb-v2021.8.0-rc1/src/tbb/market.cpp:599
#38 0x00007ffff635d446 in tbb::detail::r1::rml::private_worker::run (this=0x7fffec9e3080) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/external/tbb/v2021.8.0-rc1-0f8119bbef025dd7dc49da168f35adac/tbb-v2021.8.0-rc1/src/tbb/private_server.cpp:271
#39 tbb::detail::r1::rml::private_worker::thread_routine (arg=0x7fffec9e3080) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/external/tbb/v2021.8.0-rc1-0f8119bbef025dd7dc49da168f35adac/tbb-v2021.8.0-rc1/src/tbb/private_server.cpp:221
#40 0x00007ffff54ec1ca in start_thread () from /lib64/libpthread.so.0
#41 0x00007ffff5158e73 in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7ffff4766b80 (LWP 3638036) "testRoot"):
#0  clang::QualType::getTypePtr (this=0x7ffffffef8c8) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/interpreter/llvm/src/tools/clang/include/clang/AST/Type.h:6430
#1  0x00007fffedcb365c in clang::QualType::isCanonical (this=0x7ffffffef8c8) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/interpreter/llvm/src/tools/clang/include/clang/AST/Type.h:6474
#2  0x00007fffedcbc7ec in clang::CanQual<clang::Type>::CreateUnsafe (Other=...) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/interpreter/llvm/src/tools/clang/include/clang/AST/CanonicalType.h:643
#3  0x00007ffff09f02bb in clang::ASTContext::getCanonicalTemplateArgument(clang::TemplateArgument const&) const () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#4  0x00007fffee826301 in clang::ASTRecordReader::readTemplateArgumentList(llvm::SmallVectorImpl<clang::TemplateArgument>&, bool) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#5  0x00007fffee87d0b9 in clang::ASTDeclReader::VisitClassTemplateSpecializationDeclImpl(clang::ClassTemplateSpecializationDecl*) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#6  0x00007fffee8803d2 in clang::ASTDeclReader::Visit(clang::Decl*) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#7  0x00007fffee880923 in clang::ASTReader::ReadDeclRecord(unsigned int) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#8  0x00007fffee813291 in non-virtual thunk to clang::ASTReader::GetExternalDecl(unsigned int) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#9  0x00007fffee92b025 in clang::MultiplexExternalSemaSource::GetExternalDecl(unsigned int) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#10 0x00007ffff0b9c397 in clang::RedeclarableTemplateDecl::loadLazySpecializationsImpl(bool) const [clone .constprop.1] () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#11 0x00007ffff0b9da6b in clang::ClassTemplateDecl::findSpecialization(llvm::ArrayRef<clang::TemplateArgument>, void*&) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#12 0x00007fffef01580c in clang::Sema::CheckTemplateIdType(clang::TemplateName, clang::SourceLocation, clang::TemplateArgumentListInfo&) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#13 0x00007fffef11e1fd in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformTemplateSpecializationType(clang::TypeLocBuilder&, clang::TemplateSpecializationTypeLoc, clang::TemplateName) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#14 0x00007fffef112a66 in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&, clang::TypeLoc) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#15 0x00007fffef12e12a in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformElaboratedType(clang::TypeLocBuilder&, clang::ElaboratedTypeLoc) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#16 0x00007fffef111a0b in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&, clang::TypeLoc) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#17 0x00007fffef117a6c in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformType(clang::TypeSourceInfo*) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#18 0x00007fffef120633 in clang::Sema::SubstType(clang::TypeSourceInfo*, clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation, clang::DeclarationName, bool) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#19 0x00007fffeeff40db in SubstDefaultTemplateArgument(clang::Sema&, clang::TemplateDecl*, clang::SourceLocation, clang::SourceLocation, clang::TemplateTypeParmDecl*, llvm::SmallVectorImpl<clang::TemplateArgument>&) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
--Type <RET> for more, q to quit, c to continue without paging--
#20 0x00007fffef013b0d in clang::Sema::CheckTemplateArgumentList(clang::TemplateDecl*, clang::SourceLocation, clang::TemplateArgumentListInfo&, bool, llvm::SmallVectorImpl<clang::TemplateArgument>&, bool, bool*) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#21 0x00007fffef014ff8 in clang::Sema::CheckTemplateIdType(clang::TemplateName, clang::SourceLocation, clang::TemplateArgumentListInfo&) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#22 0x00007fffee987ac3 in clang::Sema::ActOnCXXNestedNameSpecifier(clang::Scope*, clang::CXXScopeSpec&, clang::SourceLocation, clang::OpaquePtr<clang::TemplateName>, clang::SourceLocation, clang::SourceLocation, llvm::MutableArrayRef<clang::ParsedTemplateArgument>, clang::SourceLocation, clang::SourceLocation, bool) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#23 0x00007fffee722f22 in clang::Parser::ParseOptionalCXXScopeSpecifier(clang::CXXScopeSpec&, clang::OpaquePtr<clang::QualType>, bool, bool, bool*, bool, clang::IdentifierInfo**, bool, bool) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#24 0x00007fffee79ad1b in clang::Parser::TryAnnotateCXXScopeToken(bool) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#25 0x00007fffedd9dfad in cling::LookupHelper::findScope(llvm::StringRef, cling::LookupHelper::DiagSetting, clang::Type const**, bool) const () from /cvmfs/cms-ib.cern.ch/sw/x86_64/week1/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_ROOT6_X_2022-12-15-2300/external/el8_amd64_gcc11/lib/libCling.so
#26 0x00007fffedb6dd0d in GetClassSharedLibsForModule (cls=0x2574f70 "vector<reco::Muon>", LH=...) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/core/metacling/src/TCling.cxx:6936
#27 0x00007fffedb6e06a in TCling::GetClassSharedLibs (this=0x50bdf0, cls=0x2574f70 "vector<reco::Muon>") at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/core/metacling/src/TCling.cxx:7040
#28 0x00007fffedb53c3d in TClingLookupHelper__ExistingTypeCheck (tname=..., result=...) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/core/metacling/src/TCling.cxx:995
#29 0x00007fffed9ade46 in ROOT::TMetaUtils::TClingLookupHelper::ExistingTypeCheck (this=0x5594a0, tname=..., result=...) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/core/clingutils/src/TClingUtils.cxx:509
#30 0x00007ffff679d6ef in TClassEdit::TSplitType::ShortType (this=0x7fffffff2270, answ=..., mode=3618) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/core/foundation/src/TClassEdit.cxx:453
#31 0x00007ffff679edd7 in TClassEdit::GetNormalizedName (norm_name=..., name=...) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/core/foundation/src/TClassEdit.cxx:871
#32 0x00007ffff67c1523 in TClass::GetClass (name=0x2b001b0 "edm::Wrapper<vector<reco::Muon> >", load=true, silent=false, hint_pair_offset=0, hint_pair_size=0) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/core/meta/src/TClass.cxx:3056
#33 0x00007ffff67c11ad in TClass::GetClass (name=0x2b001b0 "edm::Wrapper<vector<reco::Muon> >", load=true, silent=false) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/lcg/root/6.27.01-39305256f3f360b1835a05ae811d1e19/root-6.27.01/core/meta/src/TClass.cxx:2971
#34 0x0000000000402a5f in tbb::detail::d1::function_task<main::{lambda()#2}>::execute(tbb::detail::d1::execution_data&) ()
#35 0x00007ffff6362955 in tbb::detail::r1::task_dispatcher::local_wait_for_all<false, tbb::detail::r1::external_waiter> (waiter=..., t=0x7fffd7ec3c00, this=0x7fffec9e9c00) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/external/tbb/v2021.8.0-rc1-0f8119bbef025dd7dc49da168f35adac/tbb-v2021.8.0-rc1/src/tbb/task_dispatcher.h:322
#36 tbb::detail::r1::task_dispatcher::local_wait_for_all<tbb::detail::r1::external_waiter> (waiter=..., t=<optimized out>, this=0x7fffec9e9c00) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/external/tbb/v2021.8.0-rc1-0f8119bbef025dd7dc49da168f35adac/tbb-v2021.8.0-rc1/src/tbb/task_dispatcher.h:458
#37 tbb::detail::r1::task_dispatcher::execute_and_wait (t=<optimized out>, wait_ctx=..., w_ctx=...) at /data/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/el8_amd64_gcc11/external/tbb/v2021.8.0-rc1-0f8119bbef025dd7dc49da168f35adac/tbb-v2021.8.0-rc1/src/tbb/task_dispatcher.cpp:168
#38 0x00000000004023e6 in main ()
Dr15Jones commented 1 year ago

So adding

   ROOT::EnableImplicitMT(
                          oneapi::tbb::global_control::active_value(oneapi::tbb::global_control::max_allowed_parallelism));

to the program seems to have resolved the crashes.

pcanal commented 1 year ago

So adding ... [something related to ROOT threading] ... resolved the crashes.

Right. I missed it but the minimal example above is missing:

ROOT::EnableThreadSafety();