Dashboard cannot connect with remote moninj and coreanalyzer proxy
Closed this issue · 5 comments
Bug Report
One-Line Summary
Dashboard cannot connect with remote moninj and coreanalyzer proxy
Issue Details
Steps to Reproduce
- Have
artiq_master
,aqctl_moninj_proxy
, andaqctl_coreanalyzer_proxy
run on a remote computer, e.g.,ctrl
. - Start the dashboard from a different computer in the network of
ctrl
viaartiq_dashboard -s ctrl
Expected Behavior
Dashboard successfully connects to moninj and coreanalyzer proxy.
Actual (undesired) Behavior
The terminal output of artiq_dashboard -s ctrl
as well as the logging table of the dashboard GUI constantly print error messages, e.g.:
ConnectionRefusedError: [Errno 111] Connect call failed ('::1', 1385, 0, 0)
ERROR:dashboard:artiq.dashboard.moninj:failed to connect to moninj. Is aqctl_moninj_proxy running?
Traceback (most recent call last):
File "/nix/store/nhxybj21xn8ipaairklzl0jg2jg7fyi7-python3.11-artiq-8.0+554d7bd/lib/python3.11/site-packages/artiq/dashboard/moninj.py", line 725, in mi_connector
await new_mi_connection.connect(self.mi_addr, self.mi_port)
File "/nix/store/nhxybj21xn8ipaairklzl0jg2jg7fyi7-python3.11-artiq-8.0+554d7bd/lib/python3.11/site-packages/artiq/coredevice/comm_moninj.py", line 32, in connect
self._reader, self._writer = await async_open_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/vv837g1qs47j1hgsgvvyb4cyf82g5zjk-python3.11-sipyco-1.7/lib/python3.11/site-packages/sipyco/keepalive.py", line 80, in async_open_connection
reader, writer = await asyncio.open_connection(host, port, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/streams.py", line 48, in open_connection
transport, _ = await loop.create_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/base_events.py", line 1086, in create_connection
raise exceptions[0]
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/base_events.py", line 1070, in create_connection
sock = await self._connect_sock(
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/base_events.py", line 974, in _connect_sock
await self.sock_connect(sock, address)
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/selector_events.py", line 638, in sock_connect
return await fut
^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/selector_events.py", line 678, in _sock_connect_cb
raise OSError(err, f'Connect call failed {address}')
ConnectionRefusedError: [Errno 111] Connect call failed ('::1', 1383, 0, 0)
Your System (omit irrelevant parts)
- ARTIQ version:
ARTIQ v8.0+554d7bd
Background
I think https://github.com/m-labs/artiq/blob/master/artiq/dashboard/moninj.py#L427 should use the server address from the command line instead of the host from the device_db (?) (or localhost). Same with the coreanalyzer
What's your device database?
You need to update the entries for these controllers if it's not just localhost in your setup.
Additionally, the controllers need to bind the network address and not just localhost. IIRC that's in the manual.
I updated the device_db.py
to
# Autogenerated for the main variant
core_addr = "192.168.0.1"
ctrl_addr = "10.163.100.12"
device_db = {
"core": {
"type": "local",
"module": "artiq.coredevice.core",
"class": "Core",
"arguments": {
"host": core_addr,
"ref_period": 1e-09,
"analyzer_proxy": "core_analyzer",
"target": "rv32g",
"satellite_cpu_targets": {},
},
},
"core_log": {
"type": "controller",
"host": "::1",
"port": 1068,
"command": "aqctl_corelog -p {port} --bind {bind} " + core_addr,
},
"core_moninj": {
"type": "controller",
"host": ctrl_addr,
"port_proxy": 1383,
"port": 1384,
"command": "aqctl_moninj_proxy --port-proxy {port_proxy} --port-control {port} --bind {bind} "
+ core_addr,
},
"core_analyzer": {
"type": "controller",
"host": ctrl_addr,
"port_proxy": 1385,
"port": 1386,
"command": "aqctl_coreanalyzer_proxy --port-proxy {port_proxy} --port-control {port} --bind {bind} "
+ core_addr,
},
"core_cache": {
"type": "local",
"module": "artiq.coredevice.cache",
"class": "CoreCache",
},
"core_dma": {"type": "local", "module": "artiq.coredevice.dma", "class": "CoreDMA"},
"i2c_switch0": {
"type": "local",
"module": "artiq.coredevice.i2c",
"class": "I2CSwitch",
"arguments": {"address": 0xE0},
},
"i2c_switch1": {
"type": "local",
"module": "artiq.coredevice.i2c",
"class": "I2CSwitch",
"arguments": {"address": 0xE2},
},
}
// ... peripherals
but now get a timeout and name resolution errors:
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/nix/store/nhxybj21xn8ipaairklzl0jg2jg7fyi7-python3.11-artiq-8.0+554d7bd/lib/python3.11/site-packages/artiq/dashboard/waveform.py", line 78, in _reconnect
await asyncio.wait_for(new_receiver.connect(self.addr, self.port_proxy),
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/tasks.py", line 502, in wait_for
raise exceptions.TimeoutError() from exc
TimeoutError
ERROR:dashboard:artiq.dashboard.moninj:failed to connect to moninj. Is aqctl_moninj_proxy running?
Traceback (most recent call last):
File "/nix/store/nhxybj21xn8ipaairklzl0jg2jg7fyi7-python3.11-artiq-8.0+554d7bd/lib/python3.11/site-packages/artiq/dashboard/moninj.py", line 725, in mi_connector
await new_mi_connection.connect(self.mi_addr, self.mi_port)
File "/nix/store/nhxybj21xn8ipaairklzl0jg2jg7fyi7-python3.11-artiq-8.0+554d7bd/lib/python3.11/site-packages/artiq/coredevice/comm_moninj.py", line 32, in connect
self._reader, self._writer = await async_open_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/vv837g1qs47j1hgsgvvyb4cyf82g5zjk-python3.11-sipyco-1.7/lib/python3.11/site-packages/sipyco/keepalive.py", line 80, in async_open_connection
reader, writer = await asyncio.open_connection(host, port, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/streams.py", line 48, in open_connection
transport, _ = await loop.create_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/base_events.py", line 1046, in create_connection
infos = await self._ensure_resolved(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/base_events.py", line 1420, in _ensure_resolved
return await loop.getaddrinfo(host, port, family=family, type=type,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/base_events.py", line 868, in getaddrinfo
return await self.run_in_executor(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/aw9aizaf8cx0x19kjxswink5fgvz84kq-python3.11-qasync-0.24.1/lib/python3.11/site-packages/qasync/__init__.py", line 150, in run
r = callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/socket.py", line 962, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
socket.gaierror: [Errno -3] Temporary failure in name resolution
ERROR:dashboard:artiq.dashboard.waveform:error connecting to analyzer proxy
Traceback (most recent call last):
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/tasks.py", line 500, in wait_for
return fut.result()
^^^^^^^^^^^^
File "/nix/store/nhxybj21xn8ipaairklzl0jg2jg7fyi7-python3.11-artiq-8.0+554d7bd/lib/python3.11/site-packages/artiq/coredevice/comm_analyzer.py", line 157, in connect
await keepalive.async_open_connection(host, port)
File "/nix/store/vv837g1qs47j1hgsgvvyb4cyf82g5zjk-python3.11-sipyco-1.7/lib/python3.11/site-packages/sipyco/keepalive.py", line 80, in async_open_connection
reader, writer = await asyncio.open_connection(host, port, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/streams.py", line 48, in open_connection
transport, _ = await loop.create_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/base_events.py", line 1046, in create_connection
infos = await self._ensure_resolved(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/base_events.py", line 1420, in _ensure_resolved
return await loop.getaddrinfo(host, port, family=family, type=type,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/base_events.py", line 868, in getaddrinfo
return await self.run_in_executor(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncio.exceptions.CancelledError
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/nix/store/nhxybj21xn8ipaairklzl0jg2jg7fyi7-python3.11-artiq-8.0+554d7bd/lib/python3.11/site-packages/artiq/dashboard/waveform.py", line 78, in _reconnect
await asyncio.wait_for(new_receiver.connect(self.addr, self.port_proxy),
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/tasks.py", line 502, in wait_for
raise exceptions.TimeoutError() from exc
TimeoutError
ERROR:dashboard:artiq.dashboard.waveform:error connecting to analyzer proxy
Traceback (most recent call last):
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/tasks.py", line 500, in wait_for
return fut.result()
^^^^^^^^^^^^
File "/nix/store/nhxybj21xn8ipaairklzl0jg2jg7fyi7-python3.11-artiq-8.0+554d7bd/lib/python3.11/site-packages/artiq/coredevice/comm_analyzer.py", line 157, in connect
await keepalive.async_open_connection(host, port)
File "/nix/store/vv837g1qs47j1hgsgvvyb4cyf82g5zjk-python3.11-sipyco-1.7/lib/python3.11/site-packages/sipyco/keepalive.py", line 80, in async_open_connection
reader, writer = await asyncio.open_connection(host, port, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/streams.py", line 48, in open_connection
transport, _ = await loop.create_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/base_events.py", line 1046, in create_connection
infos = await self._ensure_resolved(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/base_events.py", line 1420, in _ensure_resolved
return await loop.getaddrinfo(host, port, family=family, type=type,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/base_events.py", line 868, in getaddrinfo
return await self.run_in_executor(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncio.exceptions.CancelledError
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/nix/store/nhxybj21xn8ipaairklzl0jg2jg7fyi7-python3.11-artiq-8.0+554d7bd/lib/python3.11/site-packages/artiq/dashboard/waveform.py", line 78, in _reconnect
await asyncio.wait_for(new_receiver.connect(self.addr, self.port_proxy),
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/tasks.py", line 502, in wait_for
raise exceptions.TimeoutError() from exc
TimeoutError
ERROR:dashboard:artiq.dashboard.moninj:failed to connect to moninj. Is aqctl_moninj_proxy running?
Traceback (most recent call last):
File "/nix/store/nhxybj21xn8ipaairklzl0jg2jg7fyi7-python3.11-artiq-8.0+554d7bd/lib/python3.11/site-packages/artiq/dashboard/moninj.py", line 725, in mi_connector
await new_mi_connection.connect(self.mi_addr, self.mi_port)
File "/nix/store/nhxybj21xn8ipaairklzl0jg2jg7fyi7-python3.11-artiq-8.0+554d7bd/lib/python3.11/site-packages/artiq/coredevice/comm_moninj.py", line 32, in connect
self._reader, self._writer = await async_open_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/vv837g1qs47j1hgsgvvyb4cyf82g5zjk-python3.11-sipyco-1.7/lib/python3.11/site-packages/sipyco/keepalive.py", line 80, in async_open_connection
reader, writer = await asyncio.open_connection(host, port, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/streams.py", line 48, in open_connection
transport, _ = await loop.create_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/base_events.py", line 1046, in create_connection
infos = await self._ensure_resolved(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/base_events.py", line 1420, in _ensure_resolved
return await loop.getaddrinfo(host, port, family=family, type=type,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/base_events.py", line 868, in getaddrinfo
return await self.run_in_executor(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/aw9aizaf8cx0x19kjxswink5fgvz84kq-python3.11-qasync-0.24.1/lib/python3.11/site-packages/qasync/__init__.py", line 150, in run
r = callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/socket.py", line 962, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
socket.gaierror: [Errno -3] Temporary failure in name resolution
ERROR:dashboard:artiq.dashboard.waveform:error connecting to analyzer proxy
Traceback (most recent call last):
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/tasks.py", line 500, in wait_for
return fut.result()
^^^^^^^^^^^^
File "/nix/store/nhxybj21xn8ipaairklzl0jg2jg7fyi7-python3.11-artiq-8.0+554d7bd/lib/python3.11/site-packages/artiq/coredevice/comm_analyzer.py", line 157, in connect
await keepalive.async_open_connection(host, port)
File "/nix/store/vv837g1qs47j1hgsgvvyb4cyf82g5zjk-python3.11-sipyco-1.7/lib/python3.11/site-packages/sipyco/keepalive.py", line 80, in async_open_connection
reader, writer = await asyncio.open_connection(host, port, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/streams.py", line 48, in open_connection
transport, _ = await loop.create_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/base_events.py", line 1046, in create_connection
infos = await self._ensure_resolved(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/base_events.py", line 1420, in _ensure_resolved
return await loop.getaddrinfo(host, port, family=family, type=type,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/base_events.py", line 868, in getaddrinfo
return await self.run_in_executor(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncio.exceptions.CancelledError
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/nix/store/nhxybj21xn8ipaairklzl0jg2jg7fyi7-python3.11-artiq-8.0+554d7bd/lib/python3.11/site-packages/artiq/dashboard/waveform.py", line 78, in _reconnect
await asyncio.wait_for(new_receiver.connect(self.addr, self.port_proxy),
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/tasks.py", line 502, in wait_for
raise exceptions.TimeoutError() from exc
TimeoutError
ERROR:dashboard:artiq.dashboard.moninj:failed to connect to moninj. Is aqctl_moninj_proxy running?
Traceback (most recent call last):
File "/nix/store/nhxybj21xn8ipaairklzl0jg2jg7fyi7-python3.11-artiq-8.0+554d7bd/lib/python3.11/site-packages/artiq/dashboard/moninj.py", line 725, in mi_connector
await new_mi_connection.connect(self.mi_addr, self.mi_port)
File "/nix/store/nhxybj21xn8ipaairklzl0jg2jg7fyi7-python3.11-artiq-8.0+554d7bd/lib/python3.11/site-packages/artiq/coredevice/comm_moninj.py", line 32, in connect
self._reader, self._writer = await async_open_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/vv837g1qs47j1hgsgvvyb4cyf82g5zjk-python3.11-sipyco-1.7/lib/python3.11/site-packages/sipyco/keepalive.py", line 80, in async_open_connection
reader, writer = await asyncio.open_connection(host, port, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/streams.py", line 48, in open_connection
transport, _ = await loop.create_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/base_events.py", line 1046, in create_connection
infos = await self._ensure_resolved(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/base_events.py", line 1420, in _ensure_resolved
return await loop.getaddrinfo(host, port, family=family, type=type,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/base_events.py", line 868, in getaddrinfo
return await self.run_in_executor(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/aw9aizaf8cx0x19kjxswink5fgvz84kq-python3.11-qasync-0.24.1/lib/python3.11/site-packages/qasync/__init__.py", line 150, in run
r = callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/socket.py", line 962, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
socket.gaierror: [Errno -3] Temporary failure in name resolution
ERROR:dashboard:artiq.dashboard.waveform:error connecting to analyzer proxy
Traceback (most recent call last):
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/tasks.py", line 500, in wait_for
return fut.result()
^^^^^^^^^^^^
File "/nix/store/nhxybj21xn8ipaairklzl0jg2jg7fyi7-python3.11-artiq-8.0+554d7bd/lib/python3.11/site-packages/artiq/coredevice/comm_analyzer.py", line 157, in connect
await keepalive.async_open_connection(host, port)
File "/nix/store/vv837g1qs47j1hgsgvvyb4cyf82g5zjk-python3.11-sipyco-1.7/lib/python3.11/site-packages/sipyco/keepalive.py", line 80, in async_open_connection
reader, writer = await asyncio.open_connection(host, port, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/streams.py", line 48, in open_connection
transport, _ = await loop.create_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/base_events.py", line 1046, in create_connection
infos = await self._ensure_resolved(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/base_events.py", line 1420, in _ensure_resolved
return await loop.getaddrinfo(host, port, family=family, type=type,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/base_events.py", line 868, in getaddrinfo
return await self.run_in_executor(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncio.exceptions.CancelledError
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/nix/store/nhxybj21xn8ipaairklzl0jg2jg7fyi7-python3.11-artiq-8.0+554d7bd/lib/python3.11/site-packages/artiq/dashboard/waveform.py", line 78, in _reconnect
await asyncio.wait_for(new_receiver.connect(self.addr, self.port_proxy),
File "/nix/store/4rf5qybw37b4lh1g0xczlv14sqdbmnpm-python3-3.11.9/lib/python3.11/asyncio/tasks.py", line 502, in wait_for
raise exceptions.TimeoutError() from exc
TimeoutError
I checked that the proxies are running on the server by telnet 10.163.100.12 <port>
where <port>
is 1383-1386
When I try to open artiq_dashboard
on ctrl
which has a direct connection to the core device, I get a "Device or Resource busy" error (I also changed ctrl_addr
in device_db.py
on the master computer back to ::1
to not go over the network but same error). Telnetting to the ports via ::1
works.
Problem solved. For future reference:
Introduce a new variable to overwrite the host
key in the core_moninj
and core_analyzer
devices in the device_db.py
.
Potential pitfalls:
Even artiq_dashboard
runs local, it uses the device_db.py
from the computer running artiq_master
, which might be out of sync, if you haven't commited and pushed changes to the repository used by artiq_master
.
(In case you are using a git hook, you need to add artiq_client scan-devices
.
Furthermore, the computer running artiq_master
was not able to do DNS lookups - although it works in the shell - so we will use IPs for now.
artiq_master does not use the repository for the device database, only for experiments.