Skip to content

v626: Fix the fix to #7754 (schema evolution in nested collections incl. TClonesArray) #9798

Merged
pcanal merged 1 commit intoroot-project:v6-26-00-patchesfrom
pcanal:v626-issue-7754
Feb 3, 2022
Merged

v626: Fix the fix to #7754 (schema evolution in nested collections incl. TClonesArray) #9798
pcanal merged 1 commit intoroot-project:v6-26-00-patchesfrom
pcanal:v626-issue-7754

Conversation

@pcanal
Copy link
Copy Markdown
Member

@pcanal pcanal commented Feb 2, 2022

TBranchElement: do not set fOnfileObject for collection parent (type 3 or 4).

This assignment is both unnecessary and harmfull.

It is unnecessary because the pushd and popd of the onfile object address
for those cases is already handle by the usage of PushDataCache and PopDataCache
action for the branches of type 3 and 4 (via their configuration).

It is harmfull because the type of the used/seen in the sub-branches might
be completely different from the type of the collection content.

For example, this code was crashing some CMS jobs because the sub-branches
that had a "OnfileObject" corresponded to a nested sub-object (of type
reco::ParticleState) and then this was (unconditionally) associated with
the head node of the collection, which contained reco::PFCandidate objects
(One of PFCandidate base class contains a reco::ParticleState sub-object).

The assignment is triggered when visiting one of the child branch (type 31 or 41)
of the collection parent branch.

This is a fix for the main branch commit 875e8fb
which is fix for the issue #7754.

…3 or 4).

This assignment is both unnecessary and harmfull.

It is unnecessary because the pushd and popd of the onfile object address
for those cases is already handle by the usage of PushDataCache and PopDataCache
action for the branches of type 3 and 4 (via their configuration).

It is harmfull because the type of the used/seen in the sub-branches might
be completely different from the type of the collection content.

For example, this code was crashing some CMS jobs because the sub-branches
that had a "OnfileObject" corresponded to a nested sub-object (of type
reco::ParticleState) and then this was (unconditionally) associated with
the head node of the collection, which contained reco::PFCandidate objects
(One of PFCandidate base class contains a reco::ParticleState sub-object).

The assignment is triggered when visiting one of the child branch (type 31 or 41)
of the collection parent branch.

This is a fix for the main branch commit 875e8fb
which is fix for the issue root-project#7754.
@phsft-bot
Copy link
Copy Markdown

Starting build on ROOT-debian10-i386/cxx14, ROOT-performance-centos8-multicore/default, ROOT-ubuntu16/nortcxxmod, ROOT-ubuntu2004/soversion, mac1015/python3, mac11/cxx17, windows10/cxx14
How to customize builds

@pcanal pcanal changed the title TBranchElement: do not set fOnfileObject for collection parent (type 3 or 4). v626: Fix the fix to #7754 (schema evolution in nested collections incl. TClonesArray) Feb 3, 2022
@pcanal pcanal merged commit 2d85dd1 into root-project:v6-26-00-patches Feb 3, 2022
@pcanal pcanal deleted the v626-issue-7754 branch February 3, 2022 18:57
@pcanal pcanal linked an issue Feb 3, 2022 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PyROOT in root 6.24 branch hangs while loading CMSSW library

2 participants