cmssw icon indicating copy to clipboard operation
cmssw copied to clipboard

Evolve `auto_ptr<gen::PdfInfo>`-to-`unique_ptr` read rules to avoid `std::auto_ptr`

Open makortel opened this issue 2 weeks ago • 19 comments

PR description:

This PR applies the ROOT schema evolution pattern that avoids the use of std::auto_ptr (that was formally removed in C++17), for which a test was developed in https://github.com/cms-sw/cmssw/pull/48817, to the std::auto_ptr<gen::PdfInfo> -to-std::unique_ptr<gen::PdfInfo> read rules for GenEventInfoProduct and LHEEventProduct.

In addition, the first commit fixes the LHEEventProduct read rule to include all versions before 13 (that came up in https://github.com/cms-sw/cmssw/issues/49538). I included it here to because I had to touch the same line in classes_def.xml, and doing that change first makes the backporting easier.

Fixes https://github.com/cms-sw/cmssw/issues/43422 Fixes https://github.com/cms-sw/cmssw/issues/43923 Resolves https://github.com/cms-sw/framework-team/issues/1538 Resolves https://github.com/cms-sw/framework-team/issues/1714

PR validation:

Code compiles, and the deprecation warnings along

>> Compiling scram_x86-64-v2 LCG dictionary: tmp/el8_amd64_gcc13/src/SimDataFormats/GeneratorProducts/src/SimDataFormatsGeneratorProducts/lcgdict/SimDataFormatsGeneratorProducts_xr.cc
/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc13/external/gcc/13.4.0-6908cfdf803923e783448096ca4f0923/bin/c++ -MMD -MF tmp/el8_amd64_gcc13/src/SimDataFormats/GeneratorProducts/src/SimDataFormatsGeneratorProducts/scram_x86-64-v2/lcgdict/SimDataFormatsGeneratorProducts_xr.cc.d -I. -c -DCMS_MICRO_ARCH='x86-64-v2' -DGNU_GCC -D_GNU_SOURCE -DTBB_USE_GLIBCXX_VERSION=130400 -DTBB_SUPPRESS_DEPRECATED_MESSAGES -DTBB_PREVIEW_RESUMABLE_TASKS=1 -DTBB_PREVIEW_TASK_GROUP_EXTENSIONS=1 -DBOOST_SPIRIT_THREADSAFE -DPHOENIX_THREADSAFE -DBOOST_MATH_DISABLE_STD_FPCLASSIFY -DBOOST_UUID_RANDOM_PROVIDER_FORCE_POSIX -DBOOST_MPL_IGNORE_PARENTHESES_WARNING -DCMSSW_GIT_HASH='CMSSW_16_0_X_2025-12-09-2300' -DPROJECT_NAME='CMSSW' -DPROJECT_VERSION='CMSSW_16_0_X_2025-12-09-2300' -Isrc -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc13/external/pcre/8.43-6d98fda3bfd074ebb583e2d6a2c75d25/include -isystem/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc13/external/boost/1.80.0-6fb83b2bac2398768f2cc6374a639c37/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc13/external/bz2lib/1.0.6-d113e1c6278c07eeaff5f84db9548446/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc13/external/hepmc/2.06.10-903e23142392c852f3df97c32fbd4659/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc13/external/libuuid/2.34-5ba7a8abfc0c5fecdc448cca360c25ff/include -isystem/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc13/lcg/root/6.36.07-0490e78b33943d48f9af1c19441a9d2e/include -isystem/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc13/external/tbb/v2022.3.0-54089f7aad511dfcd272d65c5ee4b3ab/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc13/external/xz/5.6.4-b9c4ffbc390ed320a5d57fd552e29a05/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc13/external/zlib/1.2.13-589f6bb51bbeba38a7adf5a10ea8a093/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc13/external/hepmc3/3.2.7-f8f0da18d94695d72ff740910e834c9f/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc13/external/md5/1.0.0-26057075013e190e56dad37d35219376/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc13/external/tinyxml2/6.2.0-67924ead96ecb4e69aad321b767979a5/include -DCMSSW_REFLEX_DICT -pthread -pipe -Werror=main -Werror=pointer-arith -Werror=overlength-strings -Wno-vla -Werror=overflow -std=c++20 -ftree-vectorize -Werror=array-bounds -Werror=format-contains-nul -Werror=type-limits -fvisibility-inlines-hidden -fno-math-errno --param vect-max-version-for-alias-checks=50 -Xassembler --compress-debug-sections -Wno-error=array-bounds -Warray-bounds -fuse-ld=bfd -felide-constructors -fmessage-length=0 -Wall -Wno-non-template-friend -Wno-long-long -Wreturn-type -Wextra -Wpessimizing-move -Wclass-memaccess -Wno-cast-function-type -Wno-unused-but-set-parameter -Wno-ignored-qualifiers -Wno-unused-parameter -Wunused -Wparentheses -Werror=return-type -Werror=unused-value -Werror=unused-label -Werror=address -Werror=format -Werror=sign-compare -Werror=write-strings -Werror=delete-non-virtual-dtor -Werror=strict-aliasing -Werror=narrowing -Werror=unused-but-set-variable -Werror=reorder -Werror=unused-variable -Werror=conversion-null -Werror=return-local-addr -Wnon-virtual-dtor -Werror=switch -fdiagnostics-show-option -Wno-unused-local-typedefs -Wno-attributes -Wno-psabi -Wno-error=unused-variable -DBOOST_DISABLE_ASSERTS -Os -Wno-unused-variable -march=x86-64-v2 -flto=auto -fipa-icf -flto-odr-type-merging -fno-fat-lto-objects -Wodr  -fPIC  tmp/el8_amd64_gcc13/src/SimDataFormats/GeneratorProducts/src/SimDataFormatsGeneratorProducts/lcgdict/SimDataFormatsGeneratorProducts_xr.cc -o tmp/el8_amd64_gcc13/src/SimDataFormats/GeneratorProducts/src/SimDataFormatsGeneratorProducts/scram_x86-64-v2/lcgdict/SimDataFormatsGeneratorProducts_xr.cc.o
  tmp/el8_amd64_gcc13/src/SimDataFormats/GeneratorProducts/src/SimDataFormatsGeneratorProducts/lcgdict/SimDataFormatsGeneratorProducts_xr.cc:234:62: warning: 'template<class> class std::auto_ptr' is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
   234 |    static TGenericClassInfo *GenerateInitInstanceLocal(const auto_ptr<gen::PdfInfo>*)
      |                                                              ^~~~~~~~

are gone. Testing of the actual behavior relies of the test of the pattern added in https://github.com/cms-sw/cmssw/pull/48817, and in existing tests (including runTheMatrix) in PR and IB tests.

If this PR is a backport please specify the original PR and why you need to backport that PR. If this PR will be backported please specify to which release cycle the backport is meant for:

The first commit will be backported (at least down to 15_0_X).

makortel avatar Dec 10 '25 16:12 makortel

cms-bot internal usage

cmsbuild avatar Dec 10 '25 16:12 cmsbuild

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-49593/47131

  • There are other open Pull requests which might conflict with changes you have proposed:
    • File SimDataFormats/GeneratorProducts/src/classes.h modified in PR(s): #38033
    • File SimDataFormats/GeneratorProducts/src/classes_def.xml modified in PR(s): #38033

cmsbuild avatar Dec 10 '25 16:12 cmsbuild

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

It involves the following packages:

  • SimDataFormats/GeneratorProducts (generators)

@cmsbuild, @lviliani, @mkirsano, @sensrcn, @theofil can you please review it and eventually sign? Thanks. @apsallid, @bsunanda, @denizsun, @fabiocos, @martinamalberti, @missirol, @mmusich, @rovere, @salimcerci, @youyingli 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

cmsbuild avatar Dec 10 '25 16:12 cmsbuild

@cmsbuild, please test

makortel avatar Dec 10 '25 16:12 makortel

+1

Size: This PR adds an extra 24KB to repository Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-284a32/49886/summary.html COMMIT: fde5708c9df5b4801e7922ac4ad7ddbbc89d26f8 CMSSW: CMSSW_16_0_X_2025-12-10-1100/el8_amd64_gcc13 User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week1/cms-sw/cmssw/49593/49886/install.sh to create a dev area with all the needed externals and cmssw changes.

Comparison Summary

Summary:

  • You potentially added 4 lines to the logs
  • ROOTFileChecks: Some differences in event products or their sizes found
  • Reco comparison results: 5 differences found in the comparisons
  • Reco comparison had 4 failed jobs
  • DQMHistoTests: Total files compared: 53
  • DQMHistoTests: Total histograms compared: 4273241
  • DQMHistoTests: Total failures: 67
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 4273154
  • DQMHistoTests: Total skipped: 20
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 52 files compared)
  • Checked 227 log files, 198 edm output root files, 53 DQM output files
  • TriggerResults: no differences found

