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
Fix use of std::unique_ptr in HadronizerFilter #14293
Conversation
When the HadronizerFilter was changed to use unique_ptr from auto_ptr a key difference between the two was missed. the method 'reset' on an auto_ptr appears to check to see if the new value is the same as the old value and if it is it does nothing. This does not appear to be the case for unique_ptr. Changing the code to explicitly look for that case fixed the bug seen.
A new Pull Request was created by @Dr15Jones (Chris Jones) for CMSSW_8_1_X. It involves the following packages: GeneratorInterface/Core @covarell, @perrozzi, @thuer, @cmsbuild, @davidlange6, @govoni can you please review it and eventually sign? Thanks. cms-bot commands are list here #13028 |
This will fix (at least some) of the crashes in the IB. This was not tested to see if it fixes them all. |
@wmtan I think I have diagnosed the difference between |
please test |
The tests are being triggered in jenkins. |
-1 Tested at: 920d3e8 You can see the results of the tests here: I found follow errors while testing this PR Failed tests: RelVals AddOn
When I ran the RelVals I found an error in the following worklfows: runTheMatrix-results/134.911_RunSinglePh2015D+RunSinglePh2015D+HLTDR2_2016+RECODR2_2016reHLT+HARVESTDR2/step2_RunSinglePh2015D+RunSinglePh2015D+HLTDR2_2016+RECODR2_2016reHLT+HARVESTDR2.log1306.0 step2 runTheMatrix-results/1306.0_SingleMuPt1_UP15+SingleMuPt1_UP15+DIGIUP15+RECOUP15+HARVESTUP15/step2_SingleMuPt1_UP15+SingleMuPt1_UP15+DIGIUP15+RECOUP15+HARVESTUP15.log135.4 step1 runTheMatrix-results/135.4_ZEE_13+ZEEFS_13+HARVESTUP15FS+MINIAODMCUP15FS/step1_ZEE_13+ZEEFS_13+HARVESTUP15FS+MINIAODMCUP15FS.log1330.0 step2 runTheMatrix-results/1330.0_ZMM_13+ZMM_13+DIGIUP15+RECOUP15+HARVESTUP15/step2_ZMM_13+ZMM_13+DIGIUP15+RECOUP15+HARVESTUP15.log10021.0 step2 runTheMatrix-results/10021.0_TenMuE_0_200+TenMuE_0_200_pythia8_2017_GenSimFull+DigiFull_2017+RecoFull_2017+HARVESTFull_2017/step2_TenMuE_0_200+TenMuE_0_200_pythia8_2017_GenSimFull+DigiFull_2017+RecoFull_2017+HARVESTFull_2017.log25202.0 step2 runTheMatrix-results/25202.0_TTbar_13+TTbar_13+DIGIUP15_PU25+RECOUP15_PU25+HARVESTUP15_PU25/step2_TTbar_13+TTbar_13+DIGIUP15_PU25+RECOUP15_PU25+HARVESTUP15_PU25.log10024.0 step2 runTheMatrix-results/10024.0_TTbar_13+TTbar_13TeV_TuneCUETP8M1_2017_GenSimFull+DigiFull_2017+RecoFull_2017+HARVESTFull_2017/step2_TTbar_13+TTbar_13TeV_TuneCUETP8M1_2017_GenSimFull+DigiFull_2017+RecoFull_2017+HARVESTFull_2017.log
I found errors in the following addon tests: cmsDriver.py RelVal -s L1REPACK:Full --data --scenario=pp -n 10 --conditions auto:run2_hlt_PRef --relval 9000,50 --datatier "RAW" --customise=HLTrigger/Configuration/CustomConfigs.L1T --era Run2_2016 --magField 38T_PostLS1 --eventcontent RAW --fileout file:RelVal_Raw_PRef_DATA.root --filein /store/data/Run2015D/MuonEG/RAW/v1/000/256/677/00000/80950A90-745D-E511-92FD-02163E011C5D.root : FAILED - time: date Fri Apr 29 00:47:51 2016-date Fri Apr 29 00:41:29 2016 s - exit: 16896 |
@Dr15Jones I now fully understand the problem. You were completely right. All calls to unique_pt::reset() where the old ptr value and the new ptr value may be identical and non null must be protected against this or converted bac to auto_ptr. |
@wmtan let's not go back to |
When the HadronizerFilter was changed to use unique_ptr from auto_ptr a
key difference between the two was missed. the method 'reset' on an auto_ptr
appears to check to see if the new value is the same as the old value and if it
is it does nothing. This does not appear to be the case for unique_ptr.
Changing the code to explicitly look for that case fixed the bug seen.