Code Monkey home page Code Monkey logo

trigger's Introduction

trigger

Package for DUNE FD DAQ data selection modules.

Relationship to triggermodules

At time of writing (2021-03-31), triggermodules builds with dunedaq v2.2.0, while trigger (this package) is intended to be used as part of the upcoming dunedaq v2.6.0 release

trigger's People

Contributors

alexbooth92 avatar benland100 avatar bieryatfnal avatar brettviren avatar charliebatchelor avatar dingp avatar eflumerf avatar floriangroetschla avatar glehmannmiotto avatar hep-ml avatar jcfreeman2 avatar mrigansusx avatar mroda88 avatar philiprodrigues avatar plasorak avatar shyamb97 avatar thiagojcb avatar wesketchum avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

trigger's Issues

Basic Integration Tests for trigger: Automation

As part of the code development, it is compulsory to run basic integration tests. These are located:
dfmodules/integtest.
It's currently agreed that at least these should be run:

  • minimal_system_quick_test.py
  • fake_data_producer_test.py
    These should be run for each new fix/feature.
    The idea is to automate running these when making PR, adding the result/log to a spreadsheet or table. This can be linked via readme, showing tests taken in the last X months.

Optionally, it would be great to also run 3ru_3df_multirun_test.py, however, this requires significant computing resources, so may not be possible (to automate).

Troubles with SWTPG with latest (22-May) nightly build

With the N22-05-22 Spack nightly build on C7, when I try the following commands:

daqconf_multiru_gen -d $PWD/frames.bin -o . -s 10 -n 2 --enable-software-tpg mdapp_swtpg
curl -o frames.bin -O https://cernbox.cern.ch/index.php/s/7qNnuxD8igDOVJT/download
nanorc mdapp_swtpg/ boot ${USER}_test init conf start 101 wait 20 stop wait 3 scrap terminate

I see the following errors in the logs, and there is no HDF5 data file written:

log_trigger_3334.txt:2022-May-22 06:19:25,052 ERROR [void dunedaq::cmdlib::CommandFacility::handle_command(const cmdobj_t&, dunedaq::cmdlib::cmd::CommandReply) at /tmp/root/spack-stage/spack-stage-cmdlib-N22-05-22-cy5lopnco3qq4merfrztkttmgwrw5gct/spack-src/src/CommandFacility.cpp:64] Execution of command failed: Caught ers::Issue
log_trigger_3334.txt:	was caused by: 2022-May-22 06:19:25,051 ERROR [virtual void dunedaq::trigger::TPChannelFilter::init(const json&) at /tmp/root/spack-stage/spack-stage-trigger-N22-05-22-pfgak2qyoaggd74tp5u2nqowmlspjuxh/spack-src/plugins/TPChannelFilter.cpp:40] The input/output queue was not successfully created. DAQModule: channelfilter_ru0_link0
log_trigger_3334.txt:	was caused by: 2022-May-22 06:19:25,051 ERROR [dunedaq::iomanager::connection::ConnectionId dunedaq::iomanager::IOManager::ref_to_id(const dunedaq::iomanager::connection::ConnectionRef&) at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-22/spack-0.17.1/opt/spack/gcc-8.2.0/iomanager-N22-05-22-ofn4abrifm3suqgr6io3euh2pvncwl44/include/iomanager/IOManager.hpp:216] Connection with uid tpsets_ru0_link0 not found!

PDS Triggering

Overview & Goal

As discussed in the Data Selection and Physics Performance meeting, it would be good to start prototyping something like a PDS and TPC triggering chain. It's expected that something like a TP will be delivered to the trigger system via the DAPHNE boards. Currently, this isn't implemented, and the best I have is to use some existing DAPHNE waveforms, run a hit finder (very similar to what we initially had for SW TPG) and generate a TP list that can be supplied to the TP Replay app.

I've made a toy model of this project, here. The main.py script will generate a list of PDS style TPs, as shown in the README on that page. If we can artificially align some of these PDS TPs with some TPC TPs from the coldbox, then we can emulate some (admittedly very rough) PDS and TPC coincidence triggering sequence.

Task List

  • Implement a PDS TAMaker and TCMaker.
  • Generate a list of PDS TPs (or something that looks like a list of PDS TPs) and push them through the replay app, using that new algorithm.
  • Finally, test with the HorizontalMuon or PlaneCoincidence trigger algorithms concurrently, with the new method developed in #202.

Implement composite lexicographic less operator for TPs, TAs, TCs

At the moment less is based on simple timestamp comparison.
The effect is that TPs/TAs/TCs are not captured correctly by readout requests.
Appropriate less operators need to be implemented for TPWrapper, TAWrapper and TCWrapper classes in the respective T<X>Buffers declarations.

Extend trigger emulation capability

The MLT now requests all elements listed for any trigger decision.
In order to test a mixture of traffic flows in the DAQ, it would be useful to have the option of having a distribution in the requested data sources and readout windows.
We may introduce a special type of TC generator from HSI signals that, instead of a fixed time window and geographic area, would take a distribution (e.g. 1%= all sources + max window, 99%= n APAs + reduced window). This would emulate the behaviour of a trigger selecting cosmics/beam events and low energy RoIs.

Provide trigger bit information in TRHeader for ICEBERG

At the ICEBERG teststand, it will be important to provide an indication of which type of trigger was responsible for each TriggerRecord. The types of triggers that are expected are periodic ones that are internally-generated within the HSI/TLU and ones that are created from external signals that are provided to the TLU, such as a coincidence of scintillator signals that indicate a cosmic ray.

To help describe the desired observable behavior, here are some notes:

  • There are six external inputs to the HSI/TLU at ICEBERG. At the moment, I don't believe that all six are likely to be used, but it would be good not to exclude that possibility. Together with the internally-generated pulser trigger, I believe that we will want to have the ability to represent 7 different trigger sources in the TriggerRecordHeaderData::trigger_type field for data taken at ICEBERG.

Is it expected that TC fragments will have different size in long-window-readout runs?

I see that the TC Fragment has size 136 when I run a basic system, but I see a TC Fragment size of 80 when I run a long-window-readout run. Is that expected? I suspect that a size of 80 means header-only, so I wonder if the TC Fragment payload is missing in the long-window-readout case...

Some possibly useful commands:

daqconf_multiru_gen -d ./frames.bin -o . -s 10 -n 2 -b 1000 -a 1000 --host-ru localhost mdapp_basic

daqconf_multiru_gen -d ./frames.bin -o . -s 10 -n 2 -b 20000 -a 20000 -t 0.2 --latency-buffer-size 200000 --host-ru localhost --host-df localhost --max-trigger-record-window 13500 mdapp_lwr

curl -o frames.bin -O https://cernbox.cern.ch/index.php/s/7qNnuxD8igDOVJT/download

nanorc mdapp_basic boot ${USER}_test init conf start 101 wait 20 stop wait 2 scrap terminate; keepAlive

nanorc mdapp_lwr boot ${USER}_test init conf start 201 wait 20 stop wait 2 scrap terminate; keepAlive

h5dump-shared -H swtest_run000101_0000_dataflow0_20220524T172057.hdf5 | grep -A4 '"Trigger"' | tail

h5dump-shared -H swtest_run000201_0000_dataflow0_20220524T172318.hdf5 | grep -A4 '"Trigger"' | tail

Concurrent Trigger Algorithms

Overview & Goal

So far, we've managed to demonstrate self-triggering on physics events, with Trigger Primitives via an ongoing 'Activity' finder, called the TriggerActivityMakers. A small repository of them has also been made, including (of course) the HoriztonalMuon, which searches for specified adjacency, multiplicity or add_threshold values within single 2D 'views'. There is also the PlaneCoincidence algorithm, which has a window/view for each plane view of the detector, where we can combine the above trigger types in a 'mix and match' way to look for coincident activity across all three planes. We also have the DBSCAN, ADCSimpleWindow and Supernova activity finders, and so on.

