It never happens when called outside of the kernel. It seems like this part of the problem has gone away, but If I see it again I'll let you know what was going on.
Now I get this error randomly when writing to a dataset.
INFO:worker(492,manual_control.py):print:Traceback (most recent call last):
INFO:worker(492,manual_control.py):print: File "/home/ioncontroller/artiq/hci-artiq/repository/manual_control.py", line 296, in write
INFO:worker(492,manual_control.py):print: self.set_dataset("dds_conf", dds_conf, broadcast=True, archive=False, persist=True)
INFO:worker(492,manual_control.py):print: File "/home/ioncontroller/anaconda3/envs/artiq/lib/python3.5/site-packages/artiq/language/environment.py", line 328, in set_dataset
INFO:worker(492,manual_control.py):print: self.__dataset_mgr.set(key, value, broadcast, persist, archive)
INFO:worker(492,manual_control.py):print: File "/home/ioncontroller/anaconda3/envs/artiq/lib/python3.5/site-packages/artiq/master/worker_db.py", line 128, in set
INFO:worker(492,manual_control.py):print: self._broadcaster[key] = persist, value
INFO:worker(492,manual_control.py):print: File "/home/ioncontroller/anaconda3/envs/artiq/lib/python3.5/site-packages/sipyco/sync_struct.py", line 245, in __setitem__
INFO:worker(492,manual_control.py):print: "value": value})
INFO:worker(492,manual_control.py):print: File "/home/ioncontroller/anaconda3/envs/artiq/lib/python3.5/site-packages/artiq/master/worker_impl.py", line 51, in parent_action
INFO:worker(492,manual_control.py):print: reply = get_object()
INFO:worker(492,manual_control.py):print: File "/home/ioncontroller/anaconda3/envs/artiq/lib/python3.5/site-packages/artiq/master/worker_impl.py", line 39, in get_object
INFO:worker(492,manual_control.py):print: return pyon.decode(line)
INFO:worker(492,manual_control.py):print: File "/home/ioncontroller/anaconda3/envs/artiq/lib/python3.5/site-packages/sipyco/pyon.py", line 210, in decode
INFO:worker(492,manual_control.py):print: return eval(s, _eval_dict, {})
INFO:worker(492,manual_control.py):print: File "<string>", line 1
INFO:worker(492,manual_control.py):print: .0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "status": "ok"}
INFO:worker(492,manual_control.py):print: ^
INFO:worker(492,manual_control.py):print:SyntaxError: invalid syntax
ERROR:master:artiq.master.scheduler:got worker exception in run stage, deleting RID 492
ERROR:master:artiq.master.worker:worker exception details
Traceback (most recent call last):
File "/home/ioncontroller/anaconda3/envs/artiq/lib/python3.5/site-packages/artiq/master/scheduler.py", line 273, in _do
completed = await run.run()
File "/home/ioncontroller/anaconda3/envs/artiq/lib/python3.5/site-packages/artiq/master/scheduler.py", line 34, in worker_method
return await m(*args, **kwargs)
File "/home/ioncontroller/anaconda3/envs/artiq/lib/python3.5/site-packages/artiq/master/worker.py", line 278, in run
completed = await self._worker_action({"action": "run"})
File "/home/ioncontroller/anaconda3/envs/artiq/lib/python3.5/site-packages/artiq/master/worker.py", line 252, in _worker_action
completed = await self._handle_worker_requests()
File "/home/ioncontroller/anaconda3/envs/artiq/lib/python3.5/site-packages/artiq/master/worker.py", line 208, in _handle_worker_requests
obj = await self._recv(self.watchdog_time())
File "/home/ioncontroller/anaconda3/envs/artiq/lib/python3.5/site-packages/artiq/master/worker.py", line 195, in _recv
format(self.rid))
artiq.master.worker.WorkerError: Worker ended while attempting to receive data (RID 492)
The dataset is just 32 0.0s.