Bug #21234

DAQInterface should decouple the routingmaster from fragment generators which send no fragments

Added by John Freeman over 2 years ago. Updated over 2 years ago.

Target version:
Start date:
Due date:
% Done:


Estimated time:


Currently on the develop branch of DAQInterface, even if a fragment generator by design doesn't send any fragments, its boardreader's rank is still registered in the routingmaster's sender_ranks list. This is unnecessary and provides an additional "moving part" where things can go wrong, as recently seen at the protoDUNE cluster when a crashing WIBReader brought down the system on start despite its not sending any fragments. Already addressed at the protoDUNE cluster by the release of DAQInterface v3_00_06j, this feature should be made generally available to all experiments. A good approach would be to ensure that if a boardreader FHiCL either has sends_no_fragments: true or generated_fragments_per_event: 0, DAQInterface leaves its rank out of the routingmaster logic.

Associated revisions

Revision 99279464 (diff)
Added by John Freeman over 2 years ago

JCF: Addressing Issue #21234: in bookkeeping, don't include boardreaders which don't send in the routingmaster's sender_ranks

This was influenced by our experience with WIB boardreaders on
ProtoDUNE: if DAQInterface determines that a boardreader doesn't send
fragments, either because it has "sends_no_fragments: true" or
"generated_fragments_per_event: 0", then it will leave that
boardreader's rank out of the routingmaster's sender_ranks list.

To test this (see, e.g., mu2edaq01:/home/jcfree/run_records/1782),
I've added component1000 and component1001, ToySimulators which don't
send fragments.


#1 Updated by John Freeman over 2 years ago

  • Category set to artdaq-daqinterface
  • Status changed from New to Resolved
  • % Done changed from 0 to 100

With commit 992794646b06ac1704040cae30e520de230fda22 on DAQInterface's develop branch, I've satisfied this requirement. If DAQInterface knows that a fragment generator doesn't send fragments (either because the boardreader FHiCL contains "sends_no_fragments: true" or "generated_fragments_per_event: 0") then it will leave the rank of the fragment generator's boardreader out of the routingmaster's sender_ranks list.

To test this, I've added component1000 and component1001 to DAQInterface's subconfigurations. The bookkeeping works correctly, as can be seen in, e.g., run 1785 on mu2edaq01 (see in particular /home/jcfree/run_records/1785/RoutingMaster1.fcl and /home/jcfree/run_records/1785/ranks.txt).

Also available in: Atom PDF