cmssw icon indicating copy to clipboard operation
cmssw copied to clipboard

Moved storage related code to FWStorage subsystem

Open Dr15Jones opened this issue 2 weeks ago • 32 comments

PR description:

  • Reorganized storage related code to be in a new dedicated FWStorage subdirectory. This contains code which is TTree/RNTuple agnostic.
  • Moved storage related code out of FWCore/Services to FWStorage/Services to better isolate external dependencies.

This work is based on the discussion here https://github.com/cms-sw/framework-team/issues/1256#issuecomment-3617363107

PR validation:

Framework tests mostly work. The ones that fail are because of an incompatibility between CMS partial builds and how ROOT handles its rootmap files. When ROOT parses the rootmap files, it lumps all lib*.so files from different directories into the same list and complains if there are overlaps. Therefore if we move a dictionary from one package to a different one, ROOT will see both placements, one in the user work area and the other coming from the CMSSW release area. Scram avoids this problem by taking into account LD_LIBRARY_PATH ordering but ROOT does not appear to do that.

resolves https://github.com/cms-sw/framework-team/issues/1715

Dr15Jones avatar Dec 10 '25 17:12 Dr15Jones

cms-bot internal usage

cmsbuild avatar Dec 10 '25 17:12 cmsbuild

please test

Dr15Jones avatar Dec 10 '25 17:12 Dr15Jones

-code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-49594/47132

Code check has found code style and quality issues which could be resolved by applying following patch(s)

  • code-format: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-49594/47132/code-format.patch e.g. curl -k https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-49594/47132/code-format.patch | patch -p1 You can also run scram build code-format to apply code format directly

cmsbuild avatar Dec 10 '25 17:12 cmsbuild

please test

Dr15Jones avatar Dec 10 '25 17:12 Dr15Jones

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-49594/47133

cmsbuild avatar Dec 10 '25 17:12 cmsbuild

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

It involves the following packages:

  • FWCore/ParameterSet (core)
  • FWCore/Services (core)
  • FWStorage/DCacheAdaptor (****)
  • FWStorage/Services (****)
  • FWStorage/StorageFactory (****)
  • FWStorage/TFileAdaptor (****)
  • FWStorage/XrdAdaptor (****)
  • IOPool/Common (core)
  • IOPool/Input (core)
  • IOPool/Streamer (core)
  • IOPool/TFileAdaptor (core)
  • Utilities/DCacheAdaptor (core)
  • Utilities/StorageFactory (core)
  • Utilities/XrdAdaptor (core)

The following packages do not have a category, yet:

FWStorage/DCacheAdaptor FWStorage/Services FWStorage/StorageFactory FWStorage/TFileAdaptor FWStorage/XrdAdaptor Please create a PR for https://github.com/cms-sw/cms-bot/blob/master/categories_map.py to assign category

@Dr15Jones, @makortel, @smuzaffar can you please review it and eventually sign? Thanks. @fwyzard, @makortel, @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

cmsbuild avatar Dec 10 '25 17:12 cmsbuild

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-49594/47134

cmsbuild avatar Dec 10 '25 17:12 cmsbuild

Pull request #49594 was updated. @Dr15Jones, @cmsbuild, @makortel, @smuzaffar can you please check and sign again.

cmsbuild avatar Dec 10 '25 17:12 cmsbuild

please test

Dr15Jones avatar Dec 10 '25 17:12 Dr15Jones

-1

Failed Tests: Build HeaderConsistency Size: This PR adds an extra 412KB to repository Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-3dc70c/49888/summary.html COMMIT: c087667891c9846907f7eb89021408cf3aac0b18 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/49594/49888/install.sh to create a dev area with all the needed externals and cmssw changes.

The following merge commits were also included on top of IB + this PR after doing git cms-merge-topic:

  • @stahlleiton cms-sw/cmssw#49561

You can see more details here: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-3dc70c/49888/git-recent-commits.json https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-3dc70c/49888/git-merge-result

Failed Build

I found compilation error when building:

