DD4HEP breaks x86_64_v3 builds
DD4HEP appears to have broken something in the x86_64_v3
builds.
Using the platform x86_64_v3-centos7-gcc11+dd4hep-dbg
if you run the test-instanciate-detdesc-data
QM test from RichDetectors in LHCb I get
> gdb --args python `which gaudirun.py` ~/LHCbCMake/Feature/LHCb/Rich/RichDetectors/tests/qmtest/test-instanciate-detdesc-data.qmt
<snip>
Align INFO Alignments:(D:2,C:10685,M:0,*:53425) Effective IOV:run(0):[400-9223372036854775807] [0.26134 seconds]
Thread 1 "python" received signal SIGSEGV, Segmentation fault.
0x00007fb2bfc40801 in Rich::Detector::details::RichX<LHCb::Detector::detail::DeRichObject>::RichX (this=this@entry=0x28bbe7b0)
at ../Rich/RichDetectors/include/RichDetectors/RichX.h:164
164 RichX() = default;
(gdb) where
#0 0x00007fb2bfc40801 in Rich::Detector::details::RichX<LHCb::Detector::detail::DeRichObject>::RichX (this=this@entry=0x28bbe7b0)
at ../Rich/RichDetectors/include/RichDetectors/RichX.h:164
#1 0x00007fb2bfc57fce in Rich::Detector::details::Rich1<LHCb::Detector::DeRich1Element<LHCb::Detector::detail::DeRich1Object>, LHCb::Detector::detail::DeRichObject>::Rich1 (
this=0x28bbe7b0) at ../Rich/RichDetectors/include/RichDetectors/Rich1.h:61
#2 dd4hep::OpaqueDataBlock::bind<Rich::Detector::details::Rich1<LHCb::Detector::DeRich1Element<LHCb::Detector::detail::DeRich1Object>, LHCb::Detector::detail::DeRichObject> > (
this=<optimized out>) at ../Rich/RichDetectors/include/RichDetectors/Rich1.h:61
#3 LHCb::Det::LbDD4hep::FPointerConditionUpdateCall::FPointerConditionUpdateCall<Rich::Detector::details::Rich1<LHCb::Detector::DeRich1Element<LHCb::Detector::detail::DeRich1Object>, LHCb::Detector::detail::DeRichObject>, LHCb::Detector::DeRich1Element<LHCb::Detector::detail::DeRich1Object> const&>(Rich::Detector::details::Rich1<LHCb::Detector::DeRich1Element<LHCb::Detector::detail::DeRich1Object>, LHCb::Detector::detail::DeRichObject> (*)(LHCb::Detector::DeRich1Element<LHCb::Detector::detail::DeRich1Object> const&))::{lambda(dd4hep::detail::ConditionObject*, dd4hep::cond::ConditionUpdateContext const&)#1}::operator()(dd4hep::detail::ConditionObject*, dd4hep::cond::ConditionUpdateContext const&) const (
__closure=0x21a45b08, condition=<optimized out>, ctx=...) at ../Det/LbDD4hep/include/LbDD4hep/IDD4hepSvc.h:133
#4 0x00007fb2bfc580d1 in std::__invoke_impl<void, LHCb::Det::LbDD4hep::FPointerConditionUpdateCall::FPointerConditionUpdateCall<Rich::Detector::details::Rich1<LHCb::Detector::DeRich1Element<LHCb::Detector::detail::DeRich1Object>, LHCb::Detector::detail::DeRichObject>, LHCb::Detector::DeRich1Element<LHCb::Detector::detail::DeRich1Object> const&>(Rich::Detector::details::Rich1<LHCb::Detector::DeRich1Element<LHCb::Detector::detail::DeRich1Object>, LHCb::Detector::detail::DeRichObject> (*)(LHCb::Detector::DeRich1Element<LHCb::Detector::detail::DeRich1Object> const&))::{lambda(dd4hep::detail::ConditionObject*, dd4hep::cond::ConditionUpdateContext const&)#1}&, dd4hep::detail::ConditionObject*, dd4hep::cond::ConditionUpdateContext&>(std::__invoke_other, LHCb::Det::LbDD4hep::FPointerConditionUpdateCall::FPointerConditionUpdateCall<Rich::Detector::details::Rich1<LHCb::Detector::DeRich1Element<LHCb::Detector::detail::DeRich1Object>, LHCb::Detector::detail::DeRichObject>, LHCb::Detector::DeRich1Element<LHCb::Detector::detail::DeRich1Object> const&>(Rich::Detector::details::Rich1<LHCb::Detector::DeRich1Element<LHCb::Detector::detail::DeRich1Object>, LHCb::Detector::detail::DeRichObject> (*)(LHCb::Detector::DeRich1Element<LHCb::Detector::detail::DeRich1Object> const&))::{lambda(dd4hep::detail::ConditionObject*, dd4hep::cond::ConditionUpdateContext const&)#1}&, dd4hep::detail::ConditionObject*&&, dd4hep::cond::ConditionUpdateContext&) (__f=...) at /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/11.1.0-e80bf/x86_64-centos7/include/c++/11.1.0/bits/invoke.h:61
#5 std::__invoke_r<void, LHCb::Det::LbDD4hep::FPointerConditionUpdateCall::FPointerConditionUpdateCall<Rich::Detector::details::Rich1<LHCb::Detector::DeRich1Element<LHCb::Detector::detail::DeRich1Object>, LHCb::Detector::detail::DeRichObject>, LHCb::Detector::DeRich1Element<LHCb::Detector::detail::DeRich1Object> const&>(Rich::Detector::details::Rich1<LHCb::Detector::DeRich1Element<LHCb::Detector::detail::DeRich1Object>, LHCb::Detector::detail::DeRichObject> (*)(LHCb::Detector::DeRich1Element<LHCb::Detector::detail::DeRich1Object> const&))::{lambda(dd4hep::detail::ConditionObject*, dd4hep::cond::ConditionUpdateContext const&)#1}&, dd4hep::detail::ConditionObject*, dd4hep::cond::ConditionUpdateContext&>(LHCb::Det::LbDD4hep::FPointerConditionUpdateCall::FPointerConditionUpdateCall<Rich::Detector::details::Rich1<LHCb::Detector::DeRich1Element<LHCb::Detector::detail::DeRich1Object>, LHCb::Detector::detail::DeRichObject>, LHCb::Detector::DeRich1Element<LHCb::Detector::detail::DeRich1Object> const&>(Rich::Detector::details::Rich1<LHCb::Detector::DeRich1Element<LHCb::Detector::detail::DeRich1Object>, LHCb::Detector::detail::DeRichObject> (*)(LHCb::Detector::DeRich1Element<LHCb::Detector::detail::DeRich1Object> const&))::{lambda(dd4hep::detail::ConditionObject*, dd4hep::cond::ConditionUpdateContext const&)#1}&, dd4hep::detail::ConditionObject*&&, dd4hep::cond::ConditionUpdateContext&) (__fn=...)
at /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/11.1.0-e80bf/x86_64-centos7/include/c++/11.1.0/bits/invoke.h:111
#6 std::_Function_handler<void (dd4hep::detail::ConditionObject*, dd4hep::cond::ConditionUpdateContext&), LHCb::Det::LbDD4hep::FPointerConditionUpdateCall::FPointerConditionUpdateCall<Rich::Detector::details::Rich1<LHCb::Detector::DeRich1Element<LHCb::Detector::detail::DeRich1Object>, LHCb::Detector::detail::DeRichObject>, LHCb::Detector::DeRich1Element<LHCb::Detector::detail::DeRich1Object> const&>(Rich::Detector::details::Rich1<LHCb::Detector::DeRich1Element<LHCb::Detector::detail::DeRich1Object>, LHCb::Detector::detail::DeRichObject> (*)(LHCb::Detector::DeRich1Element<LHCb::Detector::detail::DeRich1Object> const&))::{lambda(dd4hep::detail::ConditionObject*, dd4hep::cond::ConditionUpdateContext const&)#1}>::_M_invoke(std::_Any_data const&, dd4hep::detail::ConditionObject*&&, dd4hep::cond::ConditionUpdateContext&) (__functor=..., __args#0=<optimized out>, __args#1=...)
at /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/11.1.0-e80bf/x86_64-centos7/include/c++/11.1.0/bits/std_function.h:291
#7 0x00007fb2bfc2e712 in std::function<void (dd4hep::detail::ConditionObject*, dd4hep::cond::ConditionUpdateContext&)>::operator()(dd4hep::detail::ConditionObject*, dd4hep::cond::ConditionUpdateContext&) const (__args#1=..., __args#0=<optimized out>, this=0x21a45b08)
at /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/11.1.0-e80bf/x86_64-centos7/include/c++/11.1.0/bits/std_function.h:560
#8 LHCb::Det::LbDD4hep::FPointerConditionUpdateCall::operator() (this=0x21a45b00, key=..., context=...) at ../Det/LbDD4hep/include/LbDD4hep/IDD4hepSvc.h:141
#9 0x00007fb2e17b2031 in dd4hep::cond::ConditionsDependencyHandler::do_callback (this=0x7ffd5b324e00, work=0x236e3250)
at /home/lben/lcg/rpm-recipes/LCG_custom/build/frameworks/DD4hep-01.19/src/DD4hep/01.19/DDCond/src/ConditionsDependencyHandler.cpp:266
#10 0x00007fb2e17b135d in dd4hep::cond::ConditionsDependencyHandler::compute (this=0x7ffd5b324e00)
at /home/lben/lcg/rpm-recipes/LCG_custom/build/frameworks/DD4hep-01.19/src/DD4hep/01.19/DDCond/src/ConditionsDependencyHandler.cpp:98
#11 0x00007fb2c33f50f1 in dd4hep::cond::ConditionsMappedUserPool<std::map<unsigned long long, dd4hep::detail::ConditionObject*, std::less<unsigned long long>, std::allocator<std::pair<unsigned long long const, dd4hep::detail::ConditionObject*> > > >::compute (this=0x22d9cbe0, required=..., slice=..., user_param=0x0)
at /home/lben/lcg/rpm-recipes/LCG_custom/build/frameworks/DD4hep-01.19/src/DD4hep/01.19/DDCond/src/plugins/ConditionsUserPool.cpp:748
#12 0x00007fb2c33c6d7a in dd4hep::cond::Manager_Type1::compute (this=0x1d1852c0, req_iov=..., slice=..., ctx=0x0)
at /home/lben/lcg/rpm-recipes/LCG_custom/build/frameworks/DD4hep-01.19/src/DD4hep/01.19/DDCond/src/Type1/Manager_Type1.cpp:539
--Type <RET> for more, q to quit, c to continue without paging--
#13 0x00007fb2e17bc6e7 in dd4hep::cond::ConditionsManager::compute (this=0x1adaebf8, req_iov=..., slice=..., ctx=0x0)
at /home/lben/lcg/rpm-recipes/LCG_custom/build/frameworks/DD4hep-01.19/src/DD4hep/01.19/DDCond/src/ConditionsManager.cpp:305
#14 0x00007fb2e191b323 in LHCb::Detector::DetectorDataService::load_slice (this=this@entry=0x1adaebf0, iov=iov@entry=15375) at ../Core/src/DetectorDataService.cpp:152
#15 0x00007fb2e191b5ce in LHCb::Detector::DetectorDataService::get_slice (this=this@entry=0x1adaebf0, iov=15375) at ../Core/src/DetectorDataService.cpp:125
#16 0x00007fb2e1c164ca in LHCb::Det::LbDD4hep::DD4hepSvc::get_slice (this=0x1adae490, iov=<optimized out>) at ../Det/LbDD4hep/src/DD4hepSvc.cpp:235
#17 0x00007fb2e1c2c6ad in LHCb::Det::LbDD4hep::IOVProducer::operator() (this=this@entry=0x21a21900, odin=...) at ../Event/DAQEvent/include/Event/ODIN.h:56
@clemenci @bcouturi Would you mind taking a look here as I am at a bit of a loss as to whats wrong. I only see this when combining x86_64_v3
with dd4hep....
Edited by Christopher Rob Jones