It is currently only possible to run one of these activity finders at a time, during a DAQ run.

In the future, and hopefully for the upcoming PDHD2, we really want to be able to run any subset of our algorithms in parallel. That is, we'd like to search for tracks, Michel electrons, Supernovas concurrently. That's the goal of this issue.

One Possible Approach

If we inspect the current trigger system diagram for an example 2-link-system, we can see how the above might be achieved. With the insertion of a 'k-way' Tee-type module in-between the TPZipper and TAMaker(s) to copy TPSets to multiple TAMakers, then one might simply replicate the trigger flow from the TAMaker to the MLT. So, for each additional algorithm we want to run concurrently, we would have an additional:

  • TAMaker
  • TASetTee
  • TAZipper
  • TCMaker
  • TCSetTee

whilst maintaining only one set of the following, per APA (or CRP):

  • TABuffer
  • TCBuffer
  • MLT

Task List

  • Sketch this first approach out, using the TP replay app for testing. This will likely be the bulk of the work required here, since the replay app calls the actual get_trigger_app() in daqconf, which handles all the configuration generation and application connections. If I understand the system correctly so far, the above approach should work, and perhaps the best way to start this is by taking advantage of the existing Tee module to test for the 2-algorithm case.
  • Confirm with the TP replay app that the desired behaviour is observed. Multiple TAMakers running, Multiple TCMakers running, MLT accepting and sending TDs of both trigger types, and those types are stored in the output swtest*.hdf5 files.
  • Finally, extend to a full DAQ system, testing on some frames.bin type file that contains enough data to trigger on!

Fix TP Replay App - Endpoint Issue

Overview - replay_tp_app

The replay_tp_app of trigger is a tool we can use to run the trigger subsystem in isolation, where the input is provided by a simple text file containing TP information. It's particularly useful for developing new trigger algorithms on events that have been simulated in LArSoft alongside their respective TPs that we would expect to see in the VDCB or ProtoDUNE.

The issue that we have is that the app fails to complete configuration, and complains that a specific end point has no consumers. To reproduce, you'll need a sample of input TPs, which can be found here:
/afs/cern.ch/user/c/cbatchel/public/1000_electron_events.txt

The format of this file is the following, where each row corresponds to a single TP:
<time_start> <time_over_threshold> <time_peak> <channel> <adc_integral> <adc_peak> <det_id> <type>

Replicating the Issue

In your run area with the latest trigger code, run the following command to attempt configuration generation, making sure to point the --input-file to where you have stored the input file above.

python -m trigger.replay_tp_to_chain --trigger-activity-plugin TriggerActivityMakerLowEnergyEventPlugin --trigger-candidate-plugin TriggerCandidateMakerLowEnergyEventPlugin --trigger-activity-config 'dict(adjacency_threshold=3, window_length=10000, adc_threshold=50000)' --input-file 1000_electron_events.txt replay_json

The error that you'll see should be one of the following:
TypeError: ModuleGraph.add_endpoint() got an unexpected keyword argument 'topic'
Removing 'topic' argument to that function results in:
ValueError: Connection with name tpsets_rulocalhost_0_link0 has no consumers!

Which is a result of there being no "in apps" found in the con_utils of daqconf. Relevant line here

Could the TC Fragment be stored in the latency buffer based on the trigger time?

(This is a topic for post-v3.0.0, and it relates to long-window-readout [when the readout of the data for a trigger is split into a sequence of TriggerRecords].
The title of this Issue makes an assumption about how TC fragments are handled within the Trigger App. If that assumption turns out to be wrong, I will correct the title. The text below describes what is desired without going into details of how things might work under the covers.)

Currently, when we run with long readout windows and split the data into a sequence of TriggerRecords, the TC Fragment has meaningful contents for only one of the N TriggerRecord in the sequence of TRs. The TC fragment is empty for the other N-1 TRs in the sequence. (This has been discussed elsewhere.) And at the moment, the non-empty TC Fragment appears in the first TR of the sequence.

Could the non-empty TC Fragment instead appear in the TriggerRecord that spans the trigger time? That might better match what users expect...

General refactoring of names for modules and configuration parameters

Some names in the trigger/triggeralgs repositories are now old / inaccurate. A good example of this is the Horizontal Muon Activity Maker, which is configurable to not only trigger on muons but can also look for adjacencies/multiplicities etc. Additional refactoring should be considered for the schema options for particular plugin/module to make it obvious what module/plugin the option in question belongs to. Example of this is trigger_window_before_ticks which only changes the timing TCs - which is not obvious from the name. Another one would be trigger_rate_hz.

Add support for multiple replayed TP streams

TriggerPrimitiveMaker can currently replay a single stream of trigger primitives from file. Lots of tests we will want to do will require multiple synchronized streams. Work towards this is in #98

Trigger: Performance tests

Ideas for trigger performance measuring and monitoring:

  • Write an application to track CPU usage and RAM usage per trigger module and makes plot of that. This is to attempt a performance test without touching the trigger DUNE-DAQ while doing so.
  • Run the above application on a single APA with one link and one Maker and CRT. Then see how it scales (multiple links, multiple makers, multiple APAs)
  • Is the latency affected by the trigger rate?
  • Latency plots on Grafana: How long it takes for a TC to propagate through the system, calculated this way: TC received vs TC sent
  • Latency plots on Grafana: Comparing data times to wall-clock time
  • Standardise all latency measurements for all trigger modules from start to finish (buffer, zipper...), Grafana compatible

Couple of code compliance issues

Running dbt-build.sh with the --lint argument as well as looking at some of the code, there are some improvements which could be made:

  • A lot of the files in trigger don't have our standard copyright message
  • As a collection of public data, Set.hpp is more properly a struct than a class
  • In general, no-op virtual destructor definitions ("virtual ~MyClass() {}") would be better declared default ("virtual ~MyClass() = default") if for no other reason than to not fool the linter into thinking the destructor is nontrivial (for more though, see here)

Other minor issues (and a couple of false positives, unfortunately) can also be unearthed via --lint

Allow for (partially) overlapping trigger decisions

The trigger at present considers it an anomaly that trigger decisions may be overlapping, because in some cases it is preferred that TCs are stitched together to form a single decision. This is nevertheless not applicable universally, so the support for overlapping TDs should be reintroduced.

Maintaining the Trigger Replay App

The Trigger Replay App is a tool for running the trigger system in isolation from the rest of the DAQ apps.
replay_tp_to_chain

It accepts input file(s) that are simple '.txt' TPs and runs your configured algorithm over them. These could be real streamed TPs (from the cold-box for example) or simulated ones, maybe in LArSoft.
How to use:

  • python -m trigger.replay_tp_to_chain runs the configuration generation code here
  • -s 10 slows down the input by a factor 10 (by decreasing the clock rate by that factor) which is useful when outputting
    large logs/debugging information for example
  • --trigger-activity-plugin specifies the name of the TAMaker you
    would like to use
  • --trigger-candidate-plugin identifies the TCMaker
  • --trigger-activity-config provides a dictionary, which maps the configuration for your specified TAMaker, triggering thresholds etc. This can be done for the TCMaker too
  • -l specifies the number of times you would like to play the data file through the system
  • --input-file points to your input TPs file, which have the standard format:

A good sample of real TPs taken from the March 2023 Vertical Drift ColdBox (VDCB) runs can be found on the DUNE GPVMS [here](/nashome/c/cbatchel/Public/tp dataset run020472 60s.txt). These are 60 seconds of streamed TPs directly from readout, on CRP 004, across all induction and collection channels.

Example code to run:

