InĀ Entry 50929 it was reported a bug which affects only the SUS_PR node; we remind:
- all the SUS nodes share the same code base;
- a little bit of code is actually executed only by SUS_PR, and it basically checks if the PR safety tripped; in case, it changes the node state to MISALIGNED (to follow the optic, which already misaligned itself) and notifies it to the user.
This piece of code caused a bug related to ConfigParser (see attached logs), which complains about a non-iterable numpy.float32 and/or a missing section in the configuration file (which obviously exists); this is most probably the same behaviour already observed in the OMC_LOCK node (Entry 45476 and comments) and it is related to the implicit conversion done by ConfigParser between float
and string
; the first symptom is the bug itself, the second one is a consequence, as the error can make the configuration file to be badly closed (and resulting empty in the process).
Actions done:
- changed all the
float(config.get('SECTION','parameter'))
calls toconfig.getfloat('SECTION','parameter')
; - forced the string type when using the
config.set()
call (which is more robust than remembering to explicitly callconfig.read()
every time before anyconfig.get
).
SUS_PR can now be asked safely the SAVE_ALIGNED state again.
The PR and SR nodes have already been reloaded with the new code base, while the other nodes can be reloaded whenever there is a small window (they are not affected by the bug anyway).