heralding icon indicating copy to clipboard operation
heralding copied to clipboard

Python 3.10 fails to start Heralding with errors

Open t3chn0m4g3 opened this issue 2 years ago • 4 comments

Heralding has issues with Python 3.10 with regard to imap and fails to start with the following error:

heralding    | 2022-06-02 14:58:25,244 (heralding.honeypot) Could not start Imap server on port 143. Error: BaseEventLoop.create_server() got an unexpected keyword argument 'loop'
heralding    | 2022-06-02 14:58:25,244 (root) BaseEventLoop.create_server() got an unexpected keyword argument 'loop'
heralding    | Traceback (most recent call last):
heralding    |   File "/usr/bin/heralding", line 163, in <module>
heralding    |     honeypot.start()
heralding    |   File "/usr/lib/python3.10/site-packages/heralding/honeypot.py", line 196, in start
heralding    |     raise ex
heralding    |   File "/usr/lib/python3.10/site-packages/heralding/honeypot.py", line 188, in start
heralding    |     server = self.loop.run_until_complete(server_coro)
heralding    |   File "/usr/lib/python3.10/asyncio/base_events.py", line 646, in run_until_complete
heralding    |     return future.result()
heralding    |   File "/usr/lib/python3.10/asyncio/streams.py", line 84, in start_server
heralding    |     return await loop.create_server(factory, host, port, **kwds)
heralding    | TypeError: BaseEventLoop.create_server() got an unexpected keyword argument 'loop'
heralding    | Traceback (most recent call last):
heralding    |   File "/usr/bin/heralding", line 163, in <module>
heralding    |     honeypot.start()
heralding    |   File "/usr/lib/python3.10/site-packages/heralding/honeypot.py", line 196, in start
heralding    |     raise ex
heralding    |   File "/usr/lib/python3.10/site-packages/heralding/honeypot.py", line 188, in start
heralding    |     server = self.loop.run_until_complete(server_coro)
heralding    |   File "/usr/lib/python3.10/asyncio/base_events.py", line 646, in run_until_complete
heralding    |     return future.result()
heralding    |   File "/usr/lib/python3.10/asyncio/streams.py", line 84, in start_server
heralding    |     return await loop.create_server(factory, host, port, **kwds)
heralding    | TypeError: BaseEventLoop.create_server() got an unexpected keyword argument 'loop'
heralding    |
heralding    | During handling of the above exception, another exception occurred:
heralding    |
heralding    | Traceback (most recent call last):
heralding    |   File "/usr/bin/heralding", line 166, in <module>
heralding    |     honeypot.stop()
heralding    |   File "/usr/lib/python3.10/site-packages/heralding/honeypot.py", line 216, in stop
heralding    |     self.loop.run_until_complete(common.cancel_all_pending_tasks(self.loop))
heralding    |   File "/usr/lib/python3.10/asyncio/base_events.py", line 646, in run_until_complete
heralding    |     return future.result()
heralding    |   File "/usr/lib/python3.10/site-packages/heralding/misc/common.py", line 45, in cancel_all_pending_tasks
heralding    |     await asyncio.wait_for(task, timeout=5, loop=loop)
heralding    | TypeError: wait_for() got an unexpected keyword argument 'loop'

Python 3.9 runs without any issues.

t3chn0m4g3 avatar Jun 02 '22 15:06 t3chn0m4g3

Hello @t3chn0m4g3! Thank you for your report! The problem is loop parameter was removed for many asyncio functions starting from Python 3.10 as well as for asyncio.wait_for - https://docs.python.org/3/library/asyncio-task.html?highlight=wait_for#asyncio.wait_for I think we need to make some adjustments.

kajojify avatar Jun 02 '22 17:06 kajojify

@kajojify Thanks for the swift reply. If you need help with testing please ping me.

t3chn0m4g3 avatar Jun 03 '22 07:06 t3chn0m4g3

@kajojify Have you had the chance yet to take a closer look?

t3chn0m4g3 avatar Oct 14 '22 15:10 t3chn0m4g3

I just ran into this as well on a fresh Ubuntu 22.04 install. Looks like running 3.9 is still the solution for now.

dpeldo avatar Apr 06 '23 14:04 dpeldo

@johnnykv @kajojify Any updates on this?

t3chn0m4g3 avatar Feb 14 '24 20:02 t3chn0m4g3