Eventlet is deprecated and broken with trio
Author: davispuhCreated Sep 3, 2026Updated Sep 3, 2026
Describe the bug
If I have eventlet and trio installed then gdbgui breaks with:
Traceback (most recent call last):
File "/usr/bin/gdbgui", line 33, in <module>
sys.exit(load_entry_point('gdbgui==0.15.3.0', 'console_scripts', 'gdbgui')())
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/gdbgui/cli.py", line 249, in main
run_server(
~~~~~~~~~~^
app=app,
^^^^^^^^
...<7 lines>...
certificate=args.cert,
^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/gdbgui/server/server.py", line 68, in run_server
socketio.init_app(app)
~~~~~~~~~~~~~~~~~^^^^^
File "/usr/lib/python3.14/site-packages/flask_socketio/__init__.py", line 257, in init_app
self.server = socketio.Server(**self.server_options)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/socketio/base_server.py", line 34, in __init__
self.eio = self._engineio_server_class()(**engineio_options)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/engineio/base_server.py", line 83, in __init__
self._async = importlib.import_module(
~~~~~~~~~~~~~~~~~~~~~~~^
'engineio.async_drivers.' + mode)._async
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/importlib/__init__.py", line 88, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1406, in _gcd_import
File "<frozen importlib._bootstrap>", line 1371, in _find_and_load
File "<frozen importlib._bootstrap>", line 1342, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 938, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 759, in exec_module
File "<frozen importlib._bootstrap>", line 491, in _call_with_frames_removed
File "/usr/lib/python3.14/site-packages/engineio/async_drivers/eventlet.py", line 1, in <module>
from eventlet.green.threading import Event
File "/usr/lib/python3.14/site-packages/eventlet/__init__.py", line 6, in <module>
from eventlet import convenience
File "/usr/lib/python3.14/site-packages/eventlet/convenience.py", line 7, in <module>
from eventlet.green import socket
File "/usr/lib/python3.14/site-packages/eventlet/green/socket.py", line 21, in <module>
from eventlet.support import greendns
File "/usr/lib/python3.14/site-packages/eventlet/support/greendns.py", line 78, in <module>
setattr(dns, pkg, import_patched('dns.' + pkg))
~~~~~~~~~~~~~~^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/eventlet/support/greendns.py", line 60, in import_patched
return patcher.import_patched(module_name, **modules)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/eventlet/patcher.py", line 138, in import_patched
return inject(
module_name, None, *additional_modules + tuple(kw_additional_modules.items())
)
File "/usr/lib/python3.14/site-packages/eventlet/patcher.py", line 115, in inject
module = __import__(module_name, {}, {}, module_name.split(".")[:-1])
File "/usr/lib/python3.14/site-packages/dns/asyncquery.py", line 34, in <module>
import dns.quic
File "/usr/lib/python3.14/site-packages/dns/quic/__init__.py", line 40, in <module>
import trio
File "/usr/lib/python3.14/site-packages/trio/__init__.py", line 25, in <module>
from . import abc, from_thread, lowlevel, socket, to_thread
File "/usr/lib/python3.14/site-packages/trio/socket.py", line 16, in <module>
from . import _socket
File "/usr/lib/python3.14/site-packages/trio/_socket.py", line 546, in <module>
class SocketType:
...<221 lines>...
raise NotImplementedError
File "/usr/lib/python3.14/site-packages/trio/_socket.py", line 759, in SocketType
@_wraps(_stdlib_socket.socket.sendmsg, assigned=(), updated=())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: type object 'GreenSocket' has no attribute 'sendmsg'To Reproduce Steps to reproduce the behavior:
- Have
engineio 4.13.3,trio 0.34.0andeventlet 0.41.0 - Run
gdbgui
Expected behavior No error :)
Please complete the following information:
- OS: Arch Linux
- gdbgui version (
gdbgui -v): 0.15.3.0 - gdb version (
gdb -v): 17.2 - browser [e.g. chrome, safari]: firefox
Additional context
If I remove eventlet or trio then it seems to be working fine.
Also this seems to be quite common error with eventlet + trio is just broken, see python-trio/trio#3015 eventlet/eventlet#1075 eventlet/eventlet#1045
Without trio
$ python -c 'import eventlet'
<string>:1: EventletDeprecationWarning:
Eventlet is deprecated. It is currently being maintained in bugfix mode, and
we strongly recommend against using it for new projects.
If you are already using Eventlet, we recommend migrating to a different
framework. For more detail see
https://eventlet.readthedocs.io/en/latest/asyncio/migration.htmlSource: cs01/gdbgui