cms-sw / cmssw

CMS Offline Software
http://cms-sw.github.io/
Apache License 2.0
1.07k stars 4.28k forks source link

[ASAN_X] Compilation failure in Validation/CTPPS: 'this' pointer is null #45991

Open iarspider opened 1 week ago

iarspider commented 1 week ago

The error fixed by #45786 is back:

>> Compiling edm plugin src/Validation/CTPPS/plugins/CTPPSTrackDistributionPlotter.cc
/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc12/external/gcc/12.3.1-40d504be6370b5a30e3947a6e575ca28/bin/c++ -c -DGNU_GCC -D_GNU_SOURCE -DTBB_USE_GLIBCXX_VERSION=120301 -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 -DDD4HEP_USE_GEANT4_UNITS=1 -DCMSSW_GIT_HASH='CMSSW_14_2_ASAN_X_2024-09-11-2300' -DPROJECT_NAME='CMSSW' -DPROJECT_VERSION='CMSSW_14_2_ASAN_X_2024-09-11-2300' -Isrc -Ipoison -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc12/cms/cmssw/CMSSW_14_2_ASAN_X_2024-09-09-2300/src -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc12/cms/coral/CORAL_2_3_21-99d87c8f9668582b97ca52cb8ceddffe/include/LCG -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc12/external/dd4hep/v01-29-00-a1ce795f3d26400d4fc115c45b07f9a9/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc12/external/pcre/8.43-e34796d17981e9b6d174328c69446455/include -isystem/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc12/external/boost/1.80.0-7ac88d918a6883d593abc133ee0eb2e9/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc12/external/bz2lib/1.0.6-d065ccd79984efc6d4660f410e4c81de/include -isystem/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc12/external/clhep/2.4.7.1-17c7283747b6cbc68a3534cb987a890c/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc12/external/curl/7.79.0-abae79fca02c8e83ab0f428f2a91d96b/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc12/external/gsl/2.6-4e597de26ced42091883404fa44cef2e/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc12/external/hepmc/2.06.10-6a65fcd1f028c097f0f24e8fa61d1b1b/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc12/external/libuuid/2.34-27ce4c3579b5b1de2808ea9c4cd8ed29/include -isystem/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc12/lcg/root/6.30.09-5371975256c236eab45164692fccb0e2/include -isystem/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc12/external/tbb/v2021.9.0-2391c941213c757dc9a1835b31681235/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc12/external/xerces-c/3.1.3-c7b88eaa36d0408120f3c29826a04bf6/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc12/external/xz/5.2.5-6f3f49b07db84e10c9be594a1176c114/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc12/external/zlib/1.2.11-1a082fc322b0051b504cc023f21df178/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc12/external/eigen/3bb6a48d8c171cf20b5f8e48bfb4e424fbd4f79e-39786ff94f8aa2f543922cad720e1b32/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc12/external/eigen/3bb6a48d8c171cf20b5f8e48bfb4e424fbd4f79e-39786ff94f8aa2f543922cad720e1b32/include/eigen3 -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc12/external/fmt/10.2.1-deba157dd76fed17ac8b42adc60ff53f/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc12/external/hepmc3/3.2.7-c29b1572175a7bf793f46dc34d1f656a/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc12/external/md5/1.0.0-5b594b264e04ae51e893b1d69a797ec6/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc12/external/OpenBLAS/0.3.27-6574458f8642b299ac965c654e194a8b/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc12/external/tinyxml2/6.2.0-68d511689c5dbd9a0d296bbb795fa052/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-v2 -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=missing-braces -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 -fno-omit-frame-pointer -fsanitize=address -fsanitize=pointer-subtract -DEIGEN_DONT_PARALLELIZE -DEIGEN_MAX_ALIGN_BYTES=64 -Wno-error=unused-variable -DBOOST_DISABLE_ASSERTS -fPIC -MMD -MF tmp/el8_amd64_gcc12/src/Validation/CTPPS/plugins/ValidationCTPPSPlugins/CTPPSTrackDistributionPlotter.cc.d src/Validation/CTPPS/plugins/CTPPSTrackDistributionPlotter.cc -o tmp/el8_amd64_gcc12/src/Validation/CTPPS/plugins/ValidationCTPPSPlugins/CTPPSTrackDistributionPlotter.cc.o
In file included from src/DataFormats/Common/interface/RefVector.h:18,
                 from src/DataFormats/ProtonReco/interface/ForwardProton.h:14,
                 from src/Validation/CTPPS/plugins/CTPPSProtonReconstructionPlotter.cc:20:
