thearchitector/aiter-timeouts

Timeout exceptions are not picklable

Closed this issue · 1 comments

Custom exceptions for iterator and iteration timeouts do not appear to be picklable, and cause a serialization error if they need to be saved / passed between processes (possibly threads as well).

concurrent.futures.process._RemoteTraceback: 
'''
**Traceback (most recent call last):
  File "/usr/lib/python3.10/concurrent/futures/process.py", line 392, in wait_result_broken_or_wakeup
    result_item = result_reader.recv()
  File "/usr/lib/python3.10/multiprocessing/connection.py", line 251, in recv
    return _ForkingPickler.loads(buf.getbuffer())
TypeError: IterationTimeoutError.__init__() missing 1 required positional argument: 'step'
'''**

root cause: custom exceptions with arguments need to provide those args to super.init, contrary to what would be expected.

resolved in 1.1.0