python -m trigger.replay_tp_to_chain -s 10 --trigger-activity-plugin TriggerActivityMakerHorizontalMuonPlugin --trigger-activity-config
‘dict(adjacency_threshold=100, window_length=10000, adj_tolerance=20)‘ --trigger-candidate-plugin
TriggerCandidateMakerHorizontalMuonPlugin --trigger-activity-config ‘dict(adjacency_threshold=100, window_length=10000, adj_tolerance=20)‘ -l 1 --input-file $TPDATA/run_020472_tps_2seconds.txt json

There are several tasks that are required for the replay app:

  • Make sure the hardware map is overwritten (or give a warning)
  • Multiple APAs? E.g. 5 APAs, 10 links each (so 10 Zippers, ActivityMaker)
  • Add the .dot graph generation to the replay app

Use latency buffer/fragment response code from readout

We currently have our own buffering/readout response code in trigger. If we switch to using the implementation from readoutlibs, we'll get consistent behaviour for free, and reduce the code maintenance required from trigger. Some preliminary work towards this end is in the philiprodrigues/readoutlibs-buffer branch.

Enhance TPChannelFilter capabilities: Remove known noisy channels?

The ongoing vertical drift cold box (VDCB) tests at EHN1 are exhibiting some problems we now think may be related to some known noisy channels producing a very high rate of TPs. It would probably be a good idea to add to the TPChannelFilter configuration some dictionary of known noisy channels so that we can remove these ahead of time.

The type of issue that we see currently is that TPBuffers are unable to provide the required data from a data request, and we suspect this might be because the relevant buffer is being filled and emptied too rapidly to hold onto the required TPs long enough. Simply increasing the buffer size and timeout isn't a realistic option since the noisy channels produce TPs at rates many orders of magnitude higher than the average rate.

Test mutiple TA makers coming simultaneously from APA3 and APA4, concurrently

Until now we have been working with a single Trigger Activity Maker (TAM) for real hardware runs.
The idea is to test multiple TAMs, using multiple APAs. The system already creates the configuration correctly for multiple APA (and therefore multiple TAMs).
We should, however, make sure it also runs correctly. These two scenarios should be considered:

  • the same TAM type on APA-x and APA-y (say HorizontalMuonActivityMaker on APA3 and HorizontalMuonActivityMaker on APA4)
  • different TAM type on APA-x and APA-y (say HorizontalMuonActivityMaker on APA3 and Prescale on APA4)

An example .dot graph for the configuration in question:
2TAMs.pdf

Do we expect TC Fragments when running without TP generation?

My understanding was yes, but I don't see them in tests with the N22-05-19 nightly build.

For example,

daqconf_multiru_gen --host-ru localhost -d $PWD/frames.bin -o . -s 10 mdapp_basic
nanorc mdapp_basic boot ${USER}_test init conf start 123 wait 20 stop wait 2 scrap terminate
h5dump-shared -H swtest_run000123_0000_dataflow0_20220519T133913.hdf5

shows no fragments from the Trigger system.

Policy on DROP vs BLOCK behavior when `push()` to output queue times out.

The DS modules enact a variety of behavior in response to a timeout on a push() to an output queue. I try to categorize them based on an incomplete survey of the current code:

  • spin-warn-block :: the module will block by spinning on ers::warning(), eg at 10 or 100 Hz, depending on the timeout. The spin will continue until blockage is cleared. During the spin, fresh input is not serviced.

  • ignore-undefined :: the module will not catch the timeout exception. I don't know if this counts as DROP or BLOCK as it depends how the ignored exception is handled in the caller.

  • warn-drop :: the module warns on each timeout and drops the output until pending output is exhausted. It then goes back to processing fresh input.

I will argue that the policy should be DROP and not BLOCK. We can likely argue that but I think it should not be contentious that we have some policy.

First, I believe that DAQ must have a line of DROP policy at the interface between UDaq and DS. DS can not push blockage up in to the UDaq's FPGA, therefore UDaq must DROP if its output queue to DS is full.

Second, in the case that blockage is temporary enough to clear before hitting that DROP line then having BLOCK is equivalent to having deeper queues. Any argument about riding out rate spikes should be an argument about proper queue depth and not BLOCK vs DROP.

That leaves the case of a persistent blockage where a BLOCK policy causes the blockage to travel upstream until hitting the required line of DROP at the UDaq interface. Once reached, the DS must drop fresh data.

Now, assuming the original blockage clears, then the very first thing to happen at the initial blockage location will be that upstream will flood it with queued data. This data will likely be very similar to what caused the blockage in the first place. Thus, a new blockage will likely form.

OTOH, a DROP policy will keep fresh data flowing through the graph up to the point of original blockage (where it is dropped). Then, once that blockage is freed, fresh data is seen and it is likely of a different characteristic than that which caused the initial blockage. It will also not occur with as much flooding. So, with a DROP policy, the DAQ will return to normal operation more quickly, keep better and more data.

Add Unit Tests

PR #4 add several plugins and classes without also adding associated unit tests. These should be added ASAP.

Change to `Set<T>` to add `origin` and remove `from_detids`

These are two independent issues but small enough and in the same context to treat together.

The from_detids is ill defined and unused and depending on interpretation is redundant with info in objects or which may be provided in configuration.

OTOH, the identity of a source aka origin of a Set<T> is needed in order to meaningfully aggregate sets from multiple sources.

In some cases the origin ID may be opaque. Eg, in zipper, this identity is needed to define logical "streams" from the single input queue. Other cases, such as TA/TC creators, a semantic meaningful origin may be required.

After some discussion, the identification of an origin by a GeoID seems most reasonable.

This issue will update Set.hpp and clear out any uses of from_detids.