/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02919/el8_amd64_gcc13/external/gcc/13.4.0-6908cfdf803923e783448096ca4f0923/bin/c++ -c -DCMS_MICRO_ARCH='x86-64-v3' -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-10-1100' -DPROJECT_NAME='CMSSW' -DPROJECT_VERSION='CMSSW_16_0_X_2025-12-10-1100' -Isrc -Ipoison -I/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02919/el8_amd64_gcc13/cms/cmssw-patch/CMSSW_16_0_X_2025-12-10-1100/src -I/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02919/el8_amd64_gcc13/external/pcre/8.43-6d98fda3bfd074ebb583e2d6a2c75d25/include -isystem/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02919/el8_amd64_gcc13/external/boost/1.80.0-6fb83b2bac2398768f2cc6374a639c37/include -I/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02919/el8_amd64_gcc13/external/bz2lib/1.0.6-d113e1c6278c07eeaff5f84db9548446/include -I/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02919/el8_amd64_gcc13/external/libuuid/2.34-5ba7a8abfc0c5fecdc448cca360c25ff/include -isystem/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02919/el8_amd64_gcc13/lcg/root/6.36.07-0490e78b33943d48f9af1c19441a9d2e/include -isystem/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02919/el8_amd64_gcc13/external/tbb/v2022.3.0-54089f7aad511dfcd272d65c5ee4b3ab/include -I/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02919/el8_amd64_gcc13/external/xz/5.6.4-b9c4ffbc390ed320a5d57fd552e29a05/include -I/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02919/el8_amd64_gcc13/external/zlib/1.2.13-589f6bb51bbeba38a7adf5a10ea8a093/include -I/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02919/el8_amd64_gcc13/external/md5/1.0.0-26057075013e190e56dad37d35219376/include -I/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02919/el8_amd64_gcc13/external/tinyxml2/6.2.0-67924ead96ecb4e69aad321b767979a5/include -O3 -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 -march=x86-64-v3 -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 -flto=auto -fipa-icf -flto-odr-type-merging -fno-fat-lto-objects -Wodr -fPIC -MMD -MF tmp/el8_amd64_gcc13/src/IORawData/SiPixelInputSources/src/IORawDataSiPixelInputSources/PixelSLinkDataInputSource.cc.d src/IORawData/SiPixelInputSources/src/PixelSLinkDataInputSource.cc -o tmp/el8_amd64_gcc13/src/IORawData/SiPixelInputSources/src/IORawDataSiPixelInputSources/PixelSLinkDataInputSource.cc.o
>> Compiling edm plugin src/IORawData/SiPixelInputSources/src/SealModule.cc
/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02919/el8_amd64_gcc13/external/gcc/13.4.0-6908cfdf803923e783448096ca4f0923/bin/c++ -c -DCMS_MICRO_ARCH='x86-64-v3' -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-10-1100' -DPROJECT_NAME='CMSSW' -DPROJECT_VERSION='CMSSW_16_0_X_2025-12-10-1100' -Isrc -Ipoison -I/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02919/el8_amd64_gcc13/cms/cmssw-patch/CMSSW_16_0_X_2025-12-10-1100/src -I/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02919/el8_amd64_gcc13/external/pcre/8.43-6d98fda3bfd074ebb583e2d6a2c75d25/include -isystem/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02919/el8_amd64_gcc13/external/boost/1.80.0-6fb83b2bac2398768f2cc6374a639c37/include -I/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02919/el8_amd64_gcc13/external/bz2lib/1.0.6-d113e1c6278c07eeaff5f84db9548446/include -I/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02919/el8_amd64_gcc13/external/libuuid/2.34-5ba7a8abfc0c5fecdc448cca360c25ff/include -isystem/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02919/el8_amd64_gcc13/lcg/root/6.36.07-0490e78b33943d48f9af1c19441a9d2e/include -isystem/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02919/el8_amd64_gcc13/external/tbb/v2022.3.0-54089f7aad511dfcd272d65c5ee4b3ab/include -I/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02919/el8_amd64_gcc13/external/xz/5.6.4-b9c4ffbc390ed320a5d57fd552e29a05/include -I/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02919/el8_amd64_gcc13/external/zlib/1.2.13-589f6bb51bbeba38a7adf5a10ea8a093/include -I/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02919/el8_amd64_gcc13/external/md5/1.0.0-26057075013e190e56dad37d35219376/include -I/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02919/el8_amd64_gcc13/external/tinyxml2/6.2.0-67924ead96ecb4e69aad321b767979a5/include -O3 -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 -march=x86-64-v3 -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 -flto=auto -fipa-icf -flto-odr-type-merging -fno-fat-lto-objects -Wodr -fPIC -MMD -MF tmp/el8_amd64_gcc13/src/IORawData/SiPixelInputSources/src/IORawDataSiPixelInputSources/SealModule.cc.d src/IORawData/SiPixelInputSources/src/SealModule.cc -o tmp/el8_amd64_gcc13/src/IORawData/SiPixelInputSources/src/IORawDataSiPixelInputSources/SealModule.cc.o
In file included from src/IORawData/SiPixelInputSources/interface/PixelSLinkDataInputSource.h:33,
                 from src/IORawData/SiPixelInputSources/src/PixelSLinkDataInputSource.cc:24:
poison/Utilities/StorageFactory/interface/Storage.h:1:2: error: #error THIS FILE HAS BEEN REMOVED FROM THE PACKAGE.
    1 | #error THIS FILE HAS BEEN REMOVED FROM THE PACKAGE.
      |  ^~~~~
In file included from src/IORawData/SiPixelInputSources/interface/PixelSLinkDataInputSource.h:34:
poison/Utilities/StorageFactory/interface/StorageAccount.h:1:2: error: #error THIS FILE HAS BEEN REMOVED FROM THE PACKAGE.
    1 | #error THIS FILE HAS BEEN REMOVED FROM THE PACKAGE.

cmsbuild avatar Dec 10 '25 17:12 cmsbuild

please test

Dr15Jones avatar Dec 10 '25 18:12 Dr15Jones

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-49594/47135

