Package: python3-eventlet
Version: 0.33.1-4
Severity: important
Tags: upstream
Forwarded: https://github.com/eventlet/eventlet/issues/805
X-Debbugs-Cc: onit...@gmail.com
Control: affects -1 cura

Dear Maintainer,

The eventlet module has a known incompatibility with dnspython 0.24, that
causes it to throw exceptions of the form: AttributeError: module
'eventlet.green.select' has no attribute 'epoll'

One example is cura 5.0.0, which won't start start any more due to this bug
(full report further below):

/usr/lib/python3/dist-packages/eventlet/support/greenlets.py:6:
DeprecationWarning: distutils Version classes are deprecated. Use
packaging.version instead.
  preserves_excinfo = (distutils.version.LooseVersion(greenlet.__version__)
...
  File "/usr/bin/cura", line 30, in <module>
    import sentry_sdk
...
  File "/usr/lib/python3/dist-packages/trio/_core/_io_epoll.py", line 190, in
EpollIOManager
    _epoll = attr.ib(factory=select.epoll)
                             ^^^^^^^^^^^^
AttributeError: module 'eventlet.green.select' has no attribute 'epoll'

Please provide a fix for this issue as soon as one is available from upstream,
or pin to dnspython to 0.23 until this is fixed (which would break on
sid/trixie, because dnspython 0.23 isn't available there).

Thanks.


Full output from cura:

/usr/lib/python3/dist-packages/UM/PluginRegistry.py:4: DeprecationWarning: the
imp module is deprecated in favour of importlib and slated for removal in
Python 3.12; see the module's documentation for alternative uses
  import imp
/usr/lib/python3/dist-packages/eventlet/support/greenlets.py:6:
DeprecationWarning: distutils Version classes are deprecated. Use
packaging.version instead.
  preserves_excinfo = (distutils.version.LooseVersion(greenlet.__version__)
Traceback (most recent call last):
  File "/usr/bin/cura", line 30, in <module>
    import sentry_sdk
  File "/usr/lib/python3/dist-packages/sentry_sdk/__init__.py", line 1, in
<module>
    from sentry_sdk.hub import Hub, init
  File "/usr/lib/python3/dist-packages/sentry_sdk/hub.py", line 8, in <module>
    from sentry_sdk.scope import Scope
  File "/usr/lib/python3/dist-packages/sentry_sdk/scope.py", line 7, in
<module>
    from sentry_sdk.utils import logger, capture_internal_exceptions
  File "/usr/lib/python3/dist-packages/sentry_sdk/utils.py", line 925, in
<module>
    HAS_REAL_CONTEXTVARS, ContextVar = _get_contextvars()
                                       ^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/sentry_sdk/utils.py", line 895, in
_get_contextvars
    if not _is_contextvars_broken():
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/sentry_sdk/utils.py", line 856, in
_is_contextvars_broken
    from eventlet.patcher import is_monkey_patched  # type: ignore
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/eventlet/__init__.py", line 17, in
<module>
    from eventlet import convenience
  File "/usr/lib/python3/dist-packages/eventlet/convenience.py", line 7, in
<module>
    from eventlet.green import socket
  File "/usr/lib/python3/dist-packages/eventlet/green/socket.py", line 21, in
<module>
    from eventlet.support import greendns
  File "/usr/lib/python3/dist-packages/eventlet/support/greendns.py", line 79,
in <module>
    setattr(dns, pkg, import_patched('dns.' + pkg))
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/eventlet/support/greendns.py", line 61,
in import_patched
    return patcher.import_patched(module_name, **modules)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/eventlet/patcher.py", line 132, in
import_patched
    return inject(
           ^^^^^^^
  File "/usr/lib/python3/dist-packages/eventlet/patcher.py", line 109, in
inject
    module = __import__(module_name, {}, {}, module_name.split('.')[:-1])
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/dns/asyncquery.py", line 38, in <module>
    from dns.query import (
  File "/usr/lib/python3/dist-packages/dns/query.py", line 63, in <module>
    import httpcore
  File "/usr/lib/python3/dist-packages/httpcore/__init__.py", line 1, in
<module>
    from ._api import request, stream
  File "/usr/lib/python3/dist-packages/httpcore/_api.py", line 5, in <module>
    from ._sync.connection_pool import ConnectionPool
  File "/usr/lib/python3/dist-packages/httpcore/_sync/__init__.py", line 1, in
<module>
    from .connection import HTTPConnection
  File "/usr/lib/python3/dist-packages/httpcore/_sync/connection.py", line 12,
in <module>
    from .._synchronization import Lock
  File "/usr/lib/python3/dist-packages/httpcore/_synchronization.py", line 13,
in <module>
    import trio
  File "/usr/lib/python3/dist-packages/trio/__init__.py", line 19, in <module>
    from ._core import TASK_STATUS_IGNORED as TASK_STATUS_IGNORED  # isort:
skip
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/trio/_core/__init__.py", line 21, in
<module>
    from ._local import RunVar
  File "/usr/lib/python3/dist-packages/trio/_core/_local.py", line 5, in
<module>
    from . import _run
  File "/usr/lib/python3/dist-packages/trio/_core/_run.py", line 2543, in
<module>
    from ._io_epoll import EpollIOManager as TheIOManager
  File "/usr/lib/python3/dist-packages/trio/_core/_io_epoll.py", line 189, in
<module>
    class EpollIOManager:
  File "/usr/lib/python3/dist-packages/trio/_core/_io_epoll.py", line 190, in
EpollIOManager
    _epoll = attr.ib(factory=select.epoll)
                             ^^^^^^^^^^^^
AttributeError: module 'eventlet.green.select' has no attribute 'epoll'


-- System Information:
Debian Release: trixie/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable-debug'), (500, 
'testing-debug'), (300, 'unstable'), (1, 'experimental-debug'), (1, 
'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 6.3.0-2-amd64 (SMP w/4 CPU threads; PREEMPT)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_GB:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages python3-eventlet depends on:
ii  netbase            6.4
ii  python3            3.11.4-5
ii  python3-dnspython  2.4.0-1
ii  python3-greenlet   2.0.2-1
ii  python3-monotonic  1.6-2
ii  python3-six        1.16.0-4

python3-eventlet recommends no packages.

Versions of packages python3-eventlet suggests:
pn  python-eventlet-doc  <none>

-- no debconf information

Reply via email to