We changed the IP addresses in our lab recently and afterwards the Newfocus motor mirror could not communicate with ARTIQ. ARTIQ itself is running without issue. After restarting the Windows PC, I can reach the mirror controller with a normal ping
in a shell and I also can connect to it successfully with the Newfocus software and read e.g. the device ID. When starting artiq_ctlmgr
, I receive an error after some time, though:
WARNING:controller(motor1):newfocus8742.protocol:ping failed
Traceback (most recent call last):
File "C:\Users\ybion443\.conda\envs\artiq-7-1\lib\site-packages\newfocus8742\protocol.py", line 311, in ping
await self.ask("VE?")
File "C:\Users\ybion443\.conda\envs\artiq-7-1\lib\site-packages\newfocus8742\protocol.py", line 71, in ask
ret = await self._readline()
File "C:\Users\ybion443\.conda\envs\artiq-7-1\lib\site-packages\newfocus8742\tcp.py", line 46, in _readline
r = await self._reader.readline()
File "C:\Users\ybion443\.conda\envs\artiq-7-1\lib\asyncio\streams.py", line 528, in readline
line = await self.readuntil(sep)
File "C:\Users\ybion443\.conda\envs\artiq-7-1\lib\asyncio\streams.py", line 620, in readuntil
await self._wait_for_data('readuntil')
File "C:\Users\ybion443\.conda\envs\artiq-7-1\lib\asyncio\streams.py", line 505, in _wait_for_data
await self._waiter
RuntimeError: Task <Task pending name='Task-12' coro=<Server._handle_connection_cr() running at C:\Users\ybion443\.conda\envs\artiq-7-1\lib\site-packages\sipyco\pc_rpc.py:614> cb=[AsyncioServer._client_done()]> got Future <Future pending> attached to a different loop
WARNING:ctlmgr(n18113):artiq_comtools.ctlmgr:Controller motor1 ping failed
WARNING:ctlmgr(n18113):artiq_comtools.ctlmgr:Controller motor1 exited
WARNING:ctlmgr(n18113):artiq_comtools.ctlmgr:Restarting in 5.0 seconds
The device_db entry for this device is:
"motor1": {
"type": "controller",
"host": "::1",
"port": 3268,
"command": "aqctl_newfocus8742 -p {port} --bind {bind} --tcp c19967"
}
Changing the name in the network to the static IP did not fix the issue. If I run an instance of the sipyco
server with aqctl_newfocus8742 -p 3268 --tcp c19967
and talk to the server with sipyco_rpctool ::1 3268 ping
from a separate shell, I get the following error on the server:
WARNING<15>:newfocus8742.protocol:ping failed
Traceback (most recent call last):
File "C:\Users\ybion443\.conda\envs\artiq-7-1\lib\site-packages\newfocus8742\protocol.py", line 311, in ping
await self.ask("VE?")
File "C:\Users\ybion443\.conda\envs\artiq-7-1\lib\site-packages\newfocus8742\protocol.py", line 71, in ask
ret = await self._readline()
File "C:\Users\ybion443\.conda\envs\artiq-7-1\lib\site-packages\newfocus8742\tcp.py", line 46, in _readline
r = await self._reader.readline()
File "C:\Users\ybion443\.conda\envs\artiq-7-1\lib\asyncio\streams.py", line 528, in readline
line = await self.readuntil(sep)
File "C:\Users\ybion443\.conda\envs\artiq-7-1\lib\asyncio\streams.py", line 620, in readuntil
await self._wait_for_data('readuntil')
File "C:\Users\ybion443\.conda\envs\artiq-7-1\lib\asyncio\streams.py", line 505, in _wait_for_data
await self._waiter
RuntimeError: Task <Task pending name='Task-11' coro=<Server._handle_connection_cr() running at C:\Users\ybion443\.conda\envs\artiq-7-1\lib\site-packages\sipyco\pc_rpc.py:614> cb=[AsyncioServer._client_done()]> got Future <Future pending> attached to a different loop
Before the network changes, I could use the mirror motor with the same configuration without issue, but I don't see immediately how this error is related to that. Other controllers, such as influx_db
and core_moninj
do not show this behaviour. I also power-cycled the mirror controller itself, but this did not change the error. How can I fix this issue?
ARTIQ version: ARTIQ v7.8116.eba143a
Operating system: Windows 10