- Edited
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