A larger issue is to set the new Set<T>::origin attribute. Each producer of Set<T> is in principle free to set origin in any way. But, most likely the GeoID info should be set via configuration and that info had best follow a common path for all uses. This means a shared GeoID schema and shared C++ helper to convert from config object to GeoID struct (which is hand written and not codegen'ed). This commit will try to show the (a) way but some changes are out of scope.

A few more ERS messages

I think it would be useful to add the following ERS issues in the trigger package:
ERS_DECLARE_ISSUE(trigger, TriggerActive, "Trigger is active", ERS_EMPTY)
ERS_DECLARE_ISSUE(trigger, TriggerPaused, "Trigger is paused", ERS_EMPTY)
ERS_DECLARE_ISSUE(trigger, TriggerInhibited, "Trigger is inhibited", ERS_EMPTY)

and add the corresponding ers::info / ers::warning messages in the code.
I have no permission to push to this package.

Send TC Fragment earlier than the time of the next DataRequest?

I've noticed that TC Fragments are being returned from the Trigger App noticeably later than other fragments. For example, in a test run with 2 emulated FELIX links and the usual Trigger App, if I set the interval between events to 5 seconds, the TC Fragment arrives at the TRB 5 seconds after the other two fragments.

I talked with Phil about this, and we believe that it is because the latency-buffer-lookup code is waiting for entries to appear in the latency buffer that are equal to, or later than, the end time of the request window. And, that doesn't happen naturally until another trigger is generated and a new TC Fragment is added to the latency buffer.

We agreed that it would be good to have the TC Fragment get sent sooner.

Here is the config that I used for debugging this:

daqconf_multiru_gen --host-ru localhost -d $PWD/frames.bin -o . -s 10 -t 0.2 -b 3000 -a 2000 mdapp_basic_lowrate_largerwindow

Here are some TRACE messages that illustrate the problem (these are in reverse time order). We can see DataRequests arriving at the DataLinkHandler and TCBuffer DAQModules, the DLHs sending fragments soon thereafter, and the TCBuffer module not sending a fragment until the next DataRequest is received.

  82 06-09 15:15:53.712463 3254984 3255060  33                    TCBuffer D11 data_request: Data request for Trigger TS=79554162119079783 Oldest stored TS=79554162093649203 Newest stored TS=79554162119076783 Start of window TS=79554162119076783 End of window TS=79554162119081783
  83 06-09 15:15:53.712429 3254984 3255063  15                    TCBuffer D02 do_work: Got data request with component type: DataSelection, region: 20000, element: 0, window_begin 79554162119076783, window_end79554162119081783, trig/seq_number 2.0, runno 401, trig timestamp 79554162119079783, dest fragments
  91 06-09 15:15:53.706943 3254984 3255059  33                    TCBuffer D11 issue_request: Sending fragment with trigger/sequence_number 1.0, run number 401, and GeoID type: DataSelection, region: 20000, element: 0
  92 06-09 15:15:53.706896 3254984 3255059  33                    TCBuffer D11 data_request: Data request for Trigger TS=79554162093652203 Oldest stored TS=79554162093649203 Newest stored TS=79554162119076783 Start of window TS=79554162093649203 End of window TS=79554162093654203
  93 06-09 15:15:53.703281 3254983 3255076   2             DataLinkHandler D11 issue_request: Sending fragment with trigger/sequence_number 2.0, run number 401, and GeoID type: TPC, region: 0, element: 0
  94 06-09 15:15:53.703233 3254983 3255070  33             DataLinkHandler D11 issue_request: Sending fragment with trigger/sequence_number 2.0, run number 401, and GeoID type: TPC, region: 0, element: 1
  95 06-09 15:15:53.703192 3254983 3255076   2             DataLinkHandler D11 data_request: Data request for Trigger TS=79554162119079783 Oldest stored TS=79554162068719943 Newest stored TS=79554162119097743 Start of window TS=79554162119076783 End of window TS=79554162119081783
  96 06-09 15:15:53.703141 3254983 3255070  33             DataLinkHandler D11 data_request: Data request for Trigger TS=79554162119079783 Oldest stored TS=79554162068719943 Newest stored TS=79554162119097443 Start of window TS=79554162119076783 End of window TS=79554162119081783
  97 06-09 15:15:53.703049 3254983 3255080  49             DataLinkHandler D12 dispatch_requests: Received DataRequest for trig/seq_number 2.0, runno 401, trig timestamp 79554162119079783, GeoID: type: TPC, region: 0, element: 0, window begin/end 79554162119076783/79554162119081783, dest fragments_to_dataflo
  98 06-09 15:15:53.703012 3254983 3255074  57             DataLinkHandler D12 dispatch_requests: Received DataRequest for trig/seq_number 2.0, runno 401, trig timestamp 79554162119079783, GeoID: type: TPC, region: 0, element: 1, window begin/end 79554162119076783/79554162119081783, dest fragments_to_dataflo
  99 06-09 15:15:53.702338 3254984 3255063  15                    TCBuffer D02 do_work: Got TC with start time 79554162119076783
 100 06-09 15:15:48.709813 3254984 3255058  33                    TCBuffer D11 data_request: Data request for Trigger TS=79554162093652203 Oldest stored TS=79554162093649203 Newest stored TS=79554162093649203 Start of window TS=79554162093649203 End of window TS=79554162093654203
 101 06-09 15:15:48.709755 3254984 3255063  12                    TCBuffer D02 do_work: Got data request with component type: DataSelection, region: 20000, element: 0, window_begin 79554162093649203, window_end79554162093654203, trig/seq_number 1.0, runno 401, trig timestamp 79554162093652203, dest fragments
 103 06-09 15:15:48.709560 3254984 3255063  12                    TCBuffer D02 do_work: Got TC with start time 79554162093649203
 105 06-09 15:15:48.706085 3254983 3255075  57             DataLinkHandler D11 issue_request: Sending fragment with trigger/sequence_number 1.0, run number 401, and GeoID type: TPC, region: 0, element: 0
 109 06-09 15:15:48.705969 3254983 3255075  57             DataLinkHandler D11 data_request: Data request for Trigger TS=79554162093652203 Oldest stored TS=79554162068719943 Newest stored TS=79554162094210643 Start of window TS=79554162093649203 End of window TS=79554162093654203
 111 06-09 15:15:48.705935 3254983 3255080  49             DataLinkHandler D12 dispatch_requests: Received DataRequest for trig/seq_number 1.0, runno 401, trig timestamp 79554162093652203, GeoID: type: TPC, region: 0, element: 0, window begin/end 79554162093649203/79554162093654203, dest fragments_to_dataflo
 113 06-09 15:15:48.705874 3254983 3255069  33             DataLinkHandler D11 issue_request: Sending fragment with trigger/sequence_number 1.0, run number 401, and GeoID type: TPC, region: 0, element: 1
 114 06-09 15:15:48.705729 3254983 3255069  33             DataLinkHandler D11 data_request: Data request for Trigger TS=79554162093652203 Oldest stored TS=79554162068719943 Newest stored TS=79554162094210043 Start of window TS=79554162093649203 End of window TS=79554162093654203
 115 06-09 15:15:48.705602 3254983 3255074  57             DataLinkHandler D12 dispatch_requests: Received DataRequest for trig/seq_number 1.0, runno 401, trig timestamp 79554162093652203, GeoID: type: TPC, region: 0, element: 1, window begin/end 79554162093649203/79554162093654203, dest fragments_to_dataflo

No Data & Trigger Matching Empty Fragments

During a software TP generation run of integration week, we saw errors of the following type which follow one another in quick succession. Looking further down the same log file, we also see that a subset of 6 / 20 input queues delivered no TPSets during the run. This as we might now expect reproduced the cardinality / completeness problem, where we see the queue errors at the end of that run. Investigation is needed.

2022-Nov-17 21:28:21,777 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TPBuffer::TPWrapper; LatencyBufferType = dunedaq::readoutlibs::SkipListLatencyBufferModel<dunedaq::trigger::TPBuffer::TPWrapper>; RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TPBuffer::TPWrapper, dunedaq::readoutlibs::SkipListLatencyBufferModel<dunedaq::trigger::TPBuffer::TPWrapper> >::RequestResult] at /nfs/sw/dunedaq/dunedaq-v3.2.1-integration/sourcecode/readoutlibs/include/readoutlibs/models/detail/DefaultRequestHandlerModel.hxx:577] SourceID[subsystem: Trigger id: 11] Request on empty buffer: Data not found

2022-Nov-17 21:28:21,777 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TPBuffer::TPWrapper; LatencyBufferType = dunedaq::readoutlibs::SkipListLatencyBufferModel<dunedaq::trigger::TPBuffer::TPWrapper>; RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TPBuffer::TPWrapper, dunedaq::readoutlibs::SkipListLatencyBufferModel<dunedaq::trigger::TPBuffer::TPWrapper> >::RequestResult] at /nfs/sw/dunedaq/dunedaq-v3.2.1-integration/sourcecode/readoutlibs/include/readoutlibs/models/detail/DefaultRequestHandlerModel.hxx:588] SourceID[subsystem: Trigger id: 1] Trigger Matching result with empty fragment:

The relevant log file is log_2022-11-17_212324_trigger_5934.txt on np04 server 018.

Would it be possible to make the TriggerDecision ComponentRequest widths configurable?

Hi,
I'm doing some tests of long-window readout code, and it would be convenient if I could change the width of the ComponentRequests that are sent out in the TriggerDecision via configuration.

This would affect the following line of code, I believe:

request.window_end = tc.time_candidate + 1000;

I'm not asking for anything fancy, just the use of a single config param in the calculation of the request.window_end for all components in the TD.

Thanks!

Add collection/induction filter module for VD coldbox TPSets

