I can reproduce the error on Windows using conda. I freshly flashed our boards with ARTIQ-7.8123.3038639 and run into the same problems without the self.a
hack. Running a simple script returns:
ConnectionResetError: Core device connection closed unexpectedly
with the artiq_coremgmt reporting the LoadFault
exception:
[ 3089.777900s] INFO(kernel): panic at ksupport/lib.rs:523:5: Exception(LoadFault) at PC 0x45060164, trap value 0x45061010
[ 3089.787890s] ERROR(runtime::session): session aborted: unexpected request RunAborted from kernel CPU
When inserting the hack from above and runnning the script again, these error messages disappear.
If I run the hacked script via the dashboard the experiment is excecuted, but I get a warning
INFO:dashboard:root:ARTIQ dashboard version: 7.8123.3038639
INFO:dashboard:root:ARTIQ dashboard connected to moninj_proxy (::1)
INFO:dashboard:artiq.dashboard.experiments:Submitted 'repo:tests/TestSimple', RID is 272
ERROR:dashboard:artiq.dashboard.moninj:failed to connect to moninj. Is aqctl_moninj_proxy running?
Traceback (most recent call last):
File "C:\tools\miniconda3\envs\artiq-7\lib\site-packages\artiq\dashboard\moninj.py", line 693, in mi_connector
await new_mi_connection.connect(self.mi_addr, self.mi_port)
File "C:\tools\miniconda3\envs\artiq-7\lib\site-packages\artiq\coredevice\comm_moninj.py", line 32, in connect
self._reader, self._writer = await async_open_connection(
File "C:\tools\miniconda3\envs\artiq-7\lib\site-packages\sipyco\keepalive.py", line 80, in async_open_connection
reader, writer = await asyncio.open_connection(host, port, *args, **kwargs)
File "C:\tools\miniconda3\envs\artiq-7\lib\asyncio\streams.py", line 47, in open_connection
transport, _ = await loop.create_connection(
File "C:\tools\miniconda3\envs\artiq-7\lib\asyncio\base_events.py", line 1064, in create_connection
raise exceptions[0]
File "C:\tools\miniconda3\envs\artiq-7\lib\asyncio\base_events.py", line 1049, in create_connection
sock = await self._connect_sock(
File "C:\tools\miniconda3\envs\artiq-7\lib\asyncio\base_events.py", line 960, in _connect_sock
await self.sock_connect(sock, address)
File "C:\tools\miniconda3\envs\artiq-7\lib\asyncio\proactor_events.py", line 705, in sock_connect
return await self._proactor.connect(sock, address)
File "C:\tools\miniconda3\envs\artiq-7\lib\site-packages\qasync\_windows.py", line 43, in _process_events
value = callback(transferred, key, ov)
File "C:\tools\miniconda3\envs\artiq-7\lib\asyncio\windows_events.py", line 604, in finish_connect
ov.getresult()
ConnectionRefusedError: [WinError 1225] The remote computer refused the network connection
Starting aqctl_moninj_proxy
manually does not help the situation.
Additionally the core is not available during the prepare. Excecuting e.g. print(f"{self.core.get_rtio_destination_status(10) = }")
during the prepare
method returns the same error message from above with or without the self.a
workaround:
ConnectionResetError: Core device connection closed unexpectedly