gpib does not reconnect? + blocking function call exception
Observed on ID31: 'no route to host' with gpib connected to a musst card after power cut. Restarted gpib. Get the following error message next time musst is accessed:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/users/blissadm/local/bliss.git/bliss/common/scans.py", line 723, in loopscan
return timescan(count_time, *counter_args, **kwargs)
File "/users/blissadm/local/bliss.git/bliss/common/scans.py", line 689, in timescan
scan.run()
File "/users/blissadm/local/bliss.git/bliss/scanning/scan.py", line 725, in run
current_iters = [i.next() for i in self.acq_chain.get_iter_list()]
File "/users/blissadm/local/bliss.git/bliss/scanning/chain.py", line 587, in next
raise_error=True,
File "src/gevent/greenlet.py", line 849, in gevent._greenlet.joinall
File "src/gevent/greenlet.py", line 865, in gevent._greenlet.joinall
File "src/gevent/greenlet.py", line 312, in gevent._greenlet.Greenlet._raise_exception
File "src/gevent/greenlet.py", line 716, in gevent._greenlet.Greenlet.run
File "/users/blissadm/local/bliss.git/bliss/scanning/acquisition/musst.py", line 106, in wait_ready
while self.musst.STATE == self.musst.RUN_STATE:
File "/users/blissadm/local/bliss.git/bliss/controllers/musst.py", line 567, in STATE
return self._string2state.get(self.putget("?STATE"))
File "/users/blissadm/local/bliss.git/bliss/common/greenlet_utils.py", line 55, in func
return fu(*args, **kwargs)
File "/users/blissadm/local/bliss.git/bliss/controllers/musst.py", line 358, in putget
self._cnx._write(msg + self._txterm)
File "/users/blissadm/local/bliss.git/bliss/comm/gpib/_gpib.py", line 331, in rfunc
return fu(self, *args, **keys)
File "/users/blissadm/local/bliss.git/bliss/comm/gpib/_gpib.py", line 431, in _write
return self._raw_handler.ibwrt(msg)
File "/users/blissadm/local/bliss.git/bliss/comm/gpib/libnienet.py", line 327, in ibwrt
self._sresp()
File "/users/blissadm/local/bliss.git/bliss/comm/gpib/libnienet.py", line 135, in _sresp
ret = self._read()
File "/users/blissadm/local/bliss.git/bliss/comm/gpib/libnienet.py", line 126, in _read
rx = "".join(self._read_frags(many))
File "/users/blissadm/local/bliss.git/bliss/comm/gpib/libnienet.py", line 116, in _read_frags
header = self._recv(calcsize(self._headfmt))
File "/users/blissadm/local/bliss.git/bliss/comm/gpib/_gpib.py", line 120, in _recv
return self._sock.read(length)
File "/users/blissadm/local/bliss.git/bliss/comm/tcp.py", line 57, in rfunc
return fu(self, *args, **kwarg)
File "/users/blissadm/local/bliss.git/bliss/comm/tcp.py", line 181, in read
raise socket.error(errno.EPIPE, "Broken pipe")
error: [Errno 32] Broken pipe
[Errno 32] Broken pipe
SIXC [9]: Exception gevent.exceptions.BlockingSwitchOutError: BlockingSwitchOutError('Impossible to call blocking function in the event loop callback',) in <bound method _TTL_setter.__del__ of <bliss.data.node._TTL_setter object at 0x7f445242a550>> ignored
SIXC [9]: