Update reco/steer classes to use RecoResultsAutoSource
After the recent updates to flesnet it is now possible to use the AutoSource functionality also for RecoResults.
The new features include:
- Chaining a sequence of archive files
- Merging multiple archive streams for debugging
Merge request reports
Activity
InstallFlesnet.cmake has been modified following a suggestion by @p.-a.loizeau via Mattermost. Now, the build succeeds on many systems, but it is still failing on the CI systems using the old apr21 version of FairSoft.
@f.uhlig, @p.-a.loizeau: I would really appreciate it if one of the experts could advise or help here.
I'll post here what I found out so far.
To recreate the error, I have started the build on
vae23
using the same software versions as the CI (and without build parallelization). The error occurs in some special Root/dictionary, which is obviously generated on the fly and passed to the compiler on the command line:[ 98%] Generating G__CbmRecoSteer.cxx, ../../lib/libCbmRecoSteer_rdict.pcm, ../../lib/libCbmRecoSteer.rootmap In file included from input_line_12:115: In file included from /u/jdecuvel/src/cbmroot/reco/steer/CbmSourceDigiTimeslice.h:9: In file included from /u/jdecuvel/src/cbmroot/algo/global/RecoResultsAutoSource.h:8: In file included from /u/jdecuvel/src/cbmroot/external/flesnet/lib/fles_ipc/AutoSource.hpp:15: In file included from /u/jdecuvel/src/cbmroot/external/flesnet/lib/fles_ipc/TimesliceReceiver.hpp:6: /u/jdecuvel/src/cbmroot/external/flesnet/lib/shm_ipc/ItemWorker.hpp:44:23: error: declaration of variable 'poller' with deduced type 'zmq::poller_t' requires an initializer zmq::poller_t poller;
The error itself is that a class (
zmq::poller_t
) is not defined. This can be the case when the corresponding header filezmq.hpp
is included with wrong DEFINES active. Specifically,ZMQ_BUILD_DRAFT_API
needs to be set. This is probably done correctly for the usual build process. But how this is forwarded to this Root-specific part eludes me.Could it be that we use the "wrong" version of the ZMQ lib? I observed at some point in the past days that the
histserv_nofairmq
binary was pointing to a FairRoot.so
file for ZMQSo I would not be surprised that some parts of the cmake settings for the
reco
folders points to/uses this FairRoot version, which is most probably compiled/prepared/setup withoutDRAFT_API
I had a quick look at the Fairsoft releases and at one of my build folders (so not 100% confirmed by looking at CMake configs or dumping intermediate build variables), and it seems to be indeed the following:
- During our "external flesnet" compilation, a copy of ZMQ with the
DRAFT_API
on is prepared in<build>external/flesnet-prefix/src/flesnet-build/src/zeromq*
-
fles_ipc
is compiled and statically linked onto this version - when we compile and dynamically link the rest of
CBMROOT
, theZMQ
shipped with Fairsoft is instead used, so it is probably also the case for the headers when doing the dictionary
What is strange is that I could not find any change related to the DRAFT_API when comparing Fairsoft
apr21p2
andnov22p1
. The only difference is a change from ZMQ4.3.2
to4.3.4
=> So I would expect it to fail in all cases... maybe something changed, or could it be that theDRAFT_API
is header only?If it is header only, it may be enough to copy the following line from external/InstallFlesnet.cmake line 76 to other places (may need other lines on top to pick the right zmq or some modification to enable it with any version):
target_compile_definitions(external::zmq INTERFACE ZMQ_BUILD_DRAFT_API=1)
- During our "external flesnet" compilation, a copy of ZMQ with the
added 385 commits
-
5803f843...39e37aab - 381 commits from branch
computing:master
- 52d3ac32 - Update reco/steer classes to use RecoResultsAutoSource
- ae49d5b8 - Try to make FileLicenceCheck happy
- d8a1e301 - Try to make CodeFormatCheck happy
- a55f9c2e - Try tp fix build on some test systems
Toggle commit list-
5803f843...39e37aab - 381 commits from branch
added 24 commits
-
a55f9c2e...79b61e1d - 20 commits from branch
computing:master
- f7693f5a - Update reco/steer classes to use RecoResultsAutoSource
- 29b9a4c6 - Try to make FileLicenceCheck happy
- 3b0d5296 - Try to make CodeFormatCheck happy
- 74f073da - Try tp fix build on some test systems
Toggle commit list-
a55f9c2e...79b61e1d - 20 commits from branch