No writer for scan '' exists
If a scan fails, scan_disk_space_warning
gives a ValueError
. See traceback below (from ID31):
2022-05-31 11:20:10,103 sixc exceptions ERROR : Traceback (most recent call last):
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 1635, in _execute_scan_runner
scan_chain_iterators = [next(i) for i in self.acq_chain.get_iter_list()]
File "/users/blissadm/local/bliss.git/bliss/scanning/scan.py", line 1635, in <listcomp>
scan_chain_iterators = [next(i) for i in self.acq_chain.get_iter_list()]
File "/users/blissadm/local/bliss.git/bliss/scanning/chain.py", line 940, in __next__
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 436, in acq_wait_ready
join_tasks(tasks, count=1)
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/acquisition/musst.py", line 158, in wait_ready
while self.musst.STATE == self.musst.RUN_STATE:
File "/users/blissadm/local/bliss.git/bliss/controllers/musst.py", line 838, in STATE
return self._string2state.get(self.putget("?STATE"))
File "/users/blissadm/local/bliss.git/bliss/common/greenlet_utils.py", line 137, in wrapper
return method(*args, **kwargs)
File "/users/blissadm/local/bliss.git/bliss/controllers/musst.py", line 546, in putget
self._cnx._write(msg.encode() + self._txterm)
File "/users/blissadm/local/bliss.git/bliss/comm/gpib/_gpib.py", line 360, in rfunc
return fu(self, *args, **keys)
File "/users/blissadm/local/bliss.git/bliss/comm/gpib/_gpib.py", line 498, in _write
return self._raw_handler.ibwrt(cmd)
File "/users/blissadm/local/bliss.git/bliss/comm/gpib/libnienet.py", line 342, in ibwrt
raise IOError("No device connected to this address")
OSError: No device connected to this address
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/users/blissadm/local/bliss.git/bliss/scanning/writer/nexus.py", line 260, in _retry
if method():
File "/users/blissadm/local/bliss.git/bliss/scanning/writer/nexus.py", line 364, in warn_low_disk_space
err_msg = self._scan_disk_space_warning
File "/users/blissadm/local/bliss.git/bliss/scanning/writer/nexus.py", line 217, in _scan_disk_space_warning
return self.proxy.scan_disk_space_warning(self._scan_name)
File "/users/blissadm/local/bliss.git/bliss/common/tango.py", line 144, in logging_call
ret = tango_func(*args)
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/tango/device_proxy.py", line 275, in f
return dp.command_inout(name, *args, **kwds)
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/tango/green.py", line 195, in greener
return executor.run(fn, args, kwargs, wait=wait, timeout=timeout)
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/tango/green.py", line 114, in run
return self.access(accessor, timeout=timeout)
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/tango/gevent_executor.py", line 155, in access
return accessor.get(timeout=timeout)
File "src/gevent/event.py", line 329, in gevent._gevent_cevent.AsyncResult.get
File "src/gevent/event.py", line 359, in gevent._gevent_cevent.AsyncResult.get
File "src/gevent/event.py", line 347, in gevent._gevent_cevent.AsyncResult.get
File "src/gevent/event.py", line 327, in gevent._gevent_cevent.AsyncResult._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 "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/tango/gevent_executor.py", line 68, in wrapper
return func(*args, **kwargs)
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/tango/connection.py", line 108, in __Connection__command_inout
r = Connection.command_inout_raw(self, name, *args, **kwds)
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/tango/connection.py", line 137, in __Connection__command_inout_raw
return self.__command_inout(cmd_name, param)
PyTango.DevFailed: DevFailed[
DevError[
desc = ValueError: No writer for scan '' exists
origin = Traceback (most recent call last):
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/tango/server.py", line 1142, in cmd
return get_worker().execute(f, self, *args, **kwargs)
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/tango/gevent_executor.py", line 182, in execute
return task.result()
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/tango/gevent_executor.py", line 128, in result
six.reraise(*self.exception)
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/six.py", line 719, in reraise
raise value
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/tango/gevent_executor.py", line 116, in run
self.value = self.func(*self.args, **self.kwargs)
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/tango/log4tango.py", line 130, in log_stream
return f(*args, **kwargs)
File "/users/blissadm/local/bliss.git/nexus_writer_service/tango/servers/NexusWriter.py", line 688, in scan_disk_space_warning
return self.session_writer.scan_disk_space_warning(argin)
File "/users/blissadm/local/bliss.git/nexus_writer_service/subscribers/session_writer.py", line 519, in scan_disk_space_warning
raise ValueError(f"No writer for scan {repr(name)} exists")
ValueError: No writer for scan '' exists
reason = PyDs_PythonError
severity = ERR]
DevError[
desc = Failed to execute command_inout on device id31/nexuswriter/sixc, command scan_disk_space_warning
origin = Connection::command_inout()
reason = API_CommandFailed
severity = ERR]
]
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
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 1770, in _runctx_scan_saving
self.writer.finalize_scan_entry(self)
File "/users/blissadm/local/bliss.git/bliss/scanning/writer/nexus.py", line 41, in _skip_when_fault
return method(self, *args, **kwargs)
File "/users/blissadm/local/bliss.git/bliss/scanning/writer/nexus.py", line 126, in finalize_scan_entry
self._check_writer(timeout=10)
File "/users/blissadm/local/bliss.git/bliss/scanning/writer/nexus.py", line 136, in _check_writer
raise_on_timeout=False,
File "/users/blissadm/local/bliss.git/bliss/scanning/writer/nexus.py", line 284, in _retry
raise RuntimeError(err_msg_show) from cause
RuntimeError: Cannot check Nexus writer scan disk space (Nexus writer ValueError: No writer for scan '' exists)