Reports until 15:59, Monday 21 September 2015
H1 GRD
travis.sadecki@LIGO.ORG - posted 15:59, Monday 21 September 2015 - last comment - 15:28, Wednesday 23 September 2015(21751)
DIAG_MAIN node in error

VerbalAlarms reports that DIAG_MAIN guardin node is in error.

Comments related to this report
evan.hall@LIGO.ORG - 16:20, Monday 21 September 2015 (21754)

Appears to be a standard NDS2 burp:

2015-09-21T22:57:59.11305   File "/ligo/apps/linux-x86_64/guardian-1485/lib/python2.7/site-packages/guardian/worker.py", line 459, in run
2015-09-21T22:57:59.11306     retval = statefunc()
2015-09-21T22:57:59.11306   File "/opt/rtcds/userapps/release/sys/common/guardian/SYS_DIAG.py", line 178, in run
2015-09-21T22:57:59.11307     return SYSDIAG.run_all()
2015-09-21T22:57:59.11307   File "/opt/rtcds/userapps/release/sys/common/guardian/SYS_DIAG.py", line 151, in run_all
2015-09-21T22:57:59.11308     ret &= self.run(name)
2015-09-21T22:57:59.11308   File "/opt/rtcds/userapps/release/sys/common/guardian/SYS_DIAG.py", line 136, in run
2015-09-21T22:57:59.11310     for msg in self[name](**kwargs):
2015-09-21T22:57:59.11311   File "/opt/rtcds/userapps/release/sys/h1/guardian/DIAG_MAIN.py", line 66, in PSL_ISS
2015-09-21T22:57:59.11311     diff_pwr = avg(-10, 'PSL-ISS_DIFFRACTION_AVG')
2015-09-21T22:57:59.11312   File "/ligo/apps/linux-x86_64/cdsutils-497/lib/python2.7/site-packages/cdsutils/avg.py", line 67, in avg
2015-09-21T22:57:59.11312     for buf in conn.iterate(*args):
2015-09-21T22:57:59.11313 RuntimeError: Requested data were not found.

Reloaded.

evan.hall@LIGO.ORG - 15:25, Wednesday 23 September 2015 (21858)

Having the guardian go into error because of an NDS2 hiccough is kind of irritating.

Based on this StackExchange answer, I added the following handler function to the DIAG MAIN guardian:

def try_avg(*args):
    while True:
        try:
            q = avg(*args)
        except RuntimeError:
            log('Encountered runtime error while trying to average {}'.format(args[1]))
            continue
        break
    return q

where avg is the cdsutils.avg function.

This is now used for the ISS diffraction and the ESD railing diag tests. If we like it, we should consider propagating it to the rest of the guardian.

jameson.rollins@LIGO.ORG - 15:28, Wednesday 23 September 2015 (21860)

This is a fine hack solution for this one case, but please don't propogate this around to all guardian NDS calls.  Let me come up with a way to better handle it within the guardian infrastructure, so we don't end up with a lot of cruft in the guardian user code.