In the VD coldbox, the channel mapping is complicated and leads to collection and induction channels all being mixed up in the TPSets that are sent from readout. The easiest way to fix this is probably to have a module in trigger that reads in the TPSets and removes collection or induction TPs from them before passing them on to the next stage. Alternatively, the algorithm could do it, but triggeralgs doesn't depend on detchannelmaps

Simple deadtime accounting

I'm creating this Issue as a placeholder for work that Phil has mentioned.

In particular, I see "Define simple DFO-related deadtime accounting" listed on the "Trigger" tab in the Task List spreadsheet.

My sense is that this work would be nice to have included in the v2.11.0 release, so I'll go ahead and set the Target Release field for this Issue to that value. Of course, this can be changed if the goal changes. Please note that the tentative date for changes to be made, tested, and tagged for inclusion in v2.11.0 is 21-Apr.

Tardy inputs in zipper

Investigate the effects of tardy inputs to the zipper (drop them? pass them down as orphans?)

Completeness & Cardinality

During the June 2022 and November 2022 cold box APA tests at CERN, EHN1, the trigger subsystem of DUNE DAQ was observed to crash occasionally at stop time. The root cause of this appears to be that completeness is not being achieved in the zipper code.

Completeness & Cardinality

completeness is a measure of how many input queues we see occupied with TPSets during run time. cardinality is a configurable parameter for trigger that should be set to the number of input queues that we expect to see, occupied with TPSets. completeness is achieved when completeness >= cardinality is true.

Stop Time Issue

If completeness is not achieved, then all TPSets are stored in the buffer until stop time when the flush() function is called. At this point, all the TPSets are forced through the system at once, resulting in many FollyQueue error messages of the type:

ERROR iomanager/include/iomanager/Sender.hpp:96] zip_1.output_to_tam_1.input: Unable to push within timeout period (timeout period was 10 milliseconds)

Re-Thinking Cardinality Logic?

During SW TPG runs, the number of input TPSet queues is generally set to the number of active WIB links. A feature of the FW TP runs that 2 queues can be initiated where only 4 WIB links are being used, which is enough to send TPSets on only 1/2 queues. This prevents completeness from being achieved and reproduces the above described stopping problem, with the current state of the zipper code. Going forwards, we should probably re-think this cardinality / completeness logic to handle empty queues when they are expected during test runs.

Update README.md

The readme is currently (essentially) empty. This should be updated.
Things to mention:

  • Goal
  • Overview
  • TPs/TAs/TCs/TD, TR
  • Flow
  • Modules: makers, mlt, sets, buffers, zippers, heartbeats, channel filter, Tee
  • Links to other docs, guides, pages
  • Replay app
  • System diagrams
  • Configurations
  • Running
  • TODO list
  • links to testing

buffer_time not set correctly in `TriggerGenericMaker` -> `TriggerGenericWorker` -> `TimeSliceOutputBuffer`

m_buffer_time in TimeSliceOutputBuffer is set via TriggerGenericWorker's initialization list, here:

, m_out_buffer(parent.get_name(), parent.m_algorithm_name, parent.m_buffer_time)

TGW's ctor is called from TriggerGenericMaker's ctor, but the buffer time in TGM isn't set until the do_configure() function, so TimeSliceOutputBuffer ends up reading an uninitialized value.

I fixed it locally by making the TriggerGenericMaker::worker member into a unique_ptr and only creating it in do_configure after calling make_maker(), but there are probably other ways to do it

Request to be able to specify readout window when using HSI pass-through mode

I've noticed that the configurations generated with the following two commands result in data files that have TriggerRecords with the same readout window, even though I've requested different readout windows with the "-b" and "-a" options:

daqconf_multiru_gen --enabled-hsi-signals 128 --hsi-signal-emulation-mode 2 -t 1.0 --hsi-trigger-type-passthrough --use-fake-data-producers -b 2000 -a 2000 mdapp_fdp_ba2000

daqconf_multiru_gen --enabled-hsi-signals 128 --hsi-signal-emulation-mode 2 -t 1.0 --hsi-trigger-type-passthrough --use-fake-data-producers -b 5000 -a 5000 mdapp_fdp_ba5000

This seems to be related to the use of the --hsi-trigger-type-passthrough option.

And, it seems to be related to the fact that the C++ code is using the "s0" before and after times, as shown here:

whereas the configuration is only setting the before and after times for "s1" and "s2" to the values specified with -b and -a, as shown here:

It would be helpful to be able to set the readout window before and after times even when the HSI pass-through mode is enabled.

Lots of warning messages when running 3ru_3df_multirun_test.py

These were seen with the N22-05-19 nightly build and the HEAD of develop in daqconf and the kbiery/integtest_updates_for3.0 branch in dfmodules:

Problem(s) found in logfile /tmp/pytest-of-biery/pytest-638/run0/log_trigger_3334.txt:
2022-May-19 11:01:04,454 WARNING [bool dunedaq::trigger::TriggerZipper::proc_one() [with TSET = dunedaq::trigger::Settriggeralgs::TriggerActivity] at /tmp/root/spack-stage/spack-stage-trigger-N22-05-19-7nt5bqbowokrm3kzeih27tcfiunykqed/spack-src/plugins/TriggerZipper.hpp:217] Tardy input set from region 2 element 0. Set start time 79554162188040000 but last sent time 79554162191290000 DAQModule: tazipper

2022-May-19 11:01:06,960 WARNING [bool dunedaq::trigger::TriggerZipper::proc_one() [with TSET = dunedaq::trigger::Settriggeralgs::TriggerActivity] at /tmp/root/spack-stage/spack-stage-trigger-N22-05-19-7nt5bqbowokrm3kzeih27tcfiunykqed/spack-src/plugins/TriggerZipper.hpp:217] Tardy input set from region 2 element 0. Set start time 79554162188050000 but last sent time 79554162195140000 DAQModule: tazipper

2022-May-19 11:01:13,940 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=1 Oldest stored TS=79554162196262608 Start of window TS=79554162089472543 End of window TS=79554162089472893 Estimated newest stored TS=79554162089472543 Requestor=fragments_to_dataflow1

2022-May-19 11:01:14,001 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=2 Oldest stored TS=79554162196262608 Start of window TS=79554162089784418 End of window TS=79554162089784768 Estimated newest stored TS=79554162089784418 Requestor=fragments_to_dataflow2

2022-May-19 11:01:14,062 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=3 Oldest stored TS=79554162196262608 Start of window TS=79554162090098793 End of window TS=79554162090099093 Estimated newest stored TS=79554162090098793 Requestor=fragments_to_dataflow0

2022-May-19 11:01:14,124 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=4 Oldest stored TS=79554162196262608 Start of window TS=79554162090390868 End of window TS=79554162090391243 Estimated newest stored TS=79554162090390868 Requestor=fragments_to_dataflow1

2022-May-19 11:01:14,155 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=5 Oldest stored TS=79554162196262608 Start of window TS=79554162090838958 End of window TS=79554162090840958 Estimated newest stored TS=79554162090838958 Requestor=fragments_to_dataflow2

2022-May-19 11:01:14,185 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=6 Oldest stored TS=79554162196262608 Start of window TS=79554162090702468 End of window TS=79554162090702818 Estimated newest stored TS=79554162090702468 Requestor=fragments_to_dataflow0

2022-May-19 11:01:14,247 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=7 Oldest stored TS=79554162196262608 Start of window TS=79554162091016868 End of window TS=79554162091017218 Estimated newest stored TS=79554162091016868 Requestor=fragments_to_dataflow1

2022-May-19 11:01:14,308 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=8 Oldest stored TS=79554162196262608 Start of window TS=79554162091309218 End of window TS=79554162091309568 Estimated newest stored TS=79554162091309218 Requestor=fragments_to_dataflow2

