Skip to content
Snippets Groups Projects

Update reco/steer classes to use RecoResultsAutoSource

Open Jan de Cuveland requested to merge j.decuveland/cbmroot:use_autosource into master
1 unresolved thread

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

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • added 1 commit

    • cfe2ae9f - Try to make FileLicenceCheck happy

    Compare with previous version

  • added 1 commit

    • df740851 - Try to make CodeFormatCheck happy

    Compare with previous version

  • added 1 commit

    • 39e03c9e - Try to make CodeFormatCheck happy

    Compare with previous version

  • added 1 commit

    • 0abb03a2 - Try tp fix build on some test systems

    Compare with previous version

  • added 1 commit

    • 35b254de - Try tp fix build on some test systems

    Compare with previous version

  • added 1 commit

    • 3e56e13a - Try tp fix build on some test systems

    Compare with previous version

  • added 1 commit

    • 5803f843 - Try tp fix build on some test systems

    Compare with previous version

    • InstallFle‎snet.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 file zmq.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 ZMQ

      So 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 without DRAFT_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:

      1. 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*
      2. fles_ipc is compiled and statically linked onto this version
      3. when we compile and dynamically link the rest of CBMROOT, the ZMQ 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 and nov22p1. The only difference is a change from ZMQ 4.3.2 to 4.3.4
      => So I would expect it to fail in all cases... maybe something changed, or could it be that the DRAFT_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)
    • Please register or sign in to reply
  • Jan de Cuveland marked this merge request as ready

    marked this merge request as ready

  • 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

    Compare with previous version

  • Florian Uhlig added 24 commits

    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

    Compare with previous version

Please register or sign in to reply
Loading