Python/pystate.c:2218: _PyThreadState_PopFrame: Assertion `tstate->datastack_top >= base' failed. · Issue #93252 · python/cpython (original) (raw)

When running my application (qutebrowser) in a way it spawns/kills a lot of threads, after around 140 (?) threads spawned/killed, I get (depending on which commit I'm testing) either of:

I've spent hours on trying to find a more minimal reproducer, but unfortunately, the best I can offer without some help about what I could try next is this:

After some time (due to having to skip most commits because of #92112), I was able to bisect this to:

#0  0x00007ffff7d1636c in ?? () from /usr/lib/libc.so.6
#1  0x00007ffff7cc6838 in raise () from /usr/lib/libc.so.6
#2  0x00007ffff7cb0535 in abort () from /usr/lib/libc.so.6
#3  0x00007ffff7cb045c in ?? () from /usr/lib/libc.so.6
#4  0x00007ffff7cbf366 in __assert_fail () from /usr/lib/libc.so.6
#5  0x000055555580316e in _PyThreadState_PopFrame (tstate=tstate@entry=0x555555b31178 <_PyRuntime+166136>, frame=frame@entry=0x7ffff7821f70) at Python/pystate.c:2218
#6  0x00005555557aa94e in _PyEvalFrameClearAndPop (tstate=tstate@entry=0x555555b31178 <_PyRuntime+166136>, frame=frame@entry=0x7ffff7821f70) at Python/ceval.c:6442
#7  0x00005555557aa99d in pop_frame (tstate=tstate@entry=0x555555b31178 <_PyRuntime+166136>, frame=frame@entry=0x7ffff7821f70) at Python/ceval.c:1682
#8  0x00005555557b08bc in _PyEval_EvalFrameDefault (tstate=0x555555b31178 <_PyRuntime+166136>, frame=0x7ffff7821f70, throwflag=<optimized out>) at Python/ceval.c:2497
#9  0x00005555557be97d in _PyEval_EvalFrame (tstate=tstate@entry=0x555555b31178 <_PyRuntime+166136>, frame=frame@entry=0x7ffff7821de8, throwflag=throwflag@entry=0) at ./Include/internal/pycore_ceval.h:66
#10 0x00005555557bea8e in _PyEval_Vector (tstate=0x555555b31178 <_PyRuntime+166136>, func=<optimized out>, locals=locals@entry=0x0, args=<optimized out>, argcount=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:6468
#11 0x00005555556cfa0f in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:393
#12 0x00005555556cf5e8 in _PyVectorcall_Call (tstate=tstate@entry=0x555555b31178 <_PyRuntime+166136>, func=0x5555556cf9bf <_PyFunction_Vectorcall>, callable=callable@entry=<function at remote 0x7fffe535f750>, 
    tuple=tuple@entry=(<CommandDispatcher(_win_id=0, _tabbed_browser=<TabbedBrowser(widget=<TabWidget() at remote 0x7fffe4fb00f0>, _win_id=0, _tab_insert_idx_left=0, _tab_insert_idx_right=1, is_shutting_down=False, undo_stack=<collections.deque at remote 0x7fffe50b1350>, _filter=<SignalFilter(_win_id=0) at remote 0x7fffe4fb05f0>, _now_focused=<WebEngineTab(is_private=False, win_id=0, tab_id=49, registry=<ObjectRegistry(data={'tab': <...>}, _partial_objs={'tab': <functools.partial at remote 0x7fff85b89320>}, command_only=[]) at remote 0x7fffe52f2a40>, data=<TabData(keep_icon=False, viewing_source=False, inspector=None, open_target=<ClickTarget(_value_=1, _name_='normal', __objclass__=<EnumType(_generate_next_value_=<function at remote 0x7ffff769a780>, __module__='qutebrowser.utils.usertypes', __doc__='How to open a clicked link.', _new_member_=<built-in method __new__ of type object at remote 0x555555a1d800>, _use_args_=False, _member_names_=['normal', 'tab', 'tab_bg', 'window', 'hover'], _member_map_={'normal': <...>, 'tab': <Clic...(truncated), kwargs=kwargs@entry={}) at Objects/call.c:245
#13 0x00005555556cf951 in _PyObject_Call (tstate=0x555555b31178 <_PyRuntime+166136>, callable=callable@entry=<function at remote 0x7fffe535f750>, 
    args=args@entry=(<CommandDispatcher(_win_id=0, _tabbed_browser=<TabbedBrowser(widget=<TabWidget() at remote 0x7fffe4fb00f0>, _win_id=0, _tab_insert_idx_left=0, _tab_insert_idx_right=1, is_shutting_down=False, undo_stack=<collections.deque at remote 0x7fffe50b1350>, _filter=<SignalFilter(_win_id=0) at remote 0x7fffe4fb05f0>, _now_focused=<WebEngineTab(is_private=False, win_id=0, tab_id=49, registry=<ObjectRegistry(data={'tab': <...>}, _partial_objs={'tab': <functools.partial at remote 0x7fff85b89320>}, command_only=[]) at remote 0x7fffe52f2a40>, data=<TabData(keep_icon=False, viewing_source=False, inspector=None, open_target=<ClickTarget(_value_=1, _name_='normal', __objclass__=<EnumType(_generate_next_value_=<function at remote 0x7ffff769a780>, __module__='qutebrowser.utils.usertypes', __doc__='How to open a clicked link.', _new_member_=<built-in method __new__ of type object at remote 0x555555a1d800>, _use_args_=False, _member_names_=['normal', 'tab', 'tab_bg', 'window', 'hover'], _member_map_={'normal': <...>, 'tab': <Clic...(truncated), kwargs=kwargs@entry={}) at Objects/call.c:328
#14 0x00005555556cf999 in PyObject_Call (callable=callable@entry=<function at remote 0x7fffe535f750>, 
    args=args@entry=(<CommandDispatcher(_win_id=0, _tabbed_browser=<TabbedBrowser(widget=<TabWidget() at remote 0x7fffe4fb00f0>, _win_id=0, _tab_insert_idx_left=0, _tab_insert_idx_right=1, is_shutting_down=False, undo_stack=<collections.deque at remote 0x7fffe50b1350>, _filter=<SignalFilter(_win_id=0) at remote 0x7fffe4fb05f0>, _now_focused=<WebEngineTab(is_private=False, win_id=0, tab_id=49, registry=<ObjectRegistry(data={'tab': <...>}, _partial_objs={'tab': <functools.partial at remote 0x7fff85b89320>}, command_only=[]) at remote 0x7fffe52f2a40>, data=<TabData(keep_icon=False, viewing_source=False, inspector=None, open_target=<ClickTarget(_value_=1, _name_='normal', __objclass__=<EnumType(_generate_next_value_=<function at remote 0x7ffff769a780>, __module__='qutebrowser.utils.usertypes', __doc__='How to open a clicked link.', _new_member_=<built-in method __new__ of type object at remote 0x555555a1d800>, _use_args_=False, _member_names_=['normal', 'tab', 'tab_bg', 'window', 'hover'], _member_map_={'normal': <...>, 'tab': <Clic...(truncated), kwargs=kwargs@entry={}) at Objects/call.c:355
#15 0x00005555557ad14b in do_call_core (tstate=tstate@entry=0x555555b31178 <_PyRuntime+166136>, func=func@entry=<function at remote 0x7fffe535f750>, 
    callargs=callargs@entry=(<CommandDispatcher(_win_id=0, _tabbed_browser=<TabbedBrowser(widget=<TabWidget() at remote 0x7fffe4fb00f0>, _win_id=0, _tab_insert_idx_left=0, _tab_insert_idx_right=1, is_shutting_down=False, undo_stack=<collections.deque at remote 0x7fffe50b1350>, _filter=<SignalFilter(_win_id=0) at remote 0x7fffe4fb05f0>, _now_focused=<WebEngineTab(is_private=False, win_id=0, tab_id=49, registry=<ObjectRegistry(data={'tab': <...>}, _partial_objs={'tab': <functools.partial at remote 0x7fff85b89320>}, command_only=[]) at remote 0x7fffe52f2a40>, data=<TabData(keep_icon=False, viewing_source=False, inspector=None, open_target=<ClickTarget(_value_=1, _name_='normal', __objclass__=<EnumType(_generate_next_value_=<function at remote 0x7ffff769a780>, __module__='qutebrowser.utils.usertypes', __doc__='How to open a clicked link.', _new_member_=<built-in method __new__ of type object at remote 0x555555a1d800>, _use_args_=False, _member_names_=['normal', 'tab', 'tab_bg', 'window', 'hover'], _member_map_={'normal': <...>, 'tab': <Clic...(truncated), kwdict=kwdict@entry={}, use_tracing=0) at Python/ceval.c:7365
#16 0x00005555557bd006 in _PyEval_EvalFrameDefault (tstate=0x555555b31178 <_PyRuntime+166136>, frame=0x7ffff7821d18, throwflag=<optimized out>) at Python/ceval.c:5431
#17 0x00005555557be97d in _PyEval_EvalFrame (tstate=tstate@entry=0x555555b31178 <_PyRuntime+166136>, frame=frame@entry=0x7ffff7821bb8, throwflag=throwflag@entry=0) at ./Include/internal/pycore_ceval.h:66
#18 0x00005555557bea8e in _PyEval_Vector (tstate=0x555555b31178 <_PyRuntime+166136>, func=<optimized out>, locals=locals@entry=0x0, args=<optimized out>, argcount=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:6468
#19 0x00005555556cfa0f in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:393
#20 0x00005555556d224c in _PyObject_VectorcallTstate (tstate=tstate@entry=0x555555b31178 <_PyRuntime+166136>, callable=callable@entry=<function at remote 0x7fffe61af960>, args=args@entry=0x7fffffffb220, nargsf=nargsf@entry=2, 
    kwnames=kwnames@entry=0x0) at ./Include/internal/pycore_call.h:92
#21 0x00005555556d239f in method_vectorcall (method=<optimized out>, args=0x7fffe534d968, nargsf=<optimized out>, kwnames=0x0) at Objects/classobject.c:89
#22 0x00005555556cf5e8 in _PyVectorcall_Call (tstate=tstate@entry=0x555555b31178 <_PyRuntime+166136>, func=0x5555556d22ce <method_vectorcall>, callable=callable@entry=<method at remote 0x7fffe54aad50>, tuple=tuple@entry=('undo',), 
    kwargs=kwargs@entry=0x0) at Objects/call.c:245
#23 0x00005555556cf951 in _PyObject_Call (tstate=0x555555b31178 <_PyRuntime+166136>, callable=<method at remote 0x7fffe54aad50>, args=('undo',), kwargs=0x0) at Objects/call.c:328
--Type <RET> for more, q to quit, c to continue without paging--
#24 0x00005555556cf999 in PyObject_Call (callable=<optimized out>, args=<optimized out>, kwargs=<optimized out>) at Objects/call.c:355
#25 0x00007ffff66b73f0 in PyQtSlot::call(_object*, _object*) const () from /home/florian/proj/qutebrowser/git/.venv-thread/lib/python3.11/site-packages/PyQt5/QtCore.abi3.so
#26 0x00007ffff66b7898 in PyQtSlot::invoke(void**, _object*, void*, bool) const () from /home/florian/proj/qutebrowser/git/.venv-thread/lib/python3.11/site-packages/PyQt5/QtCore.abi3.so
#27 0x00007ffff66b7a50 in PyQtSlot::invoke(void**, _object*, void*) const () from /home/florian/proj/qutebrowser/git/.venv-thread/lib/python3.11/site-packages/PyQt5/QtCore.abi3.so
#28 0x00007ffff66ba3ad in qt_metacall_worker(_sipSimpleWrapper*, _typeobject*, _sipTypeDef*, QMetaObject::Call, int, void**) () from /home/florian/proj/qutebrowser/git/.venv-thread/lib/python3.11/site-packages/PyQt5/QtCore.abi3.so
#29 0x00007ffff66ba17c in qt_metacall_worker(_sipSimpleWrapper*, _typeobject*, _sipTypeDef*, QMetaObject::Call, int, void**) () from /home/florian/proj/qutebrowser/git/.venv-thread/lib/python3.11/site-packages/PyQt5/QtCore.abi3.so
#30 0x00007ffff669d3cd in sipQObject::qt_metacall(QMetaObject::Call, int, void**) () from /home/florian/proj/qutebrowser/git/.venv-thread/lib/python3.11/site-packages/PyQt5/QtCore.abi3.so
#31 0x00007ffff5ed5f97 in void doActivate<false>(QObject*, int, void**) () from /home/florian/proj/qutebrowser/git/.venv-thread/lib/python3.11/site-packages/PyQt5/Qt5/lib/libQt5Core.so.5
#32 0x00007ffff66ba1fe in qt_metacall_worker(_sipSimpleWrapper*, _typeobject*, _sipTypeDef*, QMetaObject::Call, int, void**) () from /home/florian/proj/qutebrowser/git/.venv-thread/lib/python3.11/site-packages/PyQt5/QtCore.abi3.so
#33 0x00007ffff66ba17c in qt_metacall_worker(_sipSimpleWrapper*, _typeobject*, _sipTypeDef*, QMetaObject::Call, int, void**) () from /home/florian/proj/qutebrowser/git/.venv-thread/lib/python3.11/site-packages/PyQt5/QtCore.abi3.so
#34 0x00007ffff669d3cd in sipQObject::qt_metacall(QMetaObject::Call, int, void**) () from /home/florian/proj/qutebrowser/git/.venv-thread/lib/python3.11/site-packages/PyQt5/QtCore.abi3.so
#35 0x00007ffff5ed5f97 in void doActivate<false>(QObject*, int, void**) () from /home/florian/proj/qutebrowser/git/.venv-thread/lib/python3.11/site-packages/PyQt5/Qt5/lib/libQt5Core.so.5
#36 0x00007ffff66b3f6e in pyqtBoundSignal_emit () from /home/florian/proj/qutebrowser/git/.venv-thread/lib/python3.11/site-packages/PyQt5/QtCore.abi3.so
#37 0x00005555556db2f0 in method_vectorcall_VARARGS (func=<method_descriptor at remote 0x7ffff73238f0>, args=0x7ffff7821b98, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/descrobject.c:330
#38 0x00005555556cfd83 in _PyObject_VectorcallTstate (tstate=0x555555b31178 <_PyRuntime+166136>, callable=callable@entry=<method_descriptor at remote 0x7ffff73238f0>, args=args@entry=0x7ffff7821b98, nargsf=9223372036854775810, 
    kwnames=kwnames@entry=0x0) at ./Include/internal/pycore_call.h:92
#39 0x00005555556cfe5a in PyObject_Vectorcall (callable=callable@entry=<method_descriptor at remote 0x7ffff73238f0>, args=args@entry=0x7ffff7821b98, nargsf=<optimized out>, kwnames=kwnames@entry=0x0) at Objects/call.c:299
#40 0x00005555557ba3da in _PyEval_EvalFrameDefault (tstate=0x555555b31178 <_PyRuntime+166136>, frame=0x7ffff7821b28, throwflag=<optimized out>) at Python/ceval.c:4826
#41 0x00005555557be97d in _PyEval_EvalFrame (tstate=tstate@entry=0x555555b31178 <_PyRuntime+166136>, frame=frame@entry=0x7ffff7821b28, throwflag=throwflag@entry=0) at ./Include/internal/pycore_ceval.h:66
#42 0x00005555557bea8e in _PyEval_Vector (tstate=0x555555b31178 <_PyRuntime+166136>, func=<optimized out>, locals=locals@entry=0x0, args=<optimized out>, argcount=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:6468
#43 0x00005555556cfa0f in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:393
#44 0x00005555556d224c in _PyObject_VectorcallTstate (tstate=tstate@entry=0x555555b31178 <_PyRuntime+166136>, callable=callable@entry=<function at remote 0x7fffe5365f40>, args=args@entry=0x7fffffffba38, nargsf=nargsf@entry=1, 
    kwnames=kwnames@entry=0x0) at ./Include/internal/pycore_call.h:92
#45 0x00005555556d2467 in method_vectorcall (method=<optimized out>, args=0x555555b16e00 <_PyRuntime+58752>, nargsf=<optimized out>, kwnames=0x0) at Objects/classobject.c:67
#46 0x00005555556cf5e8 in _PyVectorcall_Call (tstate=tstate@entry=0x555555b31178 <_PyRuntime+166136>, func=0x5555556d22ce <method_vectorcall>, callable=callable@entry=<method at remote 0x7fffe4f07ef0>, tuple=tuple@entry=(), 
    kwargs=kwargs@entry=0x0) at Objects/call.c:245
#47 0x00005555556cf951 in _PyObject_Call (tstate=0x555555b31178 <_PyRuntime+166136>, callable=<method at remote 0x7fffe4f07ef0>, args=(), kwargs=0x0) at Objects/call.c:328
#48 0x00005555556cf999 in PyObject_Call (callable=<optimized out>, args=<optimized out>, kwargs=<optimized out>) at Objects/call.c:355
#49 0x00007ffff66b73f0 in PyQtSlot::call(_object*, _object*) const () from /home/florian/proj/qutebrowser/git/.venv-thread/lib/python3.11/site-packages/PyQt5/QtCore.abi3.so
#50 0x00007ffff66b7898 in PyQtSlot::invoke(void**, _object*, void*, bool) const () from /home/florian/proj/qutebrowser/git/.venv-thread/lib/python3.11/site-packages/PyQt5/QtCore.abi3.so
#51 0x00007ffff66b7a50 in PyQtSlot::invoke(void**, _object*, void*) const () from /home/florian/proj/qutebrowser/git/.venv-thread/lib/python3.11/site-packages/PyQt5/QtCore.abi3.so
#52 0x00007ffff66ba3ad in qt_metacall_worker(_sipSimpleWrapper*, _typeobject*, _sipTypeDef*, QMetaObject::Call, int, void**) () from /home/florian/proj/qutebrowser/git/.venv-thread/lib/python3.11/site-packages/PyQt5/QtCore.abi3.so
#53 0x00007ffff669d3cd in sipQObject::qt_metacall(QMetaObject::Call, int, void**) () from /home/florian/proj/qutebrowser/git/.venv-thread/lib/python3.11/site-packages/PyQt5/QtCore.abi3.so
#54 0x00007ffff5ed5f97 in void doActivate<false>(QObject*, int, void**) () from /home/florian/proj/qutebrowser/git/.venv-thread/lib/python3.11/site-packages/PyQt5/Qt5/lib/libQt5Core.so.5
#55 0x00007ffff5ed9f8b in QSocketNotifier::activated(int, QSocketNotifier::QPrivateSignal) () from /home/florian/proj/qutebrowser/git/.venv-thread/lib/python3.11/site-packages/PyQt5/Qt5/lib/libQt5Core.so.5
#56 0x00007ffff5eda7c2 in QSocketNotifier::event(QEvent*) () from /home/florian/proj/qutebrowser/git/.venv-thread/lib/python3.11/site-packages/PyQt5/Qt5/lib/libQt5Core.so.5
#57 0x00007ffff6684423 in sipQSocketNotifier::event(QEvent*) () from /home/florian/proj/qutebrowser/git/.venv-thread/lib/python3.11/site-packages/PyQt5/QtCore.abi3.so
#58 0x00007ffff296343c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /home/florian/proj/qutebrowser/git/.venv-thread/lib/python3.11/site-packages/PyQt5/Qt5/lib/libQt5Widgets.so.5
#59 0x00007ffff2969f20 in QApplication::notify(QObject*, QEvent*) () from /home/florian/proj/qutebrowser/git/.venv-thread/lib/python3.11/site-packages/PyQt5/Qt5/lib/libQt5Widgets.so.5
#60 0x00007ffff346bcd6 in sipQApplication::notify(QObject*, QEvent*) () from /home/florian/proj/qutebrowser/git/.venv-thread/lib/python3.11/site-packages/PyQt5/QtWidgets.abi3.so
#61 0x00007ffff5e9d808 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /home/florian/proj/qutebrowser/git/.venv-thread/lib/python3.11/site-packages/PyQt5/Qt5/lib/libQt5Core.so.5
#62 0x00007ffff5ef9d98 in socketNotifierSourceDispatch(_GSource*, int (*)(void*), void*) () from /home/florian/proj/qutebrowser/git/.venv-thread/lib/python3.11/site-packages/PyQt5/Qt5/lib/libQt5Core.so.5
#63 0x00007ffff691a163 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#64 0x00007ffff69709e9 in ?? () from /usr/lib/libglib-2.0.so.0
#65 0x00007ffff69176c5 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#66 0x00007ffff5ef91cc in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /home/florian/proj/qutebrowser/git/.venv-thread/lib/python3.11/site-packages/PyQt5/Qt5/lib/libQt5Core.so.5
--Type <RET> for more, q to quit, c to continue without paging--
#67 0x00007ffff5e9c21a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /home/florian/proj/qutebrowser/git/.venv-thread/lib/python3.11/site-packages/PyQt5/Qt5/lib/libQt5Core.so.5
#68 0x00007ffff5ea51d3 in QCoreApplication::exec() () from /home/florian/proj/qutebrowser/git/.venv-thread/lib/python3.11/site-packages/PyQt5/Qt5/lib/libQt5Core.so.5
#69 0x00007ffff32b65a1 in meth_QApplication_exec () from /home/florian/proj/qutebrowser/git/.venv-thread/lib/python3.11/site-packages/PyQt5/QtWidgets.abi3.so
#70 0x0000555555717472 in cfunction_call (func=<built-in method exec of Application object at remote 0x7fffe523ac10>, args=(), kwargs=0x0) at Objects/methodobject.c:553
#71 0x00005555556cfcc0 in _PyObject_MakeTpCall (tstate=tstate@entry=0x555555b31178 <_PyRuntime+166136>, callable=callable@entry=<built-in method exec of Application object at remote 0x7fffe523ac10>, args=args@entry=0x7ffff781e390, 
    nargs=<optimized out>, keywords=keywords@entry=0x0) at Objects/call.c:214
#72 0x00005555556cfe03 in _PyObject_VectorcallTstate (tstate=0x555555b31178 <_PyRuntime+166136>, callable=callable@entry=<built-in method exec of Application object at remote 0x7fffe523ac10>, args=args@entry=0x7ffff781e390, 
    nargsf=<optimized out>, kwnames=kwnames@entry=0x0) at ./Include/internal/pycore_call.h:90
#73 0x00005555556cfe5a in PyObject_Vectorcall (callable=callable@entry=<built-in method exec of Application object at remote 0x7fffe523ac10>, args=args@entry=0x7ffff781e390, nargsf=<optimized out>, kwnames=kwnames@entry=0x0)
    at Objects/call.c:299
#74 0x00005555557ba3da in _PyEval_EvalFrameDefault (tstate=0x555555b31178 <_PyRuntime+166136>, frame=0x7ffff781e338, throwflag=<optimized out>) at Python/ceval.c:4826
#75 0x00005555557be97d in _PyEval_EvalFrame (tstate=tstate@entry=0x555555b31178 <_PyRuntime+166136>, frame=frame@entry=0x7ffff781e1b8, throwflag=throwflag@entry=0) at ./Include/internal/pycore_ceval.h:66
#76 0x00005555557bea8e in _PyEval_Vector (tstate=tstate@entry=0x555555b31178 <_PyRuntime+166136>, func=func@entry=0x7ffff789bd80, 
    locals=locals@entry={'__name__': '__main__', '__doc__': 'Simple launcher for qutebrowser.', '__package__': 'qutebrowser', '__loader__': <SourceFileLoader(name='qutebrowser.__main__', path='/home/florian/proj/qutebrowser/git/qutebrowser/__main__.py') at remote 0x7ffff7663f30>, '__spec__': <ModuleSpec(name='qutebrowser.__main__', loader=<...>, origin='/home/florian/proj/qutebrowser/git/qutebrowser/__main__.py', loader_state=None, submodule_search_locations=None, _uninitialized_submodules=[], _set_fileattr=True, _cached='/home/florian/proj/qutebrowser/git/qutebrowser/__pycache__/__main__.cpython-311.pyc') at remote 0x7ffff7663da0>, '__annotations__': {}, '__builtins__': <module at remote 0x7ffff78e3050>, '__file__': '/home/florian/proj/qutebrowser/git/qutebrowser/__main__.py', '__cached__': '/home/florian/proj/qutebrowser/git/qutebrowser/__pycache__/__main__.cpython-311.pyc', 'sys': <module at remote 0x7ffff78d3770>, 'qutebrowser': <module at remote 0x7ffff7641190>}, args=args@entry=0x0, argcount=argcount@entry=0, kwnames=kwnames@entry=0x0) at Python/ceval.c:6468
#77 0x00005555557beb99 in PyEval_EvalCode (co=co@entry=<code at remote 0x7ffff78b9a60>, 
    globals=globals@entry={'__name__': '__main__', '__doc__': 'Simple launcher for qutebrowser.', '__package__': 'qutebrowser', '__loader__': <SourceFileLoader(name='qutebrowser.__main__', path='/home/florian/proj/qutebrowser/git/qutebrowser/__main__.py') at remote 0x7ffff7663f30>, '__spec__': <ModuleSpec(name='qutebrowser.__main__', loader=<...>, origin='/home/florian/proj/qutebrowser/git/qutebrowser/__main__.py', loader_state=None, submodule_search_locations=None, _uninitialized_submodules=[], _set_fileattr=True, _cached='/home/florian/proj/qutebrowser/git/qutebrowser/__pycache__/__main__.cpython-311.pyc') at remote 0x7ffff7663da0>, '__annotations__': {}, '__builtins__': <module at remote 0x7ffff78e3050>, '__file__': '/home/florian/proj/qutebrowser/git/qutebrowser/__main__.py', '__cached__': '/home/florian/proj/qutebrowser/git/qutebrowser/__pycache__/__main__.cpython-311.pyc', 'sys': <module at remote 0x7ffff78d3770>, 'qutebrowser': <module at remote 0x7ffff7641190>}, 
    locals=locals@entry={'__name__': '__main__', '__doc__': 'Simple launcher for qutebrowser.', '__package__': 'qutebrowser', '__loader__': <SourceFileLoader(name='qutebrowser.__main__', path='/home/florian/proj/qutebrowser/git/qutebrowser/__main__.py') at remote 0x7ffff7663f30>, '__spec__': <ModuleSpec(name='qutebrowser.__main__', loader=<...>, origin='/home/florian/proj/qutebrowser/git/qutebrowser/__main__.py', loader_state=None, submodule_search_locations=None, _uninitialized_submodules=[], _set_fileattr=True, _cached='/home/florian/proj/qutebrowser/git/qutebrowser/__pycache__/__main__.cpython-311.pyc') at remote 0x7ffff7663da0>, '__annotations__': {}, '__builtins__': <module at remote 0x7ffff78e3050>, '__file__': '/home/florian/proj/qutebrowser/git/qutebrowser/__main__.py', '__cached__': '/home/florian/proj/qutebrowser/git/qutebrowser/__pycache__/__main__.cpython-311.pyc', 'sys': <module at remote 0x7ffff78d3770>, 'qutebrowser': <module at remote 0x7ffff7641190>}) at Python/ceval.c:1207
#78 0x00005555557a5d7f in builtin_exec_impl (module=module@entry=<module at remote 0x7ffff78e3050>, source=<code at remote 0x7ffff78b9a60>, 
    globals={'__name__': '__main__', '__doc__': 'Simple launcher for qutebrowser.', '__package__': 'qutebrowser', '__loader__': <SourceFileLoader(name='qutebrowser.__main__', path='/home/florian/proj/qutebrowser/git/qutebrowser/__main__.py') at remote 0x7ffff7663f30>, '__spec__': <ModuleSpec(name='qutebrowser.__main__', loader=<...>, origin='/home/florian/proj/qutebrowser/git/qutebrowser/__main__.py', loader_state=None, submodule_search_locations=None, _uninitialized_submodules=[], _set_fileattr=True, _cached='/home/florian/proj/qutebrowser/git/qutebrowser/__pycache__/__main__.cpython-311.pyc') at remote 0x7ffff7663da0>, '__annotations__': {}, '__builtins__': <module at remote 0x7ffff78e3050>, '__file__': '/home/florian/proj/qutebrowser/git/qutebrowser/__main__.py', '__cached__': '/home/florian/proj/qutebrowser/git/qutebrowser/__pycache__/__main__.cpython-311.pyc', 'sys': <module at remote 0x7ffff78d3770>, 'qutebrowser': <module at remote 0x7ffff7641190>}, 
    locals={'__name__': '__main__', '__doc__': 'Simple launcher for qutebrowser.', '__package__': 'qutebrowser', '__loader__': <SourceFileLoader(name='qutebrowser.__main__', path='/home/florian/proj/qutebrowser/git/qutebrowser/__main__.py') at remote 0x7ffff7663f30>, '__spec__': <ModuleSpec(name='qutebrowser.__main__', loader=<...>, origin='/home/florian/proj/qutebrowser/git/qutebrowser/__main__.py', loader_state=None, submodule_search_locations=None, _uninitialized_submodules=[], _set_fileattr=True, _cached='/home/florian/proj/qutebrowser/git/qutebrowser/__pycache__/__main__.cpython-311.pyc') at remote 0x7ffff7663da0>, '__annotations__': {}, '__builtins__': <module at remote 0x7ffff78e3050>, '__file__': '/home/florian/proj/qutebrowser/git/qutebrowser/__main__.py', '__cached__': '/home/florian/proj/qutebrowser/git/qutebrowser/__pycache__/__main__.cpython-311.pyc', 'sys': <module at remote 0x7ffff78d3770>, 'qutebrowser': <module at remote 0x7ffff7641190>}, closure=0x0) at Python/bltinmodule.c:1075
#79 0x00005555557a5e92 in builtin_exec (module=<module at remote 0x7ffff78e3050>, args=<optimized out>, args@entry=0x7ffff781e180, nargs=nargs@entry=2, kwnames=kwnames@entry=0x0) at Python/clinic/bltinmodule.c.h:465
#80 0x0000555555716d1b in cfunction_vectorcall_FASTCALL_KEYWORDS (func=<built-in method exec of module object at remote 0x7ffff78e3050>, args=0x7ffff781e180, nargsf=<optimized out>, kwnames=0x0) at Objects/methodobject.c:443
#81 0x00005555556cfd83 in _PyObject_VectorcallTstate (tstate=0x555555b31178 <_PyRuntime+166136>, callable=callable@entry=<built-in method exec of module object at remote 0x7ffff78e3050>, args=args@entry=0x7ffff781e180, 
    nargsf=9223372036854775810, kwnames=kwnames@entry=0x0) at ./Include/internal/pycore_call.h:92
#82 0x00005555556cfe5a in PyObject_Vectorcall (callable=callable@entry=<built-in method exec of module object at remote 0x7ffff78e3050>, args=args@entry=0x7ffff781e180, nargsf=<optimized out>, kwnames=kwnames@entry=0x0)
    at Objects/call.c:299
--Type <RET> for more, q to quit, c to continue without paging--
#83 0x00005555557ba3da in _PyEval_EvalFrameDefault (tstate=0x555555b31178 <_PyRuntime+166136>, frame=0x7ffff781e0d8, throwflag=<optimized out>) at Python/ceval.c:4826
#84 0x00005555557be97d in _PyEval_EvalFrame (tstate=tstate@entry=0x555555b31178 <_PyRuntime+166136>, frame=frame@entry=0x7ffff781e020, throwflag=throwflag@entry=0) at ./Include/internal/pycore_ceval.h:66
#85 0x00005555557bea8e in _PyEval_Vector (tstate=0x555555b31178 <_PyRuntime+166136>, func=<optimized out>, locals=locals@entry=0x0, args=<optimized out>, argcount=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:6468
#86 0x00005555556cfa0f in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:393
#87 0x00005555556cf5e8 in _PyVectorcall_Call (tstate=tstate@entry=0x555555b31178 <_PyRuntime+166136>, func=0x5555556cf9bf <_PyFunction_Vectorcall>, callable=callable@entry=<function at remote 0x7ffff7646ba0>, 
    tuple=tuple@entry=('qutebrowser', True), kwargs=kwargs@entry=0x0) at Objects/call.c:245
#88 0x00005555556cf951 in _PyObject_Call (tstate=0x555555b31178 <_PyRuntime+166136>, callable=callable@entry=<function at remote 0x7ffff7646ba0>, args=args@entry=('qutebrowser', True), kwargs=kwargs@entry=0x0) at Objects/call.c:328
#89 0x00005555556cf999 in PyObject_Call (callable=callable@entry=<function at remote 0x7ffff7646ba0>, args=args@entry=('qutebrowser', True), kwargs=kwargs@entry=0x0) at Objects/call.c:355
#90 0x0000555555823bf4 in pymain_run_module (modname=<optimized out>, set_argv0=set_argv0@entry=1) at Modules/main.c:300
#91 0x00005555558246d5 in pymain_run_python (exitcode=exitcode@entry=0x7fffffffc9f4) at Modules/main.c:595
#92 0x0000555555824964 in Py_RunMain () at Modules/main.c:680
#93 0x00005555558249de in pymain_main (args=args@entry=0x7fffffffca50) at Modules/main.c:710
#94 0x0000555555824aad in Py_BytesMain (argc=<optimized out>, argv=<optimized out>) at Modules/main.c:734
#95 0x0000555555643732 in main (argc=<optimized out>, argv=<optimized out>) at ./Programs/python.c:15

Happy to try more or report some debugging information, but I'm afraid I'm stuck at this point.