ICEPAP timeout- the old non solved problem
We have for a long time problems with the one icepap giving error which crashes scans:
!!! === CommandTimeout: timeout on socket(iceid102, 5000) === !!! ( for more details type cmd 'last_error' )
EH1_EXP [15]: last_error
Out [15]: 22/01/2022 15:37:06 Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/data/id10b/inhouse/user22/raitman/macros/raitman_macros.py", line 145, in do_zgh
dscan(zgH,-0.1,0.1,80,1)
File "/users/blissadm/local/bliss.git/bliss/common/utils.py", line 958, in wrapped_function
)(function)(*args, **kwargs)
File "/users/blissadm/local/bliss.git/bliss/common/utils.py", line 904, in wrapped_function
return function(*args, **kwargs)
File "/users/blissadm/local/bliss.git/bliss/common/utils.py", line 869, in wrapped_function
return function(*args, **kwargs)
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/typeguard/__init__.py", line 927, in wrapper
retval = func(*args, **kwargs)
File "/users/blissadm/local/bliss.git/bliss/common/scans/step_by_step.py", line 189, in dscan
scan_info=scan_info,
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/typeguard/__init__.py", line 927, in wrapper
retval = func(*args, **kwargs)
File "/users/blissadm/local/bliss.git/bliss/common/scans/step_by_step.py", line 620, in dnscan
scan.run()
File "/users/blissadm/local/bliss.git/bliss/scanning/scan.py", line 1629, in run
self._execute_scan_runner(runner)
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/contextlib.py", line 524, in __exit__
raise exc_details[1]
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/contextlib.py", line 509, in __exit__
if cb(*exc_details):
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/contextlib.py", line 377, in _exit_wrapper
return cm_exit(cm, exc_type, exc, tb)
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/contextlib.py", line 119, in __exit__
next(self.gen)
File "/users/blissadm/local/bliss.git/bliss/common/cleanup.py", line 291, in capture_exceptions
raise value
File "/users/blissadm/local/bliss.git/bliss/common/cleanup.py", line 267, in capture
yield
File "/users/blissadm/local/bliss.git/bliss/scanning/scan.py", line 1674, in wrapper
yield
File "/users/blissadm/local/bliss.git/bliss/scanning/scan.py", line 1629, in run
self._execute_scan_runner(runner)
File "/users/blissadm/local/bliss.git/bliss/scanning/scan.py", line 1662, in _execute_scan_runner
[gevent.spawn(i.stop) for i in scan_chain_iterators if i is not None]
File "/users/blissadm/local/bliss.git/bliss/scanning/scan.py", line 515, in send
return self.runner.send(arg)
File "/users/blissadm/local/bliss.git/bliss/scanning/scan.py", line 580, in _run
self._gwait(stop_tasks, masked_kill_nb=1)
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/contextlib.py", line 119, in __exit__
next(self.gen)
File "/users/blissadm/local/bliss.git/bliss/common/cleanup.py", line 290, in capture_exceptions
raise value.with_traceback(tb)
File "/users/blissadm/local/bliss.git/bliss/common/cleanup.py", line 267, in capture
yield
File "/users/blissadm/local/bliss.git/bliss/scanning/scan.py", line 551, in _run
t.get() # get the task result ; this may raise an exception
File "/users/blissadm/local/bliss.git/bliss/common/greenlet_utils.py", line 192, in get
return super().get(*args, **keys)
File "src/gevent/greenlet.py", line 803, in gevent._gevent_cgreenlet.Greenlet.get
File "src/gevent/greenlet.py", line 371, in gevent._gevent_cgreenlet.Greenlet._raise_exception
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/gevent/_compat.py", line 65, in reraise
raise value.with_traceback(tb)
File "src/gevent/greenlet.py", line 906, in gevent._gevent_cgreenlet.Greenlet.run
File "/users/blissadm/local/bliss.git/bliss/scanning/scan.py", line 509, in _run_next
i.prepare(scan, scan.scan_info)
File "/users/blissadm/local/bliss.git/bliss/scanning/chain.py", line 861, in prepare
join_tasks(tasks)
File "/users/blissadm/local/bliss.git/bliss/scanning/chain.py", line 50, in join_tasks
gevent.joinall(greenlets, raise_error=True, **kw)
File "src/gevent/greenlet.py", line 1057, in gevent._gevent_cgreenlet.joinall
File "src/gevent/greenlet.py", line 1073, in gevent._gevent_cgreenlet.joinall
File "src/gevent/greenlet.py", line 371, in gevent._gevent_cgreenlet.Greenlet._raise_exception
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/gevent/_compat.py", line 65, in reraise
raise value.with_traceback(tb)
File "src/gevent/greenlet.py", line 906, in gevent._gevent_cgreenlet.Greenlet.run
File "/users/blissadm/local/bliss.git/bliss/scanning/chain.py", line 555, in acq_prepare
return self.prepare()
File "/users/blissadm/local/bliss.git/bliss/scanning/acquisition/motor.py", line 731, in prepare
self.device.move(*self.next_mv_cmd_arg)
File "/users/blissadm/local/bliss.git/bliss/common/motor_group.py", line 232, in move
polling_time=polling_time,
File "/users/blissadm/local/bliss.git/bliss/common/axis.py", line 152, in move
self.wait()
File "/users/blissadm/local/bliss.git/bliss/common/axis.py", line 159, in wait
self.stop()
File "/users/blissadm/local/bliss.git/bliss/common/axis.py", line 168, in stop
self._move_task.get()
File "/users/blissadm/local/bliss.git/bliss/common/greenlet_utils.py", line 192, in get
return super().get(*args, **keys)
File "src/gevent/greenlet.py", line 803, in gevent._gevent_cgreenlet.Greenlet.get
File "src/gevent/greenlet.py", line 371, in gevent._gevent_cgreenlet.Greenlet._raise_exception
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/gevent/_compat.py", line 65, in reraise
raise value.with_traceback(tb)
File "src/gevent/greenlet.py", line 906, in gevent._gevent_cgreenlet.Greenlet.run
File "/users/blissadm/local/bliss.git/bliss/common/axis.py", line 392, in _move
hook.post_move(motions)
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/contextlib.py", line 119, in __exit__
next(self.gen)
File "/users/blissadm/local/bliss.git/bliss/common/cleanup.py", line 291, in capture_exceptions
raise value
File "/users/blissadm/local/bliss.git/bliss/common/cleanup.py", line 267, in capture
yield
File "/users/blissadm/local/bliss.git/bliss/common/axis.py", line 321, in _move
motions_dict, start_motion, stop_motion, move_func, started_event
File "/users/blissadm/local/bliss.git/bliss/common/axis.py", line 310, in _do_move
self._monitor_move(motions_dict, move_func, stop_motion)
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/contextlib.py", line 119, in __exit__
next(self.gen)
File "/users/blissadm/local/bliss.git/bliss/common/cleanup.py", line 291, in capture_exceptions
raise value
File "/users/blissadm/local/bliss.git/bliss/common/cleanup.py", line 267, in capture
yield
File "/users/blissadm/local/bliss.git/bliss/common/axis.py", line 310, in _do_move
self._monitor_move(motions_dict, move_func, stop_motion)
File "/users/blissadm/local/bliss.git/bliss/common/axis.py", line 188, in _monitor_move
self._stop_move(motions_dict, stop_func, monitor_move_tasks)
File "/users/blissadm/local/bliss.git/bliss/common/axis.py", line 229, in _stop_move
motion.last_state = task.get()
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/contextlib.py", line 119, in __exit__
next(self.gen)
File "/users/blissadm/local/bliss.git/bliss/common/cleanup.py", line 291, in capture_exceptions
raise value
File "/users/blissadm/local/bliss.git/bliss/common/cleanup.py", line 267, in capture
yield
File "/users/blissadm/local/bliss.git/bliss/common/axis.py", line 229, in _stop_move
motion.last_state = task.get()
File "/users/blissadm/local/bliss.git/bliss/common/greenlet_utils.py", line 192, in get
return super().get(*args, **keys)
File "src/gevent/greenlet.py", line 803, in gevent._gevent_cgreenlet.Greenlet.get
File "src/gevent/greenlet.py", line 371, in gevent._gevent_cgreenlet.Greenlet._raise_exception
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/gevent/_compat.py", line 65, in reraise
raise value.with_traceback(tb)
File "src/gevent/greenlet.py", line 906, in gevent._gevent_cgreenlet.Greenlet.run
File "/users/blissadm/local/bliss.git/bliss/common/axis.py", line 1943, in _handle_move
state = self._move_loop(motion.polling_time)
File "/users/blissadm/local/bliss.git/bliss/common/axis.py", line 2069, in _move_loop
self._update_settings(state)
File "/users/blissadm/local/bliss.git/bliss/common/axis.py", line 1721, in _update_settings
self._update_dial()
File "/users/blissadm/local/bliss.git/bliss/common/axis.py", line 636, in func_wrapper
return func(self, *args, **kwargs)
File "/users/blissadm/local/bliss.git/bliss/common/axis.py", line 1100, in _update_dial
dial_pos = self._hw_position
File "/users/blissadm/local/bliss.git/bliss/common/axis.py", line 636, in func_wrapper
return func(self, *args, **kwargs)
File "/users/blissadm/local/bliss.git/bliss/common/axis.py", line 1112, in _hw_position
return self._do_read_hw_position()
File "/users/blissadm/local/bliss.git/bliss/common/axis.py", line 636, in func_wrapper
return func(self, *args, **kwargs)
File "/users/blissadm/local/bliss.git/bliss/common/axis.py", line 1117, in _do_read_hw_position
curr_pos = self.__controller.read_position(self) / self.steps_per_unit
File "/users/blissadm/local/bliss.git/bliss/controllers/motors/icepap/__init__.py", line 201, in read_position
return int(_command(self._cnx, "?%s %s" % (pos_cmd, axis.address)))
File "/users/blissadm/local/bliss.git/bliss/common/greenlet_utils.py", line 134, in wrapper
return method(*args, **kwargs)
File "/users/blissadm/local/bliss.git/bliss/controllers/motors/icepap/comm.py", line 75, in _command
return _command_raw(cnx, cmd, data, pre_cmd, timeout=timeout)
File "/users/blissadm/local/bliss.git/bliss/controllers/motors/icepap/comm.py", line 121, in _command_raw
transaction=transaction, clear_transaction=False, timeout=timeout
File "/users/blissadm/local/bliss.git/bliss/comm/tcp.py", line 400, in rfunc
return fu(self, *args, **kwarg)
File "/users/blissadm/local/bliss.git/bliss/comm/tcp.py", line 580, in _readline
read_value = transaction.get()
File "src/gevent/queue.py", line 335, in gevent._gevent_cqueue.Queue.get
File "src/gevent/queue.py", line 350, in gevent._gevent_cqueue.Queue.get
File "src/gevent/queue.py", line 327, in gevent._gevent_cqueue.Queue._Queue__get_or_peek
File "src/gevent/_waiter.py", line 154, in gevent._gevent_c_waiter.Waiter.get
File "src/gevent/_greenlet_primitives.py", line 61, in gevent._gevent_c_greenlet_primitives.SwitchOutGreenletWithLoop.switch
File "src/gevent/_greenlet_primitives.py", line 61, in gevent._gevent_c_greenlet_primitives.SwitchOutGreenletWithLoop.switch
File "src/gevent/_greenlet_primitives.py", line 65, in gevent._gevent_c_greenlet_primitives.SwitchOutGreenletWithLoop.switch
File "src/gevent/_gevent_c_greenlet_primitives.pxd", line 35, in gevent._gevent_c_greenlet_primitives._greenlet_switch
bliss.comm.tcp.CommandTimeout: timeout on socket(iceid102, 5000)