cmsbuild avatar Dec 10 '25 18:12 cmsbuild

@cmsbuild, please test workflow 2500.0201,2500.0202,2500.0203,2500.0204,2500.0401,2500.0402,2500.0403, 2500.0404

By quick look at least these workflows seem to read older-than-11_0_X AODSIM or MiniAODSIM files, and thus I'd expect to exercise the read rules.

makortel avatar Dec 10 '25 18:12 makortel

@cmsbuild, please test workflow 2500.0201,2500.0202,2500.0203,2500.0204,2500.0401,2500.0402,2500.0403,2500.0404

makortel avatar Dec 10 '25 20:12 makortel

+1

Size: This PR adds an extra 24KB to repository Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-284a32/49893/summary.html COMMIT: fde5708c9df5b4801e7922ac4ad7ddbbc89d26f8 CMSSW: CMSSW_16_0_X_2025-12-10-1100/el8_amd64_gcc13 User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week1/cms-sw/cmssw/49593/49893/install.sh to create a dev area with all the needed externals and cmssw changes.

Comparison Summary

Summary:

  • You potentially added 4 lines to the logs
  • ROOTFileChecks: Some differences in event products or their sizes found
  • Reco comparison results: 1 differences found in the comparisons
  • Reco comparison had 4 failed jobs
  • DQMHistoTests: Total files compared: 61
  • DQMHistoTests: Total histograms compared: 4285385
  • DQMHistoTests: Total failures: 78
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 4285287
  • DQMHistoTests: Total skipped: 20
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 60 files compared)
  • Checked 251 log files, 214 edm output root files, 61 DQM output files
  • TriggerResults: no differences found

