Skip to content

Protect isMergeable() from types with no dictionary#51230

Merged
cmsbuild merged 1 commit into
cms-sw:masterfrom
dan131riley:isMergeable-protection
Jun 17, 2026
Merged

Protect isMergeable() from types with no dictionary#51230
cmsbuild merged 1 commit into
cms-sw:masterfrom
dan131riley:isMergeable-protection

Conversation

@dan131riley

Copy link
Copy Markdown
Contributor

PR description:

Reading pre-20xx files in 20xx can segfault in the check for mergable run and lumi products in the case where there is no dictionary for the product being checked. Sample stack trace:

#4  0x0000000000000000 in ?? ()
#5  0x000015496a7cc53f in edm::setIsMergeable(edm::BranchDescription&) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02946/el8_amd64_gcc13/cms/cmssw/CMSSW_20_1_X_2026-06-15-1100/lib/el8_amd64_gcc13/libDataFormatsCommon.so
#6  0x00001549185ae2fc in edm::RootFile::RootFile(edm::RootFile::FileOptions&&, edm::InputType, edm::RootFile::ProcessingOptions&&, edm::RootTree::Options&&, edm::RootFile::ProductChoices&&, edm::RootFile::CrossFileInfo&&, unsigned int, edm::ProcessHistoryRegistry&, std::vector<edm::Hash<2>, std::allocator<edm::Hash<2> > >&) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02946/el8_amd64_gcc13/cms/cmssw/CMSSW_20_1_X_2026-06-15-1100/lib/el8_amd64_gcc13/pluginIOPoolInput.so
#7  0x00001549185cf14b in edm::RootPrimaryFileSequence::makeRootFile(std::shared_ptr<edm::InputFile>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02946/el8_amd64_gcc13/cms/cmssw/CMSSW_20_1_X_2026-06-15-1100/lib/el8_amd64_gcc13/pluginIOPoolInput.so

Background in #51199 (comment).

Job failure in this case is expected, since #50968 breaks backward compatibility. However, the job should not segfault.

PR validation:

With this PR, sample failing jobs fail with a proper exception:

----- Begin Fatal Exception 16-Jun-2026 12:13:20 EDT-----------------------
An exception of category 'DictionaryNotFound' occurred while
   [0] Constructing the EventProcessor
Exception Message:
No Dictionary for class: 'GenEventInfoProduct'
----- End Fatal Exception -------------------------------------------------

A limited matrix run (in progress) has found no problems introduced by this PR.

Resolves cms-sw/framework-team#2301

@cmsbuild

cmsbuild commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

cms-bot internal usage

@cmsbuild

Copy link
Copy Markdown
Contributor

@cmsbuild

Copy link
Copy Markdown
Contributor

A new Pull Request was created by @dan131riley for master.

It involves the following packages:

  • DataFormats/Common (core)

@Dr15Jones, @cmsbuild, @makortel, @smuzaffar can you please review it and eventually sign? Thanks.
@makortel, @missirol, @mmusich, @rovere, @wddgit this is something you requested to watch as well.
@ftenchini, @mandrenguyen, @sextonkennedy you are the release manager for this.

cms-bot commands are listed here

@makortel

Copy link
Copy Markdown
Contributor

@cmsbuild, please test

@makortel

Copy link
Copy Markdown
Contributor

Thanks Dan!

@cmsbuild

Copy link
Copy Markdown
Contributor

+1

Size: This PR adds an extra 24KB to repository
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-4e7671/53995/summary.html
COMMIT: f95ce44
CMSSW: CMSSW_20_1_X_2026-06-16-1100/el9_amd64_gcc13
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmssw/51230/53995/install.sh to create a dev area with all the needed externals and cmssw changes.

Comparison Summary

Summary:

  • You potentially removed 1 lines from the logs
  • Reco comparison results: 0 differences found in the comparisons
  • DQMHistoTests: Total files compared: 45
  • DQMHistoTests: Total histograms compared: 3414477
  • DQMHistoTests: Total failures: 43
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 3414416
  • DQMHistoTests: Total skipped: 18
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 44 files compared)
  • Checked 195 log files, 163 edm output root files, 45 DQM output files

@makortel

Copy link
Copy Markdown
Contributor

Comparison differences are related to #47071

@makortel

Copy link
Copy Markdown
Contributor

+core

@cmsbuild

Copy link
Copy Markdown
Contributor

This pull request is fully signed and it will be integrated in one of the next master IBs (tests are also fine). This pull request will now be reviewed by the release team before it's merged. @mandrenguyen, @ftenchini, @sextonkennedy (and backports should be raised in the release meeting by the corresponding L2)

@mandrenguyen

Copy link
Copy Markdown
Contributor

+1

@cmsbuild
cmsbuild merged commit eee43c0 into cms-sw:master Jun 17, 2026
10 checks passed
@dan131riley
dan131riley deleted the isMergeable-protection branch June 18, 2026 14:28
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.

Address segfaults reading old files

4 participants