Skip to content
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

[v634] Prevent a race condition in fStreamerImpl value #17759

Merged
merged 4 commits into from
Feb 19, 2025

Conversation

pcanal
Copy link
Member

@pcanal pcanal commented Feb 18, 2025

Backport of #17714.

TClass objects that do not have a dictionary and do not have interpreter info (this happens forwarded classes and in some cases STL collection) do not have enough information for a final value of their "Properties" and thus TClass::Property is set for them to re-run at each invocations. In addition the start of the Property calculation was to reset fStreamerImpl to the default. Consequently if 1 thread execute Property while the other is reading fStreamerImpl, the 2nd one will get an incorrect value.

This fixes the problem seen at cms-sw/cmssw#47287 (comment)

This fixes #17753 for v6-34-00-patches.

So that all other settings are set before the release (i.e. fProperty switching from -1
to another value)
It is re-run if the first time we ran it, it did not have the full information (i.e. no
dictionary nor any interpreter info; this happens for forward classes and STL collections).
@pcanal pcanal added in:Core Libraries in:Dictionaries experiment Affects an experiment / reported by its software & computimng experts labels Feb 18, 2025
@pcanal pcanal added this to the 6.34.06 milestone Feb 18, 2025
@pcanal pcanal self-assigned this Feb 18, 2025
@pcanal pcanal requested a review from dpiparo as a code owner February 18, 2025 19:48
@pcanal pcanal merged commit 7c7b6d7 into root-project:v6-34-00-patches Feb 19, 2025
19 of 21 checks passed
@pcanal pcanal deleted the v6-34-TClassPropertyRace branch February 19, 2025 02:10
@pcanal pcanal linked an issue Feb 27, 2025 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
Labels
experiment Affects an experiment / reported by its software & computimng experts in:Core Libraries in:Dictionaries
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Race condition in TClass::fStreamerImpl value for emulated classes.
1 participant