cmsbuild avatar Dec 10 '25 22:12 cmsbuild

Comparison differences are related to https://github.com/cms-sw/cmssw/issues/47071

makortel avatar Dec 10 '25 22:12 makortel

hold

I was just told this recipe has a memory leak

makortel avatar Dec 11 '25 16:12 makortel

Pull request has been put on hold by @makortel They need to issue an unhold command to remove the hold state or L1 can unhold it for all

cmsbuild avatar Dec 11 '25 16:12 cmsbuild

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-49593/47162

  • There are other open Pull requests which might conflict with changes you have proposed:
    • File SimDataFormats/GeneratorProducts/src/classes.h modified in PR(s): #38033
    • File SimDataFormats/GeneratorProducts/src/classes_def.xml modified in PR(s): #38033

cmsbuild avatar Dec 12 '25 22:12 cmsbuild

I updated the read rule following the convergence and tests of the test in https://github.com/cms-sw/cmssw/pull/49621

makortel avatar Dec 12 '25 22:12 makortel

unhold

makortel avatar Dec 12 '25 22:12 makortel

@cmsbuild, please test

makortel avatar Dec 12 '25 22:12 makortel

Pull request #49593 was updated. @lviliani, @mkirsano, @sensrcn, @theofil can you please check and sign again.

cmsbuild avatar Dec 12 '25 22:12 cmsbuild

+1

Size: This PR adds an extra 20KB to repository Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-284a32/49939/summary.html COMMIT: 54bdaa5b9dbbceaa3b815b2b86ca5b619dc593e8 CMSSW: CMSSW_16_0_X_2025-12-12-2300/el8_amd64_gcc13 User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week1/cms-sw/cmssw/49593/49939/install.sh to create a dev area with all the needed externals and cmssw changes.

Comparison Summary

Summary:

  • No significant changes to the logs found
  • ROOTFileChecks: Some differences in event products or their sizes found
  • Reco comparison results: 1 differences found in the comparisons
  • Reco comparison had 4 failed jobs
  • DQMHistoTests: Total files compared: 53
  • DQMHistoTests: Total histograms compared: 4273241
  • DQMHistoTests: Total failures: 64
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 4273157
  • DQMHistoTests: Total skipped: 20
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 52 files compared)
  • Checked 227 log files, 198 edm output root files, 53 DQM output files
  • TriggerResults: no differences found

cmsbuild avatar Dec 13 '25 02:12 cmsbuild

Comparison differences are related to https://github.com/cms-sw/cmssw/issues/47071

makortel avatar Dec 15 '25 14:12 makortel

@cms-sw/generators-l2 Could you review and sign? It would be great to have this PR in 16_0_0_pre4.

makortel avatar Dec 15 '25 16:12 makortel

@cms-sw/generators-l2 Ping

makortel avatar Dec 16 '25 14:12 makortel

+generators

lviliani avatar Dec 16 '25 14:12 lviliani

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, @sextonkennedy, @ftenchini (and backports should be raised in the release meeting by the corresponding L2)

cmsbuild avatar Dec 16 '25 14:12 cmsbuild

+1

mandrenguyen avatar Dec 17 '25 08:12 mandrenguyen