2022-May-19 11:01:14,369 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=9 Oldest stored TS=79554162196262608 Start of window TS=79554162091620618 End of window TS=79554162091620968 Estimated newest stored TS=79554162091620618 Requestor=fragments_to_dataflow0

2022-May-19 11:01:14,431 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=10 Oldest stored TS=79554162196262608 Start of window TS=79554162091934943 End of window TS=79554162091935243 Estimated newest stored TS=79554162091934943 Requestor=fragments_to_dataflow1

2022-May-19 11:01:14,482 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=11 Oldest stored TS=79554162196262608 Start of window TS=79554162092334298 End of window TS=79554162092336298 Estimated newest stored TS=79554162092334298 Requestor=fragments_to_dataflow2

2022-May-19 11:01:14,492 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=12 Oldest stored TS=79554162196262608 Start of window TS=79554162092231518 End of window TS=79554162092231618 Estimated newest stored TS=79554162092231518 Requestor=fragments_to_dataflow0

2022-May-19 11:01:14,553 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=13 Oldest stored TS=79554162196262608 Start of window TS=79554162092538793 End of window TS=79554162092539243 Estimated newest stored TS=79554162092538793 Requestor=fragments_to_dataflow1

2022-May-19 11:01:14,614 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=14 Oldest stored TS=79554162196262608 Start of window TS=79554162092853143 End of window TS=79554162092853618 Estimated newest stored TS=79554162092853143 Requestor=fragments_to_dataflow2

2022-May-19 11:01:14,676 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=15 Oldest stored TS=79554162196262608 Start of window TS=79554162093154218 End of window TS=79554162093154343 Estimated newest stored TS=79554162093154218 Requestor=fragments_to_dataflow0

2022-May-19 11:01:14,737 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=16 Oldest stored TS=79554162196262608 Start of window TS=79554162093456818 End of window TS=79554162093457193 Estimated newest stored TS=79554162093456818 Requestor=fragments_to_dataflow1

2022-May-19 11:01:14,798 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=17 Oldest stored TS=79554162196262608 Start of window TS=79554162093771643 End of window TS=79554162093772093 Estimated newest stored TS=79554162093771643 Requestor=fragments_to_dataflow2

2022-May-19 11:01:14,819 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=18 Oldest stored TS=79554162196262608 Start of window TS=79554162094140028 End of window TS=79554162094142028 Estimated newest stored TS=79554162094140028 Requestor=fragments_to_dataflow0

2022-May-19 11:01:14,860 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=19 Oldest stored TS=79554162196262608 Start of window TS=79554162094073868 End of window TS=79554162094073968 Estimated newest stored TS=79554162094073868 Requestor=fragments_to_dataflow1

2022-May-19 11:01:14,921 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=20 Oldest stored TS=79554162196262608 Start of window TS=79554162094374943 End of window TS=79554162094375268 Estimated newest stored TS=79554162094374943 Requestor=fragments_to_dataflow2

2022-May-19 11:01:14,982 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=21 Oldest stored TS=79554162196262608 Start of window TS=79554162094690068 End of window TS=79554162094690393 Estimated newest stored TS=79554162094690068 Requestor=fragments_to_dataflow0

2022-May-19 11:01:15,054 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=22 Oldest stored TS=79554162196262608 Start of window TS=79554162094995943 End of window TS=79554162094996118 Estimated newest stored TS=79554162094995943 Requestor=fragments_to_dataflow1

2022-May-19 11:01:15,105 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=23 Oldest stored TS=79554162196262608 Start of window TS=79554162095292993 End of window TS=79554162095293493 Estimated newest stored TS=79554162095292993 Requestor=fragments_to_dataflow2

2022-May-19 11:01:15,147 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=24 Oldest stored TS=79554162196262608 Start of window TS=79554162095822613 End of window TS=79554162095824613 Estimated newest stored TS=79554162095822613 Requestor=fragments_to_dataflow0

2022-May-19 11:01:15,167 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=25 Oldest stored TS=79554162196262608 Start of window TS=79554162095608218 End of window TS=79554162095608568 Estimated newest stored TS=79554162095608218 Requestor=fragments_to_dataflow1

2022-May-19 11:01:15,239 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=26 Oldest stored TS=79554162196262608 Start of window TS=79554162095914893 End of window TS=79554162095915343 Estimated newest stored TS=79554162095914893 Requestor=fragments_to_dataflow2

2022-May-19 11:01:15,290 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=27 Oldest stored TS=79554162196262608 Start of window TS=79554162096211168 End of window TS=79554162096211418 Estimated newest stored TS=79554162096211168 Requestor=fragments_to_dataflow0

2022-May-19 11:01:15,361 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=28 Oldest stored TS=79554162196262608 Start of window TS=79554162096526393 End of window TS=79554162096526718 Estimated newest stored TS=79554162096526393 Requestor=fragments_to_dataflow1

2022-May-19 11:01:15,423 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=29 Oldest stored TS=79554162196262608 Start of window TS=79554162096832993 End of window TS=79554162096833468 Estimated newest stored TS=79554162096832993 Requestor=fragments_to_dataflow2

2022-May-19 11:01:15,474 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=30 Oldest stored TS=79554162196262608 Start of window TS=79554162097129243 End of window TS=79554162097129543 Estimated newest stored TS=79554162097129243 Requestor=fragments_to_dataflow0

2022-May-19 11:01:16,028 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=41 Oldest stored TS=79554162196262608 Start of window TS=79554162099883518 End of window TS=79554162099883793 Estimated newest stored TS=79554162099883518 Requestor=fragments_to_dataflow2 -- 10 similar messages suppressed, last occurrence was at 2022-May-19 11:01:15,976627

2022-May-19 11:01:21,249 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=142 Oldest stored TS=79554162196262608 Start of window TS=79554162125908943 End of window TS=79554162125909268 Estimated newest stored TS=79554162125908943 Requestor=fragments_to_dataflow1 -- 100 similar messages suppressed, last occurrence was at 2022-May-19 11:01:21,199058

2022-May-19 11:01:40,048 WARNING [bool dunedaq::trigger::TriggerZipper::proc_one() [with TSET = dunedaq::trigger::Settriggeralgs::TriggerActivity] at /tmp/root/spack-stage/spack-stage-trigger-N22-05-19-7nt5bqbowokrm3kzeih27tcfiunykqed/spack-src/plugins/TriggerZipper.hpp:217] Tardy input set from region 2 element 0. Set start time 79554162202580000 but last sent time 79554162209010000 DAQModule: tazipper

2022-May-19 11:01:52,055 WARNING [dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::data_request(dunedaq::dfmessages::DataRequest, bool) [with ReadoutType = dunedaq::trigger::TCBuffer::TCWrapper; LatencyBufferType = dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper; dunedaq::readoutlibs::DefaultRequestHandlerModel<ReadoutType, LatencyBufferType>::RequestResult = dunedaq::readoutlibs::RequestHandlerConcept<dunedaq::trigger::TCBuffer::TCWrapper, dunedaq::readoutlibs::BinarySearchQueueModeldunedaq::trigger::TCBuffer::TCWrapper >::RequestResult] at /cvmfs/dunedaq-development.opensciencegrid.org/spack-nightly/N22-05-19/spack-0.17.1/opt/spack/gcc-8.2.0/readoutlibs-N22-05-19-hsel77poocyyzvrmeo4efgzgosgqjbym/include/readoutlibs/models/DefaultRequestHandlerModel.hpp:647] GeoID[type: DataSelection, region: 20000, element: 0] Trigger Matching result with empty fragment: TS match result on link 0: Trigger number=171 Oldest stored TS=79554162210619333 Start of window TS=79554162114070728 End of window TS=79554162114072728 Estimated newest stored TS=79554162113716218 Requestor=fragments_to_dataflow0 -- 417 similar messages suppressed, last occurrence was at 2022-May-19 11:01:51,994391

