Skip to content

BrokenResourceError needs handling

When a peer disconnects unexpectedly, it results in anyio.BrokenResourceError being raised.

Example Traceback
Traceback (most recent call last):                                                                                                                                                        
  File "/usr/local/lib/python3.10/runpy.py", line 196, in _run_module_as_main        
    return _run_code(code, main_globals, None,                                       
  File "/usr/local/lib/python3.10/runpy.py", line 86, in _run_code                   
    exec(code, run_globals)                                                          
  File "/usr/local/lib/python3.10/site-packages/dkim_filter.py", line 45, in <module>    
    main()                                                                               
  File "/usr/local/lib/python3.10/site-packages/dkim_filter.py", line 41, in main    
    asyncio.run(serve_filter())                                                      
  File "/usr/local/lib/python3.10/asyncio/runners.py", line 44, in run               
    return loop.run_until_complete(main)                                             
  File "/usr/local/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete    
    return future.result()                                                                    
  File "/usr/local/lib/python3.10/site-packages/dkim_filter.py", line 36, in serve_filter    
    await listener.serve(dkim_filter)                                                        
  File "/usr/local/lib/python3.10/site-packages/anyio/streams/stapled.py", line 124, in serve    
    async with create_task_group() as tg:                                                        
  File "/usr/local/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 662, in __    
aexit__                                                                                          
    raise exceptions[0]                                                              
  File "/usr/local/lib/python3.10/site-packages/anyio/abc/_sockets.py", line 160, in serve    
    async with context_manager:                                                               
  File "/usr/local/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 662, in __    
aexit__                                                                                          
    raise exceptions[0]                                                              
  File "/usr/local/lib/python3.10/site-packages/kilter/service/runner.py", line 99, in __call    
__                                                                                               
    buff[:] = await client.receive(buff.available)                                   
  File "/usr/local/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 1274, in r    
eceive                                                                                           
    raise self._protocol.exception                                                   
anyio.BrokenResourceError

This exception needs handling in runner.py:100

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information