-
-
Notifications
You must be signed in to change notification settings - Fork 618
Closed
Labels
Description
Hello,
Thank you for this amazing library.
Just a wee heads up I spotted a small issue.
Initially, I was running my socketio.AsyncServer perfectly fine like so:
import socketio
from aiohttp import web
sio = socketio.AsyncServer(async_mode='aiohttp')
app = web.Application()
sio.attach(app)
# event handlers and stuff here...
if __name__ == '__main__':
web.run_app(app)
then, in the same venv, for another thing (i was just experimenting) I pip installed eventlet.
With no changes to the above code at all, i then got the error posted at the end. My server wouldn not run.
After some head scratching, I tried installing eventlet, and the error went away.
Conscious having two async web frameworks in one venv may be bad practice, however the param async_mode='aiohttp' i guess implies you can force one to be selected.
It just surprised me that even having eventlet in my venv caused this error.
Many thanks
bus % python bus.py
Traceback (most recent call last):
File "/usr/local/Cellar/[email protected]/3.9.5/Frameworks/Python.framework/Versions/3.9/lib/python3.9/asyncio/selector_events.py", line 261, in _add_reader
key = self._selector.get_key(fd)
File "/usr/local/Cellar/[email protected]/3.9.5/Frameworks/Python.framework/Versions/3.9/lib/python3.9/selectors.py", line 193, in get_key
raise KeyError("{!r} is not registered".format(fileobj)) from None
KeyError: '5 is not registered'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/benjamindyer/fh/ptarmigan/src/bus/bus.py", line 43, in <module>
web.run_app(app)
File "/Users/benjamindyer/fh/ptarmigan/ptarmigan-venv/lib/python3.9/site-packages/aiohttp/web.py", line 479, in run_app
loop = asyncio.get_event_loop()
File "/usr/local/Cellar/[email protected]/3.9.5/Frameworks/Python.framework/Versions/3.9/lib/python3.9/asyncio/events.py", line 639, in get_event_loop
self.set_event_loop(self.new_event_loop())
File "/usr/local/Cellar/[email protected]/3.9.5/Frameworks/Python.framework/Versions/3.9/lib/python3.9/asyncio/events.py", line 659, in new_event_loop
return self._loop_factory()
File "/usr/local/Cellar/[email protected]/3.9.5/Frameworks/Python.framework/Versions/3.9/lib/python3.9/asyncio/unix_events.py", line 54, in __init__
super().__init__(selector)
File "/usr/local/Cellar/[email protected]/3.9.5/Frameworks/Python.framework/Versions/3.9/lib/python3.9/asyncio/selector_events.py", line 61, in __init__
self._make_self_pipe()
File "/usr/local/Cellar/[email protected]/3.9.5/Frameworks/Python.framework/Versions/3.9/lib/python3.9/asyncio/selector_events.py", line 112, in _make_self_pipe
self._add_reader(self._ssock.fileno(), self._read_from_self)
File "/usr/local/Cellar/[email protected]/3.9.5/Frameworks/Python.framework/Versions/3.9/lib/python3.9/asyncio/selector_events.py", line 263, in _add_reader
self._selector.register(fd, selectors.EVENT_READ,
File "/usr/local/Cellar/[email protected]/3.9.5/Frameworks/Python.framework/Versions/3.9/lib/python3.9/selectors.py", line 523, in register
self._selector.control([kev], 0, 0)
TypeError: changelist must be an iterable of select.kevent objects
Exception ignored in: <function BaseEventLoop.__del__ at 0x1091fd700>
Traceback (most recent call last):
File "/usr/local/Cellar/[email protected]/3.9.5/Frameworks/Python.framework/Versions/3.9/lib/python3.9/asyncio/base_events.py", line 683, in __del__
self.close()
File "/usr/local/Cellar/[email protected]/3.9.5/Frameworks/Python.framework/Versions/3.9/lib/python3.9/asyncio/unix_events.py", line 63, in close
if self._signal_handlers:
AttributeError: '_UnixSelectorEventLoop' object has no attribute '_signal_handlers'