Closed floriangroetschla closed 3 years ago
I've run some tests with FakeCardReader.
Short runs with "--frontend-type" set to "pds_queue", "pds_list", and "wib" seem fine. The timestamps in the trigger and fragment headers for the PDS data are much larger than the ones produced for the WIB. I presume that this is a feature, not a bug.
I did see a problem when I tried to run with multiple Readout processes. I used the following command to create a system with three WIB-based readout processes:
python -m minidaqapp.nanorc.mdapp_multiru_gen --host-ru localhost --host-ru localhost --host-ru localhost -d /scratch/biery/data/frames.bin -o . -s 10 -n 5 mdapp_6proc
Running this system with the following command produced failures from RUs 1 and 2 at configure time:
nanorc mdapp_6proc boot init conf start 101 wait 2 resume wait 30 pause wait 2 stop wait 2 scrap terminate
Here are the warning and error messages that I saw in the TRACE log:
7 05-26 11:06:07.161300 247377 247423 1 CommandFacility ERR handle_command: Execution of command failed: Caught ers::Issue; caused by: 2021-May-26 11:06:07,161 ERROR [dispatch_one_match_only(...) at DAQModuleManager.cpp:227] Command conf was not execu
13 05-26 11:06:07.148478 247377 247423 11 FakeCardReader ERR do_conf: Readout Initialization Error: Cannot find queue: output_10
19 05-26 11:06:07.056084 247324 247400 0 CommandFacility ERR handle_command: Execution of command failed: Caught ers::Issue; caused by: 2021-May-26 11:06:07,055 ERROR [dispatch_one_match_only(...) at DAQModuleManager.cpp:227] Command conf was not execu
25 05-26 11:06:07.042608 247324 247400 10 FakeCardReader ERR do_conf: Readout Initialization Error: Cannot find queue: output_5
Thanks for the testing, the last commit should fix the queue names
Thanks for the fix. I confirm that, with the fix, I can run with 3 Readout Apps.
Added explanation for some options
Additional option
--frontend-type
to specify the frontend type (and request handler implementation for PDS). The type is used as the prefix for the queue instance name. The system type of the GeoID is used by the ModuleLevelTrigger, the TriggerRecordBuilder and the FakeCardReader. This PR also handles some changes in the configuration of the readout (especially that links can be configured separately).