Idea #24312

DAQInterface should ensure that the MessageFacility FHiCL code it's given is legal

Added by John Freeman 11 months ago. Updated 10 months ago.

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


Estimated time:


A couple of days ago, Bill Badgett was confused about why he couldn't launch processes using DAQInterface. The problem was that he'd modified MessageFacility.fcl and left its code in an illegal state; DAQInterface forwards MessageFacility.fcl to artdaq processes when it launches them, but since the code was illegal the processes couldn't launch. It would be nice if DAQInterface could run a (quick) check on the MessageFacility.fcl and refuse to run if it finds that there's a problem with the FHiCL.

Associated revisions

Revision 61ba461e (diff)
Added by John Freeman 11 months ago

JCF: Issue #24312: DAQInterface will use fhicl-dump to make sure that there aren't any syntax issues with the FHiCL code used to control MessageViewer


#1 Updated by John Freeman 11 months ago

  • % Done changed from 0 to 100
  • Status changed from New to Resolved

Resolved with commit 6b1713a2c242b17ce1f513953a4fa1d436552df6 on branch feature/24312_check_for_illegal_fhicl. Basically, if the FHiCL document DAQInterface uses to control sending messages to MessageViewer has a syntax error, DAQInterface won't even try to launch artdaq processes but will instead inform users of the problem. This FHiCL document is typically called MessageFacility.fcl unless a different document is pointed to by the environment variable DAQINTERFACE_MESSAGEFACILITY_FHICL, and it's automatically produced by DAQInterface if it doesn't already exist. To test the feature in this issue, just sabotage this FHiCL document and make sure DAQInterface notices there's a problem.

#2 Updated by Gennadiy Lukhanin 10 months ago

  • Status changed from Resolved to Rejected

My tests on the Icarus cluster were not successful. DAQInterface crashes if the MessageFacility FHiCL code it's given is legal.

14:53:48icarus@icarus-evb01:~/DAQ_DevAreas/DAQ_14May20/DAQInterface develop*
$ /daq/software/products_dev/artdaq_daqinterface/v3_08_00FB24312FB24420/bin/ line 37: 128288 Aborted                 (core du
mped) nohup stdbuf -oL $ARTDAQ_DAQINTERFACE_DIR/rc/control/ --partition-number $DAQINTERFACE_PARTITION_NUMBER --rpc-port $DAQI
NTERFACE_PORT 0>&- >> $expanded_daqinterface_logfilename 2>&1

# This file was automatically generated as /home/nfs/icarus/DAQ_DevAreas/DAQ_14May20/srcs/sbndaq/sbn-fd/DAQInterface/MessageFacility.fcl at T
hu May 14 15:41:29 CDT 2020 on host, and is
# the default file DAQInterface uses to determine how to modify the
# standard MessageFacility configuration found in artdaq-core
# v3_02_01's file. You can edit the
# contents below to change the behavior of how/where MessageFacility
# messages are sent, though keep in mind that this FHiCL will be
# nested inside a table. Or you can use a different file by setting
# the environment variable DAQINTERFACE_MESSAGEFACILITY_FHICL to the
# name of the other file.

udp : { type : "UDP" threshold : "DEBUG"  porti : DAQINTERFACE_WILL_OVERWRITE_THIS_WITH_AN_INTEGER_VALUE host : "" }

Note: I changed the "port" key to "porti".

Also available in: Atom PDF