Control: reassign -1 python3-keystoneauth1
Control: affects -1 cumin

I've struggled to get a backtrace from cumin because it catches all
exceptions in its main() function. But by removing that handler, I could
see a backtrace..

Mysteriously, the entry point in cumin is actually:

-> from keystoneauth1 import session as keystone_session

Doing *that* in a plain python interpreter, on my trixie machine,
crashes as well, so this is likely not a cumin bug after all and rather
a bug in python3-keystoneauth1:

> python                                                                        
>                                   (release-v5.0.0)
>>> from keystoneauth1 import session as keystone_session
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3/dist-packages/keystoneauth1/session.py", line 39, in 
<module>
    import osprofiler.web as osprofiler_web
  File "/usr/lib/python3/dist-packages/osprofiler/web.py", line 19, in <module>
    from osprofiler import profiler
  File "/usr/lib/python3/dist-packages/osprofiler/profiler.py", line 27, in 
<module>
    from osprofiler import notifier
  File "/usr/lib/python3/dist-packages/osprofiler/notifier.py", line 18, in 
<module>
    from osprofiler.drivers import base
  File "/usr/lib/python3/dist-packages/osprofiler/drivers/__init__.py", line 5, 
in <module>
    from osprofiler.drivers import loginsight  # noqa
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/osprofiler/drivers/loginsight.py", line 
25, in <module>
    from oslo_concurrency.lockutils import synchronized
  File "/usr/lib/python3/dist-packages/oslo_concurrency/lockutils.py", line 37, 
in <module>
    import eventlet
  File "/usr/lib/python3/dist-packages/eventlet/__init__.py", line 6, 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 78, 
in <module>
    setattr(dns, pkg, import_patched('dns.' + pkg))
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/eventlet/support/greendns.py", line 60, 
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 40, in <module>
    from dns.query import (
  File "/usr/lib/python3/dist-packages/dns/query.py", line 66, in <module>
    import httpcore._backends.sync
  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 7, 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 14, 
in <module>
    from .._synchronization import Lock
  File "/usr/lib/python3/dist-packages/httpcore/_synchronization.py", line 12, 
in <module>
    import trio
  File "/usr/lib/python3/dist-packages/trio/__init__.py", line 26, in <module>
    from . import abc, from_thread, lowlevel, socket, to_thread
  File "/usr/lib/python3/dist-packages/trio/socket.py", line 16, in <module>
    from . import _socket
  File "/usr/lib/python3/dist-packages/trio/_socket.py", line 545, in <module>
    class SocketType:
  File "/usr/lib/python3/dist-packages/trio/_socket.py", line 757, in SocketType
    @_wraps(_stdlib_socket.socket.sendmsg, assigned=(), updated=())
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: type object 'GreenSocket' has no attribute 'sendmsg'
>>> 

Reassigning, but I would argue that cumin could:

 1. show an actual backtrace (and why not, drop in a debugger) when
    crashing with (say) --trace

 2. avoid crashing if one of the backend fails to load

I'll see if i can coerce a patchset in gerrit for those.

Reply via email to