2022-May-19 11:02:08,099 WARNING [bool dunedaq::trigger::TriggerZipper::proc_one() [with TSET = dunedaq::trigger::Settriggeralgs::TriggerActivity] at /tmp/root/spack-stage/spack-stage-trigger-N22-05-19-7nt5bqbowokrm3kzeih27tcfiunykqed/spack-src/plugins/TriggerZipper.hpp:217] Tardy input set from region 2 element 0. Set start time 79554162188680000 but last sent time 79554162191850000 DAQModule: tazipper

2022-May-19 11:02:10,518 WARNING [bool dunedaq::trigger::TriggerZipper::proc_one() [with TSET = dunedaq::trigger::Settriggeralgs::TriggerActivity] at /tmp/root/spack-stage/spack-stage-trigger-N22-05-19-7nt5bqbowokrm3kzeih27tcfiunykqed/spack-src/plugins/TriggerZipper.hpp:217] Tardy input set from region 1 element 0. Set start time 79554162191890000 but last sent time 79554162195320000 DAQModule: tazipper

2022-May-19 11:02:10,603 WARNING [bool dunedaq::trigger::TriggerZipper::proc_one() [with TSET = dunedaq::trigger::Settriggeralgs::TriggerActivity] at /tmp/root/spack-stage/spack-stage-trigger-N22-05-19-7nt5bqbowokrm3kzeih27tcfiunykqed/spack-src/plugins/TriggerZipper.hpp:217] Tardy input set from region 2 element 0. Set start time 79554162188700000 but last sent time 79554162195320000 DAQModule: tazipper

readout_type_scan.py integration test fails the software-tpg step

With the N22-05-19 nightly build and the HEAD of the develop branch in daqconf, dfmodules, and flxlibs, I see the following errors from dfmodules/integtest/readout_type_scan.py:

===============================
Software_TPG_System-run_nanorc0
===============================
F----------
Problem(s) found in logfile /tmp/pytest-of-biery/pytest-622/run1/log_ruemu0_3336.txt:
2022-May-19 08:52:50,723 ERROR [void dunedaq::cmdlib::CommandFacility::handle_command(const cmdobj_t&, dunedaq::cmdlib::cmd::CommandReply) at /tmp/root/spack-stage/spack-stage-cmdlib-N22-05-19-evkz6sywhalbysleudv5sq7v64v4g7ms/spack-src/src/CommandFacility.cpp:64] Execution of command failed: Caught ers::Issue

	was caused by: 2022-May-19 08:52:50,723 ERROR [void dunedaq::networkmanager::NetworkManager::configure(const Connections&) at /tmp/root/spack-stage/spack-stage-networkmanager-N22-05-19-s6jwuoscqhmvuwwun7murl6ejzfei3ln/spack-src/src/NetworkManager.cpp:76] Multiple instances of name tpsets_ru0_link0 exist

----------
Problem(s) found in logfile /tmp/pytest-of-biery/pytest-622/run1/log_trigger_3334.txt:
2022-May-19 08:52:50,764 ERROR [void dunedaq::cmdlib::CommandFacility::handle_command(const cmdobj_t&, dunedaq::cmdlib::cmd::CommandReply) at /tmp/root/spack-stage/spack-stage-cmdlib-N22-05-19-evkz6sywhalbysleudv5sq7v64v4g7ms/spack-src/src/CommandFacility.cpp:64] Execution of command failed: Caught ers::Issue

	was caused by: 2022-May-19 08:52:50,764 ERROR [void dunedaq::networkmanager::NetworkManager::configure(const Connections&) at /tmp/root/spack-stage/spack-stage-networkmanager-N22-05-19-s6jwuoscqhmvuwwun7murl6ejzfei3ln/spack-src/src/NetworkManager.cpp:76] Multiple instances of name tpsets_ru0_link0 exist

Zipper latency timeout not applied when any inputs are dead

