When testing the new MC samples using the files in the TestFileDB added in lhcb-datapkg/PRConfig!164 (merged), I came across a segmentation fault that seems related to the UT decoding, see the stack trace in the attachment stacktrack_newMC.txt
To produce the segmentation fault, I attach the options I used DC_newMC_Bd2Dstmumu.py and ran
Strangely, when I add options.print_freq = 1 I get a segmentation violation without a stack trace (on the second event). In any case it seems with that input file (root://x509up_u50863@eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/MC/Upgrade/XDIGI/00122698/0000/00122698_00000003_1.xdigi) it is quite easy to reproduce.
@sklaver : it looks like the error is because the option file DBASE/PRConfig/options/Moore/DataChallenges/DC_default_conds.py, which sets the old simcond tag (sim-20180530-vc-md100) from upgrade_DC19_01_Bs2PhiPhiMD
Another question: I check the masted branch of PRConfig, but cannot find DC_newMC_Bd2Dstmumu.py. Could you please let me know which branch you use?
@xuyuan Aha, well spotted! Is it possible to add a check somewhere that the data is not compatible with the conditions? The assert is effectively such a check but it would be nice if we have one that runs also in optimized builds and produces a helpful error message.
@rmatev I see another MR LHCb!2913 (closed) from @mstahl with adding the version in UTReadoutTool. Should we think about to merge @mstahl 's change and then I can call the comparison of the version in ReadoutTool (inheriting from the condition) and RawBank?
Hi Many thanks for the information. The thing confuses me that in my thought there should have three version: from UTgeometry, from condition simcond and that from RawBank and there should be a check with all these three version should be the same otherwise throw an error report in PrStoreUTHit. Of course these check with be added in the initialization part of PrStoreUTHit. So is that still a kind of 'hot' check?
The most important check with the raw bank version can only be done in the operator(). As @graven says, it is probably not so "hot" to check a few raw bank versions. In any case, let's try to implement such checks after Rec!2335 (merged) and we can see the performance.
hi @xuyuan, thanks for letting me know I was using the wrong tag, that indeed solved my problem :) I've now added all my tests to the branch sklaver_newMC_PRjobs in PRConfig, in case they're useful for you.