PandABlocks/PandABlocks-client

Malformed HDF5 scema strings cause hang

Opened this issue · 0 comments

Passing a schema string that contains more than the expected number of format specifiers (precisely one %d) causes an exception, but leaves the process running and stuck somewhere.

[eyh46967@pc0103 PandABlocks-client]$ pipenv run pandablocks hdf --arm 172.23.252.201 %s/%s_%d.h5
Exception in thread Thread-2:
Traceback (most recent call last):
  File "/dls_sw/prod/tools/RHEL7-x86_64/Python3/3-7-2dls1/prefix/lib/python3.7/threading.py", line 917, in _bootstrap_inner
    self.run()
  File "/home/eyh46967/dev/PandABlocks-client/pandablocks/hdf.py", line 48, in run
    data = func(data)
  File "/home/eyh46967/dev/PandABlocks-client/pandablocks/hdf.py", line 96, in open_file
    file_path = self.scheme % self.num
TypeError: not enough arguments for format string

The command line help for the schema parameter should probably also be changed to explicitly say "exactly 1 %d", as opposed to its current description:
Uses the filename pattern specified by SCHEME, including %d for scan number starting from 1