In the ongoing VD coldbox triggering tests, an issue was noticed that I think is due to the zipper. No outputs make it through the system until stop, when all of the data rushes through the system. A feature of the relevant VD coldbox data taking is that software hit finding is disabled on one of the links (because the machine can't quite keep up with all of the links). So the TPZipper is only getting data from N-1 of its N links.

If I understand the zipper code correctly, the items in the streams map are only populated when an input is received on the relevant stream (because the input item is needed to calculate the stream ID, the key in the streams map). In the complete() function, the streams object is iterated over, incrementing the completeness count and attempting to reach cardinality. But if the number of streams seen so far is less than cardinality, the condition completeness >= cardinality can never be reached, and so everything gets buffered until TriggerZipper::flush() is called at "stop" time.

For the short term, we can probably make some workarounds in the configuration, but I think we ought to handle this case. So if I've analyzed things correctly, one possible fix would be to tell zipper the stream IDs to expect at configuration time, so it can populate the streams member right away. Alternatively, modify the logic in complete() somehow to behave differently when the number of streams seen so far is < cardinality.

@brettviren , thoughts? If my analysis doesn't sound crazy to you, we can try putting together a test to confirm whether it's correct.

Unified developer test(s) platform

It would be ideal to have a unified testing platform for trigger development.
This could take the form of a single python script where the developer can configure that test to confirm the functionality of their new feature produces the expected result. This could also update a spreadsheet/table and link to readme to automate logging.


Could include:

  • date and time
  • configuration
  • used branches
  • result: PASS/FAIL
  • X/TOT passed
  • path to trigger log
  • ensure no 'warning' or 'error' messages

The trigger log / other logs should be used as input for the test. The test should be run with DAQ configuration generated with the '--debug' flag to ensure maximal logging.

Request to add run number to TPSet structure

...so that we can check for stale instances when one run ends and another one begins.

I originally noticed such a stop/start issue with TPSet in the TPStreamWriter in dfmodules.

DUNE Linter Cleanup

sourcecode/trigger/include/trigger/Issues.hpp:0:  No #ifndef header guard found, suggested CPP variable is: TRIGGER_INCLUDE_TRIGGER_ISSUES_HPP_  [build/header_guard] [5]
sourcecode/trigger/include/trigger/Issues.hpp:0:  The standard copyright message wasn't found.  [legal/copyright] [5]
sourcecode/trigger/include/trigger/Issues.hpp:10:  #define appears to be used. Macros should generally be avoided if there's an alternative to them.  [build/define_used] [3]
sourcecode/trigger/include/trigger/Issues.hpp:35:  An unsigned integer appears to be used here.  [build/unsigned] [3]
sourcecode/trigger/include/trigger/Issues.hpp:8:  #define appears to be used. Macros should generally be avoided if there's an alternative to them.  [build/define_used] [3]
sourcecode/trigger/include/trigger/Issues.hpp:9:  #define appears to be used. Macros should generally be avoided if there's an alternative to them.  [build/define_used] [3]
sourcecode/trigger/plugins/ModuleLevelTrigger.cpp:146:  Missing author name in TODO comment; it should appear on the same line as the TODO, as Firstname Lastname  [readability/todo] [2]
sourcecode/trigger/plugins/ModuleLevelTrigger.cpp:146:  Missing date in TODO comment; it should appear on same line as the TODO, preferably in a form like "Apr-14-2020"  [readability/todo] [2]
sourcecode/trigger/plugins/ModuleLevelTrigger.cpp:146:  Missing email address in TODO comment; it should appear on the same line as the TODO  [readability/todo] [2]
sourcecode/trigger/plugins/ModuleLevelTrigger.cpp:153:  Missing author name in TODO comment; it should appear on the same line as the TODO, as Firstname Lastname  [readability/todo] [2]
sourcecode/trigger/plugins/ModuleLevelTrigger.cpp:153:  Missing date in TODO comment; it should appear on same line as the TODO, preferably in a form like "Apr-14-2020"  [readability/todo] [2]
sourcecode/trigger/plugins/ModuleLevelTrigger.cpp:153:  Missing email address in TODO comment; it should appear on the same line as the TODO  [readability/todo] [2]
sourcecode/trigger/plugins/RandomTriggerCandidateMaker.cpp:134:  C-style comment syntax detected; please use either C++ style "//" or Doxygen style  [readability/comment] [3]
sourcecode/trigger/plugins/RandomTriggerCandidateMaker.cpp:139:  Using C-style cast.  Use static_cast<int>(...) instead  [readability/casting] [4]
sourcecode/trigger/plugins/TimingTriggerCandidateMaker.cpp:0:  The standard copyright message wasn't found.  [legal/copyright] [5]
sourcecode/trigger/plugins/TimingTriggerCandidateMaker.cpp:23:  Missing author name in TODO comment; it should appear on the same line as the TODO, as Firstname Lastname  [readability/todo] [2]
sourcecode/trigger/plugins/TimingTriggerCandidateMaker.cpp:23:  Missing date in TODO comment; it should appear on same line as the TODO, preferably in a form like "Apr-14-2020"  [readability/todo] [2]
sourcecode/trigger/plugins/TimingTriggerCandidateMaker.cpp:23:  Missing email address in TODO comment; it should appear on the same line as the TODO  [readability/todo] [2]
sourcecode/trigger/plugins/TimingTriggerCandidateMaker.cpp:34:  An unsigned integer appears to be used here.  [build/unsigned] [3]
sourcecode/trigger/plugins/TimingTriggerCandidateMaker.cpp:5:  Add #include <string> for string  [build/include_what_you_use] [4]
sourcecode/trigger/plugins/TimingTriggerCandidateMaker.hpp:0:  No #ifndef header guard found, suggested CPP variable is: TRIGGER_PLUGINS_TIMINGTRIGGERCANDIDATEMAKER_HPP_  [build/header_guard] [5]
sourcecode/trigger/plugins/TimingTriggerCandidateMaker.hpp:0:  The standard copyright message wasn't found.  [legal/copyright] [5]
sourcecode/trigger/plugins/TimingTriggerCandidateMaker.hpp:25:  Add #include <string> for string  [build/include_what_you_use] [4]
sourcecode/trigger/plugins/TimingTriggerCandidateMaker.hpp:50:  Add #include <memory> for unique_ptr<>  [build/include_what_you_use] [4]
sourcecode/trigger/plugins/TimingTriggerCandidateMaker.hpp:54:  Add #include <map> for map<>  [build/include_what_you_use] [4]
sourcecode/trigger/plugins/TimingTriggerCandidateMaker.hpp:54:  Add #include <utility> for pair<>  [build/include_what_you_use] [4]
sourcecode/trigger/plugins/TimingTriggerCandidateMaker.hpp:54:  An unsigned integer appears to be used here.  [build/unsigned] [3]
sourcecode/trigger/src/TokenManager.cpp:0:  The standard copyright message wasn't found.  [legal/copyright] [5]
sourcecode/trigger/src/TokenManager.cpp:5:  Add #include <memory> for unique_ptr<>  [build/include_what_you_use] [4]
sourcecode/trigger/src/TokenManager.cpp:99:  Namespace should be terminated with '// namespace dunedaq::trigger  '  [readability/namespace] [5]
sourcecode/trigger/src/trigger/TokenManager.hpp:37:7: warning: class 'TokenManager' defines a non-default destructor but does not define a copy constructor, a copy assignment operator, a move constructor or a move assignment operator [cppcoreguidelines-special-member-functions]
sourcecode/trigger/src/trigger/TokenManager.hpp:37:7: warning: class 'TokenManager' defines a non-default destructor but does not define a copy constructor, a copy assignment operator, a move constructor or a move assignment operator [cppcoreguidelines-special-member-functions]
sourcecode/trigger/src/trigger/TokenManager.hpp:37:7: warning: class 'TokenManager' defines a non-default destructor but does not define a copy constructor, a copy assignment operator, a move constructor or a move assignment operator [cppcoreguidelines-special-member-functions]
sourcecode/trigger/src/trigger/TokenManager.hpp:37:7: warning: class 'TokenManager' defines a non-default destructor but does not define a copy constructor, a copy assignment operator, a move constructor or a move assignment operator [cppcoreguidelines-special-member-functions]
sourcecode/trigger/src/trigger/TokenManager.hpp:84:  Namespace should be terminated with '// namespace trigger  '  [readability/namespace] [5]
sourcecode/trigger/src/trigger/TokenManager.hpp:85:  Namespace should be terminated with '// namespace dunedaq  '  [readability/namespace] [5]
sourcecode/trigger/test/plugins/FakeDataFlow.cpp:107:  C-style comment syntax detected; please use either C++ style "//" or Doxygen style  [readability/comment] [3]
sourcecode/trigger/test/plugins/FakeDataFlow.cpp:140:  Using C-style cast.  Use static_cast<int>(...) instead  [readability/casting] [4]
sourcecode/trigger/test/plugins/FakeDataFlow.cpp:30:  Add #include <string> for string  [build/include_what_you_use] [4]
sourcecode/trigger/test/plugins/FakeDataFlow.hpp:12:  #ifndef header guard has wrong style, please use: TRIGGER_TEST_PLUGINS_FAKEDATAFLOW_HPP_  [build/header_guard] [5]
sourcecode/trigger/test/plugins/FakeDataFlow.hpp:86:  #endif line should be "#endif  // TRIGGER_TEST_PLUGINS_FAKEDATAFLOW_HPP_"  [build/header_guard] [5]
sourcecode/trigger/test/plugins/FakeTimeStampedDataGenerator.cpp:107:  An unsigned integer appears to be used here.  [build/unsigned] [3]
sourcecode/trigger/test/plugins/FakeTimeStampedDataGenerator.cpp:109:  Increment/decrement operator should appear alone on its line unless in a while/for loop head  [runtime/increment_decrement] [5]
sourcecode/trigger/test/plugins/FakeTimeStampedDataGenerator.hpp:74:  An unsigned integer appears to be used here.  [build/unsigned] [3]
sourcecode/trigger/test/plugins/FakeTimeStampedDataGenerator.hpp:76:  An unsigned integer appears to be used here.  [build/unsigned] [3]
sourcecode/trigger/test/plugins/FakeTimeStampedDataGenerator.hpp:77:  An unsigned integer appears to be used here.  [build/unsigned] [3]
sourcecode/trigger/test/plugins/IntervalTCCreator.hpp:7:  #ifndef header guard has wrong style, please use: TRIGGER_TEST_PLUGINS_INTERVALTCCREATOR_HPP_  [build/header_guard] [5]
sourcecode/trigger/test/plugins/IntervalTCCreator.hpp:93:  #endif line should be "#endif  // TRIGGER_TEST_PLUGINS_INTERVALTCCREATOR_HPP_"  [build/header_guard] [5]
sourcecode/trigger/unittest/TokenManager_test.cxx:20:  Found other header after system header. Should be: TokenManager_test.hh, other non-system headers, system headers.  [build/include_order] [4]
sourcecode/trigger/unittest/TokenManager_test.cxx:35:  Add #include <map> for map<>  [build/include_what_you_use] [4]
sourcecode/trigger/unittest/TokenManager_test.cxx:35:  Add #include <string> for string  [build/include_what_you_use] [4]
sourcecode/trigger/unittest/TokenManager_test.cxx:50:  Add #include <memory> for make_unique<>  [build/include_what_you_use] [4]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.