cmsbuild avatar Dec 10 '25 18:12 cmsbuild

please test

Dr15Jones avatar Dec 10 '25 18:12 Dr15Jones

Pull request #49594 was updated. @Alejandro1400, @Dr15Jones, @JanChyczynski, @Moanwar, @arunhep, @atpathak, @jfernan2, @lviliani, @makortel, @mandrenguyen, @mkirsano, @perrotta, @sensrcn, @smuzaffar, @srimanob, @theofil can you please check and sign again.

cmsbuild avatar Dec 10 '25 18:12 cmsbuild

-1

Failed Tests: UnitTests Size: This PR adds an extra 416KB to repository Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-3dc70c/49890/summary.html COMMIT: 46231f2fa863a3059046c1db684f6d3de915fa71 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/49594/49890/install.sh to create a dev area with all the needed externals and cmssw changes.

The following merge commits were also included on top of IB + this PR after doing git cms-merge-topic:

  • @stahlleiton cms-sw/cmssw#49561

You can see more details here: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-3dc70c/49890/git-recent-commits.json https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-3dc70c/49890/git-merge-result

Failed Unit Tests

I found 3 errors in the following unit tests:

---> test TestEdmFastMerge had ERRORS
---> test TestIOPoolCommonTP had ERRORS
---> test TestPoolInputOldFormat had ERRORS

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: 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 10 '25 20:12 cmsbuild

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-49594/47136

cmsbuild avatar Dec 10 '25 20:12 cmsbuild

Pull request #49594 was updated. @Alejandro1400, @Dr15Jones, @JanChyczynski, @Moanwar, @arunhep, @atpathak, @cmsbuild, @jfernan2, @lviliani, @makortel, @mandrenguyen, @mkirsano, @perrotta, @sensrcn, @smuzaffar, @srimanob, @theofil can you please check and sign again.

cmsbuild avatar Dec 10 '25 20:12 cmsbuild

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-49594/47137

cmsbuild avatar Dec 10 '25 20:12 cmsbuild

Pull request #49594 was updated. @Alejandro1400, @Dr15Jones, @JanChyczynski, @Moanwar, @arunhep, @atpathak, @cmsbuild, @jfernan2, @lviliani, @makortel, @mandrenguyen, @mkirsano, @perrotta, @sensrcn, @smuzaffar, @srimanob, @theofil can you please check and sign again.

cmsbuild avatar Dec 10 '25 20:12 cmsbuild

please test

Dr15Jones avatar Dec 10 '25 20:12 Dr15Jones

-1

Failed Tests: UnitTests Size: This PR adds an extra 416KB to repository Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-3dc70c/49891/summary.html COMMIT: 88378e096d6252571e5e58fdfbf8ec4c06c0cf62 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/49594/49891/install.sh to create a dev area with all the needed externals and cmssw changes.

The following merge commits were also included on top of IB + this PR after doing git cms-merge-topic:

  • @stahlleiton cms-sw/cmssw#49561

You can see more details here: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-3dc70c/49891/git-recent-commits.json https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-3dc70c/49891/git-merge-result

Failed Unit Tests

I found 1 errors in the following unit tests:

---> test TestIOPoolCommonTP had ERRORS

Comparison Summary

Summary:

  • You potentially added 5 lines to the logs
  • ROOTFileChecks: Some differences in event products or their sizes found
  • Reco comparison results: 4 differences found in the comparisons
  • Reco comparison had 4 failed jobs
  • DQMHistoTests: Total files compared: 53
  • DQMHistoTests: Total histograms compared: 4273241
  • DQMHistoTests: Total failures: 27
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 4273194
  • 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 22:12 cmsbuild

The unit test failure was expected and will go away once this PR is merged into the IBs. That is because the problem is ROOT is seeing the 'same' plugin in both the release area and the work area because the plugin was moved to a new shared library.

Dr15Jones avatar Dec 11 '25 14:12 Dr15Jones

+1

jfernan2 avatar Dec 11 '25 14:12 jfernan2

The connected change is https://github.com/cms-sw/cms-bot/pull/2633

Dr15Jones avatar Dec 11 '25 15:12 Dr15Jones

+core

makortel avatar Dec 11 '25 17:12 makortel

@cms-sw/generators-l2 @cms-sw/alca-l2 please sign. The changes were simply to move files to a new directory.

Dr15Jones avatar Dec 11 '25 18:12 Dr15Jones

@cms-sw/generators-l2 @cms-sw/alca-l2 please sign. The test failure is expected and will go away once this is in the IB.

Dr15Jones avatar Dec 12 '25 14:12 Dr15Jones

ignore tests-rejected with external-failure

Dr15Jones avatar Dec 12 '25 14:12 Dr15Jones

+alca

perrotta avatar Dec 13 '25 09:12 perrotta

@cms-sw/generators-l2 please sign

@cms-sw/orp-l2 please consider continuing without generator signature as the changes related to generator were simply to change where an include comes from.

Dr15Jones avatar Dec 15 '25 12:12 Dr15Jones