-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
612 backport of I/O rules and splitting improvements. #123
612 backport of I/O rules and splitting improvements. #123
Conversation
A new Pull Request was created by @pcanal (Philippe Canal) for branch cms/v6-12-00-patches/3f31cef. @cmsbuild, @smuzaffar, @gudrutis, @mrodozov can you please review it and eventually sign? Thanks. external issue cms-sw/cmsdist#4784 |
Comparison job queued. |
Comparison is ready Comparison Summary:
|
…ect. This prevent the inappropriate execution on a rule intent for an inner object on the outer object('s memory space) In a case where the top level branch is: 1 edm::Wrapper<std::vector<pat::CompositeCandidate, std::allocator<pat::CompositeCandidate> > > which contains 2 16, obj, vector<pat::CompositeCandidate> simple base pat::PATObject<reco::CompositeCandidate> 3 360, overlapItems_, vector<edm::PtrVector<reco::Candidate> > simple base edm::PtrVectorBase 4 48, cachedItems_, atomic<vector<const void*>*> ***TRANSIENT-WITH-RULE** The TStreamerInfo Action Sequence for (4) was being executed the obj branch/level The bug was that GatherArtificialElements would drill through (3) eventhough it was not split and it did so because it did not recognize there was a branch for it because it added (errorneously) the name of the base class in the branch prefix.
Lock was moved deeper
I.e. insure we do not add or substract from the special offset value kMissing (which result in 'valid' offset in the 10,000 range leading to memory over-write or out-of-bounds reads)
unique_ptr can be nullptr too sometimes *and* anyway TStreamerInfo::Build does not make the same restriction. The mismatch lead to baffling error message like: Warning in <TStreamerInfo::BuildOld>: Cannot convert A::h from type: B to type: B, skip element This solves one of the problems seen in https://sft.its.cern.ch/jira/browse/ROOT-9702.
This addresses part of ROOT-9762
When a rule is associated to the top level node of split collection, we must not add the branch offset, since the rule is about the content of the collection
GetCollectionProxy during the setting of fCollProxy calls TBranchElement::GetInfoImp that in some cases sets fCollProxy and ends up recording it (sometimes) in the action sequence. When GetCollectionProxy sets it too (i.e. change it) there is now a disconnect between the branch and the action sequences that lead to the action sequence to used an unset collection proxy: Fatal in <TGenCollectionProxy>: Size> Logic error - no proxy object set. aborting
cc8302e
to
a473580
Compare
Pull request #123 was updated. external issue cms-sw/cmsdist#4784 |
please test with cms-sw/cmssw#26205 |
bot is not yet ready for this :-) |
@smuzaffar ok, thanks |
please test |
@smuzaffar ok, so the bot does not understand this for this package I understand, we should test it now that the fix by @Dr15Jones has been merged |
ok, I am starting the tests now |
Comparison job queued. |
Comparison is ready Comparison Summary:
|
+1 I would suggest to move forward with this fix |
No description provided.