Undesirable conversion of +ve integer to -ve in FHiCL array parameter
When committing FHiCL file to the DB, 32 bit positive ints with the top bit set high are converted to negative (this is a problem with array parameters where reading back into a vector of uint in user code fails). This seems to me to be undesirable behaviour.
See, e.g., the file common_code/ssp_standard in the configuration sspEmulator00019, where an element of the parameter ARR_pdts_cmd_control was set to 0x80000FFF before importing, but is converted by the database to -2147483648. The same behaviour is observed when the value is written in decimal rather than hex.
#2 Updated by John Freeman about 2 years ago
To reproduce this error, log into pddaq-gen05-daq0 from lxplus.cern.ch as usual, and then do the following:
cd /daq/artdaq source setup_database.sh tmpdir1=$PWD/$( uuidgen ) mkdir $tmpdir1 cd $tmpdir1 conftool.py exportConfiguration sspEmulator00025 sed -r -i 's/BEGIN_PROLOG/BEGIN_PROLOG\nissuetest: 0xFFFFFFFF/' common_code/ssp_standard.fcl conftool.py importConfiguration sspEmulator cd .. tmpdir2=$PWD/$( uuidgen ) mkdir $tmpdir2 cd $tmpdir2 conftool.py exportConfiguration <name of sspEmulator configuration which was just imported> cd .. diff -r $tmpdir1 $tmpdir2