In member function 'edm::RefVectorIterator<C, T, F>::reference edm::RefVectorIterator<C, T, F>::operator*() const [with C = std::vector<CTPPSLocalTrackLite>; T = CTPPSLocalTrackLite; F = edm::refhelper::FindUsingAdvance<std::vector<CTPPSLocalTrackLite>, CTPPSLocalTrackLite>]',
    inlined from 'virtual void CTPPSProtonReconstructionPlotter::analyze(const edm::Event&, const edm::EventSetup&)' at src/Validation/CTPPS/plugins/CTPPSProtonReconstructionPlotter.cc:609:68:
  src/DataFormats/Common/interface/RefVectorIterator.h:49:39: error: 'this' pointer is null [-Werror=nonnull]
    49 |       return (*nestedRefVector_)[iter_];
      |                                       ^
src/DataFormats/Common/interface/RefVector.h: In member function 'virtual void CTPPSProtonReconstructionPlotter::analyze(const edm::Event&, const edm::EventSetup&)':
src/DataFormats/Common/interface/RefVector.h:70:22: note: in a call to non-static member function 'const edm::RefVector<C, T, F>::value_type edm::RefVector<C, T, F>::operator[](size_type) const [with C = edm::RefVector<std::vector<CTPPSLocalTrackLite> >; T = CTPPSLocalTrackLite; F = edm::refhelper::FindRefVectorUsingAdvance<edm::RefVector<std::vector<CTPPSLocalTrackLite> > >]'
   70 |     value_type const operator[](size_type idx) const {
      |                      ^~~~~~~~
In member function 'edm::RefVectorIterator<C, T, F>::reference edm::RefVectorIterator<C, T, F>::operator*() const [with C = std::vector<CTPPSLocalTrackLite>; T = CTPPSLocalTrackLite; F = edm::refhelper::FindUsingAdvance<std::vector<CTPPSLocalTrackLite>, CTPPSLocalTrackLite>]',
    inlined from 'virtual void CTPPSProtonReconstructionPlotter::analyze(const edm::Event&, const edm::EventSetup&)' at src/Validation/CTPPS/plugins/CTPPSProtonReconstructionPlotter.cc:628:68:
  src/DataFormats/Common/interface/RefVectorIterator.h:49:39: error: 'this' pointer is null [-Werror=nonnull]
    49 |       return (*nestedRefVector_)[iter_];
      |                                       ^
src/DataFormats/Common/interface/RefVector.h: In member function 'virtual void CTPPSProtonReconstructionPlotter::analyze(const edm::Event&, const edm::EventSetup&)':
src/DataFormats/Common/interface/RefVector.h:70:22: note: in a call to non-static member function 'const edm::RefVector<C, T, F>::value_type edm::RefVector<C, T, F>::operator[](size_type) const [with C = edm::RefVector<std::vector<CTPPSLocalTrackLite> >; T = CTPPSLocalTrackLite; F = edm::refhelper::FindRefVectorUsingAdvance<edm::RefVector<std::vector<CTPPSLocalTrackLite> > >]'
   70 |     value_type const operator[](size_type idx) const {
      |                      ^~~~~~~~
cc1plus: some warnings being treated as errors
  gmake: *** [tmp/el8_amd64_gcc12/src/Validation/CTPPS/plugins/ValidationCTPPSPlugins/CTPPSProtonReconstructionPlotter.cc.o] Error 1
 >> Building edm plugin tmp/el8_amd64_gcc12/src/Validation/CTPPS/plugins/ValidationCTPPSPlugins/libValidationCTPPSPlugins.so
/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc12/external/gcc/12.3.1-40d504be6370b5a30e3947a6e575ca28/bin/c++ -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-v2 -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=missing-braces -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 -fno-omit-frame-pointer -fsanitize=address -fsanitize=pointer-subtract -DEIGEN_DONT_PARALLELIZE -DEIGEN_MAX_ALIGN_BYTES=64 -Wno-error=unused-variable -DBOOST_DISABLE_ASSERTS -shared -Wl,-E    -Wl,-z,defs     tmp/el8_amd64_gcc12/src/Validation/CTPPS/plugins/ValidationCTPPSPlugins/CTPPSAcceptancePlotter.cc.o tmp/el8_amd64_gcc12/src/Validation/CTPPS/plugins/ValidationCTPPSPlugins/CTPPSBeamSmearingValidator.cc.o tmp/el8_amd64_gcc12/src/Validation/CTPPS/plugins/ValidationCTPPSPlugins/CTPPSDirectProtonSimulationValidator.cc.o tmp/el8_amd64_gcc12/src/Validation/CTPPS/plugins/ValidationCTPPSPlugins/CTPPSHepMCDistributionPlotter.cc.o tmp/el8_amd64_gcc12/src/Validation/CTPPS/plugins/ValidationCTPPSPlugins/CTPPSLHCInfoPlotter.cc.o tmp/el8_amd64_gcc12/src/Validation/CTPPS/plugins/ValidationCTPPSPlugins/CTPPSModifiedOpticalFunctionsESSource.cc.o tmp/el8_amd64_gcc12/src/Validation/CTPPS/plugins/ValidationCTPPSPlugins/CTPPSOpticsPlotter.cc.o tmp/el8_amd64_gcc12/src/Validation/CTPPS/plugins/ValidationCTPPSPlugins/CTPPSProtonReconstructionDiffPlotter.cc.o tmp/el8_amd64_gcc12/src/Validation/CTPPS/plugins/ValidationCTPPSPlugins/CTPPSProtonReconstructionEfficiencyEstimatorData.cc.o tmp/el8_amd64_gcc12/src/Validation/CTPPS/plugins/ValidationCTPPSPlugins/CTPPSProtonReconstructionEfficiencyEstimatorMC.cc.o tmp/el8_amd64_gcc12/src/Validation/CTPPS/plugins/ValidationCTPPSPlugins/CTPPSProtonReconstructionPlotter.cc.o tmp/el8_amd64_gcc12/src/Validation/CTPPS/plugins/ValidationCTPPSPlugins/CTPPSProtonReconstructionSimulationValidator.cc.o tmp/el8_amd64_gcc12/src/Validation/CTPPS/plugins/ValidationCTPPSPlugins/CTPPSProtonReconstructionValidator.cc.o tmp/el8_amd64_gcc12/src/Validation/CTPPS/plugins/ValidationCTPPSPlugins/CTPPSTrackDistributionPlotter.cc.o -o tmp/el8_amd64_gcc12/src/Validation/CTPPS/plugins/ValidationCTPPSPlugins/libValidationCTPPSPlugins.so -Wl,-E -Wl,--hash-style=gnu -L/data/cmsbld/jenkins/workspace/build-any-ib/w/tmp/BUILDROOT/4093eb2a98025665b3ee0ad0cefed440/opt/cmssw/el8_amd64_gcc12/cms/cmssw-patch/CMSSW_14_2_ASAN_X_2024-09-11-2300/biglib/el8_amd64_gcc12 -L/data/cmsbld/jenkins/workspace/build-any-ib/w/tmp/BUILDROOT/4093eb2a98025665b3ee0ad0cefed440/opt/cmssw/el8_amd64_gcc12/cms/cmssw-patch/CMSSW_14_2_ASAN_X_2024-09-11-2300/lib/el8_amd64_gcc12 -L/data/cmsbld/jenkins/workspace/build-any-ib/w/tmp/BUILDROOT/4093eb2a98025665b3ee0ad0cefed440/opt/cmssw/el8_amd64_gcc12/cms/cmssw-patch/CMSSW_14_2_ASAN_X_2024-09-11-2300/external/el8_amd64_gcc12/lib -L/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc12/cms/cmssw/CMSSW_14_2_ASAN_X_2024-09-09-2300/lib/el8_amd64_gcc12 -L/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc12/cms/cmssw/CMSSW_14_2_ASAN_X_2024-09-09-2300/biglib/el8_amd64_gcc12 -L/data/cmsbld/jenkins/workspace/build-any-ib/w/tmp/BUILDROOT/4093eb2a98025665b3ee0ad0cefed440/opt/cmssw/el8_amd64_gcc12/cms/cmssw-patch/CMSSW_14_2_ASAN_X_2024-09-11-2300/static/el8_amd64_gcc12 -L/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc12/cms/cmssw/CMSSW_14_2_ASAN_X_2024-09-09-2300/static/el8_amd64_gcc12 -lCondToolsRunInfo -lCondCorePopCon -lCondFormatsDataRecord -lDataFormatsProtonReco -lCondCoreDBOutputService -lCondFormatsRunInfo -lDataFormatsCTPPSReco -lGeometryRecords -lGeometryVeryForwardGeometryBuilder -lCondCoreCondDB -lCondFormatsAlignmentRecord -lCondFormatsPPSObjects -lDataFormatsGeometrySurface -lDetectorDescriptionCore -lDetectorDescriptionDDCMS -lDataFormatsCTPPSDetId -lDataFormatsGeometryVector -lFWCoreFramework -lCondFormatsCommon -lDataFormatsCTPPSDigi -lDataFormatsDetId -lDataFormatsMath -lFWCoreCommon -lFWCoreServiceRegistry -lSimDataFormatsGeneratorProducts -lDataFormatsCommon -lFWCoreParameterSet -lFWCoreMessageLogger -lDataFormatsProvenance -lFWCoreConcurrency -lFWCorePluginManager -lFWCoreReflection -lFWCoreUtilities -lFWCoreVersion -lCondFormatsSerialization -lUtilitiesOpenSSL -lUtilitiesXerces -llcg_CoralCommon -llcg_RelationalAccess -llcg_CoralKernel -llcg_CoralBase -lDDAlign -lDDCond -lDDCore -lDDParsers -lPhysics -lHist -lMatrix -lGenVector -lMathMore -lTree -lNet -lGeom -lThread -lboost_filesystem -lMathCore -lRIO -lSmatrix -lboost_program_options -lboost_serialization -lboost_system -lCore -lboost_thread -lboost_date_time -lCLHEP -lHepMCfio -lHepMC -lpcre -lbz2 -lcurl -lgsl -luuid -ltbb -lxerces-c -llzma -lz -lfmt -lHepMC3 -lHepMC3search -lcms-md5 -lopenblas -lssl -lcrypto -lcrypt -ldl -lrt -lstdc++fs -ltinyxml2
/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc12/external/gcc/12.3.1-40d504be6370b5a30e3947a6e575ca28/bin/../lib/gcc/x86_64-redhat-linux-gnu/12.3.1/../../../../x86_64-redhat-linux-gnu/bin/ld.bfd: cannot find tmp/el8_amd64_gcc12/src/Validation/CTPPS/plugins/ValidationCTPPSPlugins/CTPPSProtonReconstructionPlotter.cc.o: No such file or directory
collect2: error: ld returned 1 exit status
  gmake: *** [tmp/el8_amd64_gcc12/src/Validation/CTPPS/plugins/ValidationCTPPSPlugins/libValidationCTPPSPlugins.so] Error 1
 Leaving library rule at src/Validation/CTPPS/plugins
cmsbuild commented 1 week ago

cms-bot internal usage

cmsbuild commented 1 week ago

A new Issue was created by @iarspider.

@Dr15Jones, @antoniovilela, @makortel, @mandrenguyen, @rappoccio, @sextonkennedy, @smuzaffar can you please review it and eventually sign/assign? Thanks.

cms-bot commands are listed here

makortel commented 1 week ago

assign core

cmsbuild commented 1 week ago

New categories assigned: core

@Dr15Jones,@makortel,@smuzaffar you have been requested to review this Pull request/Issue and eventually sign? Thanks

makortel commented 1 week ago

History beyond https://github.com/cms-sw/cmssw/pull/45786:

makortel commented 1 week ago

Given that this warning seems to come up somewhat randomly, and @dan131riley's discovery https://github.com/cms-sw/cmssw/issues/44931#issuecomment-2181397162

The sauce thickens. If I put that assertion in all three places where we were getting the error, the error returns in all three spots.

I'm wondering if we should just build this package with -O2? It's in Validation, so minor performance loss would be acceptable.

dan131riley commented 1 week ago

I don't remember about this package in particular, but my recollection is that these bogus compiler errors have almost all been at the LTO stage, My intuition is that turning off LTO for these packages would be a smaller performance hit than downgrading optimization from O3 to O2. (I'd even guess that LTO is mostly useless at O2.)