3.11 branch: `column >= -1` assertion failure with pytest rewriting

Open
#94,694 43 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Stale
Tech stack
python
Domain
compilers

Research direction

Reproduce the crash with a --with-pydebug Python 3.11 build by following the pytest checkout and virtual-environment commands. Inspect Python/compile.c at write_location_info_entry and assemble_emit_location while pytest rewrites its test modules, using the reported stack and bisected commit as context. Done means pytest no longer aborts on the column assertion.

Written by the indexing model from the issue text.

Description

3.12 interpreter-core type-crash

Crash report

When running pytest in e.g. the pytest repository on the current Python 3.11 branch, it aborts, perhaps similarly to #93387 or #92597 somehow...

I've been unable to get a minimal reproducer so far, but this will reproduce it:

  • git clone https://github.com/pytest-dev/pytest
  • cd pytest
  • ~/proj/cpython/python -m venv .venv (with the current 3.11 branch)
  • .venv/bin/pip install -e ".[testing]"
  • .venv/bin/pytest

I was able to bisect this to df091e14d8c5b25b9094ebb86857e30adc8e5abb:

[3.11] GH-93662: Make sure that column offsets are correct in multi-line method calls. (GH-93673) (#93895)

cc @iritkatriel @markshannon @pablogsal

Note this (thankfully) only seems to affect --with-pydebug builds.

Error messages

This assertion seems to fail:

https://github.com/python/cpython/blob/df091e14d8c5b25b9094ebb86857e30adc8e5abb/Python/compile.c#L7584

Unfortunately I haven't been able to get the column value, as it was apparently optimized out...

Python stack:

Current thread 0x00007f1b72048740 (most recent call first):
  File "/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/_pytest/assertion/rewrite.py", line 361 in _rewrite_test
  File "/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/_pytest/assertion/rewrite.py", line 159 in exec_module
  File "<frozen importlib._bootstrap>", line 690 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1149 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1178 in _find_and_load
  File "<frozen importlib._bootstrap>", line 1206 in _gcd_import
  File "/home/florian/proj/cpython/Lib/importlib/__init__.py", line 126 in import_module
  File "/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/_pytest/pathlib.py", line 533 in import_path
  File "/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/_pytest/python.py", line 608 in _importtestmodule
  File "/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/_pytest/python.py", line 519 in _getobj
  File "/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/_pytest/python.py", line 301 in obj
  File "/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/_pytest/python.py", line 536 in _inject_setup_module_fixture
  File "/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/_pytest/python.py", line 522 in collect
  File "/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/_pytest/runner.py", line 369 in <lambda>
  File "/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/_pytest/runner.py", line 338 in from_call
  File "/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/_pytest/runner.py", line 369 in pytest_make_collect_report
  File "/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 39 in _multicall
  File "/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pluggy/_manager.py", line 80 in _hookexec
  File "/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pluggy/_hooks.py", line 265 in __call__
  File "/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/_pytest/runner.py", line 537 in collect_one_node
  File "/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/_pytest/main.py", line 824 in genitems
  File "/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/_pytest/main.py", line 657 in perform_collect
  File "/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/_pytest/main.py", line 332 in pytest_collection
  File "/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 39 in _multicall
  File "/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pluggy/_manager.py", line 80 in _hookexec
  File "/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pluggy/_hooks.py", line 265 in __call__
  File "/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/_pytest/main.py", line 321 in _main
  File "/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/_pytest/main.py", line 268 in wrap_session
  File "/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/_pytest/main.py", line 315 in pytest_cmdline_main
  File "/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 39 in _multicall
  File "/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pluggy/_manager.py", line 80 in _hookexec
  File "/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pluggy/_hooks.py", line 265 in __call__
  File "/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/_pytest/config/__init__.py", line 164 in main
  File "/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/_pytest/config/__init__.py", line 187 in console_main
  File "/home/florian/tmp/python-pytest/.venv/bin/pytest", line 8 in <module>
[1]    822828 IOT instruction (core dumped)  ~/tmp/python-pytest/.venv/bin/pytest

C stack:

#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007ffff7c8e3d3 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2  0x00007ffff7c3e838 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3  0x00007ffff7c28535 in __GI_abort () at abort.c:79
#4  0x00007ffff7c2845c in __assert_fail_base (fmt=0x7ffff7dbfe70 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x555555916af6 "column >= -1", file=0x555555916663 "Python/compile.c", line=7584, function=<optimized out>)
    at assert.c:92
#5  0x00007ffff7c37366 in __GI___assert_fail (assertion=assertion@entry=0x555555916af6 "column >= -1", file=file@entry=0x555555916663 "Python/compile.c", line=line@entry=7584, 
    function=function@entry=0x5555559145b0 <__PRETTY_FUNCTION__.11> "write_location_info_entry") at assert.c:101
#6  0x00005555557c7016 in write_location_info_entry (a=a@entry=0x7fffffffa9d0, i=i@entry=0x5555562812f8, isize=isize@entry=8) at Python/compile.c:7584
#7  0x00005555557c7106 in assemble_emit_location (a=a@entry=0x7fffffffa9d0, i=0x5555562812f8) at Python/compile.c:7614
#8  0x00005555557c9a7a in assemble (c=c@entry=0x7fffffffab70, addNone=addNone@entry=1) at Python/compile.c:8425
#9  0x00005555557d0bab in compiler_function (c=0x7fffffffab70, s=<optimized out>, is_async=is_async@entry=0) at Python/compile.c:2656
#10 0x00005555557d0d01 in compiler_visit_stmt (c=c@entry=0x7fffffffab70, s=0x555556318030) at Python/compile.c:4047
#11 0x00005555557d0fc8 in compiler_body (c=c@entry=0x7fffffffab70, stmts=0x55555620bdc0) at Python/compile.c:2164
#12 0x00005555557d1540 in compiler_mod (c=c@entry=0x7fffffffab70, mod=mod@entry=0x555556321b90) at Python/compile.c:2181
#13 0x00005555557d4ab1 in _PyAST_Compile (mod=mod@entry=0x555556321b90, filename=filename@entry='/home/florian/proj/pytest/testing/test_capture.py', flags=flags@entry=0x7fffffffac18, optimize=optimize@entry=-1, 
    arena=arena@entry=0x7ffff58ec820) at Python/compile.c:581
#14 0x00005555557a4d2b in builtin_compile_impl (module=module@entry=<module at remote 0x7ffff779f1d0>, 
    source=source@entry=<Module(body=[<Import(names=[<alias(name='builtins', asname='@py_builtins', lineno=1, col_offset=0) at remote 0x7ffff5d22440>], lineno=1, col_offset=0) at remote 0x7ffff5d22f80>, <Import(names=[<alias(name='_pytest.assertion.rewrite', asname='@pytest_ar', lineno=1, col_offset=0) at remote 0x7ffff5d21ef0>], lineno=1, col_offset=0) at remote 0x7ffff5d28460>, <Import(names=[<alias(name='contextlib', asname=None, lineno=1, col_offset=7, end_lineno=1, end_col_offset=17) at remote 0x7ffff5dea760>], lineno=1, col_offset=0, end_lineno=1, end_col_offset=17) at remote 0x7ffff5dea7b0>, <Import(names=[<alias(name='io', asname=None, lineno=2, col_offset=7, end_lineno=2, end_col_offset=9) at remote 0x7ffff5dea6c0>], lineno=2, col_offset=0, end_lineno=2, end_col_offset=9) at remote 0x7ffff5dea710>, <Import(names=[<alias(name='os', asname=None, lineno=3, col_offset=7, end_lineno=3, end_col_offset=9) at remote 0x7ffff5dea620>], lineno=3, col_offset=0, end_lineno=3, end_col_offset=9) at remote 0x7ffff5dea670>, <Import(names=[<...(truncated), filename='/home/florian/proj/pytest/testing/test_capture.py', mode=mode@entry=0x555555af3810 <const_str_exec+48> "exec", 
    flags=flags@entry=0, dont_inherit=dont_inherit@entry=1, optimize=-1, feature_version=-1) at Python/bltinmodule.c:818
#15 0x00005555557a5008 in builtin_compile (module=<module at remote 0x7ffff779f1d0>, args=<optimized out>, args@entry=0x7ffff7e6d7d8, nargs=nargs@entry=3, kwnames=kwnames@entry=('dont_inherit',)) at Python/clinic/bltinmodule.c.h:328
#16 0x0000555555717156 in cfunction_vectorcall_FASTCALL_KEYWORDS (func=<built-in method compile of module object at remote 0x7ffff779f1d0>, args=0x7ffff7e6d7d8, nargsf=<optimized out>, kwnames=('dont_inherit',))
    at Objects/methodobject.c:443
#17 0x00005555556d059f in _PyObject_VectorcallTstate (tstate=0x555555b2f5e8 <_PyRuntime+166312>, callable=callable@entry=<built-in method compile of module object at remote 0x7ffff779f1d0>, args=args@entry=0x7ffff7e6d7d8, 
    nargsf=9223372036854775811, kwnames=kwnames@entry=('dont_inherit',)) at ./Include/internal/pycore_call.h:92
#18 0x00005555556d0676 in PyObject_Vectorcall (callable=callable@entry=<built-in method compile of module object at remote 0x7ffff779f1d0>, args=args@entry=0x7ffff7e6d7d8, nargsf=<optimized out>, kwnames=kwnames@entry=('dont_inherit',))
    at Objects/call.c:299
#19 0x00005555557b8fef in _PyEval_EvalFrameDefault (tstate=0x555555b2f5e8 <_PyRuntime+166312>, frame=0x7ffff7e6d748, throwflag=<optimized out>) at Python/ceval.c:4773
#20 0x00005555557bd6cd in _PyEval_EvalFrame (tstate=tstate@entry=0x555555b2f5e8 <_PyRuntime+166312>, frame=frame@entry=0x7ffff7e6d0e8, throwflag=throwflag@entry=0) at ./Include/internal/pycore_ceval.h:72
#21 0x00005555557bd7ce in _PyEval_Vector (tstate=0x555555b2f5e8 <_PyRuntime+166312>, func=0x7ffff6bac7e0, locals=locals@entry=0x0, args=0x7fffffffaf98, argcount=<optimized out>, kwnames=0x0) at Python/ceval.c:6421
#22 0x00005555556d023e in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:393
#23 0x00005555556d059f in _PyObject_VectorcallTstate (tstate=0x555555b2f5e8 <_PyRuntime+166312>, callable=callable@entry=<function at remote 0x7ffff6bac7e0>, args=args@entry=0x7fffffffaf98, nargsf=nargsf@entry=9223372036854775809, 
    kwnames=kwnames@entry=0x0) at ./Include/internal/pycore_call.h:92
#24 0x00005555556d06e7 in PyObject_CallOneArg (func=func@entry=<function at remote 0x7ffff6bac7e0>, 
    arg=arg@entry=<Module(keywords=<NodeKeywords at remote 0x7ffff6683250>, own_markers=[], extra_keyword_matches=set(), stash=<Stash at remote 0x7ffff6698e50>) at remote 0x7ffff66a43c0>) at Objects/call.c:376
#25 0x00005555556dc4aa in property_descr_get (self=self@entry=<property at remote 0x7ffff6ba50f0>, 
    obj=obj@entry=<Module(keywords=<NodeKeywords at remote 0x7ffff6683250>, own_markers=[], extra_keyword_matches=set(), stash=<Stash at remote 0x7ffff6698e50>) at remote 0x7ffff66a43c0>, type=<optimized out>)
    at Objects/descrobject.c:1630
#26 0x000055555571c830 in _PyObject_GenericGetAttrWithDict (obj=<Module(keywords=<NodeKeywords at remote 0x7ffff6683250>, own_markers=[], extra_keyword_matches=set(), stash=<Stash at remote 0x7ffff6698e50>) at remote 0x7ffff66a43c0>, 
    name='obj', dict=dict@entry=0x0, suppress=suppress@entry=0) at Objects/object.c:1274
#27 0x000055555571cca5 in PyObject_GenericGetAttr (obj=<optimized out>, name=<optimized out>) at Objects/object.c:1362
#28 0x000055555571c317 in PyObject_GetAttr (v=v@entry=<Module(keywords=<NodeKeywords at remote 0x7ffff6683250>, own_markers=[], extra_keyword_matches=set(), stash=<Stash at remote 0x7ffff6698e50>) at remote 0x7ffff66a43c0>, name='obj')
    Objects/object.c:917
#29 0x00005555557b3781 in _PyEval_EvalFrameDefault (tstate=0x555555b2f5e8 <_PyRuntime+166312>, frame=0x7ffff7e6d048, throwflag=<optimized out>) at Python/ceval.c:3468
#30 0x00005555557bd6cd in _PyEval_EvalFrame (tstate=tstate@entry=0x555555b2f5e8 <_PyRuntime+166312>, frame=frame@entry=0x7ffff7e6cdb0, throwflag=throwflag@entry=0) at ./Include/internal/pycore_ceval.h:72
#31 0x00005555557bd7ce in _PyEval_Vector (tstate=0x555555b2f5e8 <_PyRuntime+166312>, func=0x7ffff6b60b50, locals=locals@entry=0x0, args=0x7ffff6682098, argcount=<optimized out>, kwnames=0x0) at Python/ceval.c:6421
#32 0x00005555556d023e in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:393
#33 0x00005555556cfde3 in _PyVectorcall_Call (tstate=tstate@entry=0x555555b2f5e8 <_PyRuntime+166312>, func=0x5555556d01ee <_PyFunction_Vectorcall>, callable=callable@entry=<function at remote 0x7ffff6b60b50>, tuple=tuple@entry=(<Module(keywords=<NodeKeywords at remote 0x7ffff6683250>, own_markers=[], extra_keyword_matches=set(), stash=<Stash at remote 0x7ffff6698e50>) at remote 0x7ffff66a43c0>,), kwargs=kwargs@entry=0x0) at Objects/call.c:245
#34 0x00005555556d0180 in _PyObject_Call (tstate=0x555555b2f5e8 <_PyRuntime+166312>, callable=callable@entry=<function at remote 0x7ffff6b60b50>, args=args@entry=(<Module(keywords=<NodeKeywords at remote 0x7ffff6683250>, own_markers=[], extra_keyword_matches=set(), stash=<Stash at remote 0x7ffff6698e50>) at remote 0x7ffff66a43c0>,), kwargs=kwargs@entry=0x0) at Objects/call.c:328
#35 0x00005555556d01c8 in PyObject_Call (callable=callable@entry=<function at remote 0x7ffff6b60b50>, args=args@entry=(<Module(keywords=<NodeKeywords at remote 0x7ffff6683250>, own_markers=[], extra_keyword_matches=set(), stash=<Stash at remote 0x7ffff6698e50>) at remote 0x7ffff66a43c0>,), kwargs=kwargs@entry=0x0) at Objects/call.c:355
#36 0x00005555557ab8c2 in do_call_core (tstate=tstate@entry=0x555555b2f5e8 <_PyRuntime+166312>, func=func@entry=<function at remote 0x7ffff6b60b50>, callargs=callargs@entry=(<Module(keywords=<NodeKeywords at remote 0x7ffff6683250>, own_markers=[], extra_keyword_matches=set(), stash=<Stash at remote 0x7ffff6698e50>) at remote 0x7ffff66a43c0>,), kwdict=kwdict@entry=0x0, use_tracing=0) at Python/ceval.c:7318
#37 0x00005555557bbc54 in _PyEval_EvalFrameDefault (tstate=0x555555b2f5e8 <_PyRuntime+166312>, frame=0x7ffff7e6ccc0, throwflag=<optimized out>) at Python/ceval.c:5378
#38 0x00005555557bd6cd in _PyEval_EvalFrame (tstate=tstate@entry=0x555555b2f5e8 <_PyRuntime+166312>, frame=frame@entry=0x7ffff7e6cb78, throwflag=throwflag@entry=0) at ./Include/internal/pycore_ceval.h:72
#39 0x00005555557bd7ce in _PyEval_Vector (tstate=0x555555b2f5e8 <_PyRuntime+166312>, func=0x7ffff7242e60, locals=locals@entry=0x0, args=0x7ffff7793e58, argcount=<optimized out>, kwnames=('collector',)) at Python/ceval.c:6421
#40 0x00005555556d023e in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:393
#41 0x00005555556d1b4a in _PyObject_FastCallDictTstate (tstate=tstate@entry=0x555555b2f5e8 <_PyRuntime+166312>, callable=callable@entry=<function at remote 0x7ffff7242e60>, args=args@entry=0x7fffffffb550, nargsf=nargsf@entry=1, kwargs=kwargs@entry={'collector': <Module(keywords=<NodeKeywords at remote 0x7ffff6683250>, own_markers=[], extra_keyword_matches=set(), stash=<Stash at remote 0x7ffff6698e50>) at remote 0x7ffff66a43c0>}) at Objects/call.c:152
#42 0x00005555556d1d05 in _PyObject_Call_Prepend (tstate=tstate@entry=0x555555b2f5e8 <_PyRuntime+166312>, callable=callable@entry=<function at remote 0x7ffff7242e60>, 
    obj=obj@entry=<_HookCaller(name='pytest_make_collect_report', _wrappers=[<HookImpl(function=<method at remote 0x7ffff67ae630>, argnames=('collector',), kwargnames=(), plugin=<CaptureManager(_method='fd', _global_capturing=<MultiCapture(in_=<FDCapture(targetfd=0, targetfd_invalid=None, targetfd_save=3, tmpfile=<_io.TextIOWrapper at remote 0x7ffff6911400>, syscapture=<SysCapture(_old=<_io.TextIOWrapper at remote 0x7ffff77fe7b0>, name='stdin', tmpfile=<DontReadFromInput() at remote 0x7ffff67b7df0>, _state='started') at remote 0x7ffff67a13c0>, _state='started') at remote 0x7ffff67a1230>, out=<FDCapture(targetfd=1, targetfd_invalid=None, targetfd_save=5, tmpfile=<EncodedFile at remote 0x7ffff6911220>, syscapture=<SysCapture(_old=<_io.TextIOWrapper at remote 0x7ffff77fe8a0>, name='stdout', tmpfile=<...>, _state='started') at remote 0x7ffff67b7e90>, _state='started') at remote 0x7ffff67b7990>, err=<FDCapture(targetfd=2, targetfd_invalid=None, targetfd_save=7, tmpfile=<EncodedFile at remote 0x7ffff67726c0>, syscapture=<SysCapture(...(truncated), args=args@entry=(), kwargs=kwargs@entry={'collector': <Module(keywords=<NodeKeywords at remote 0x7ffff6683250>, own_markers=[], extra_keyword_matches=set(), stash=<Stash at remote 0x7ffff6698e50>) at remote 0x7ffff66a43c0>}) at Objects/call.c:482
#43 0x0000555555739abc in slot_tp_call (
    self=<_HookCaller(name='pytest_make_collect_report', _wrappers=[<HookImpl(function=<method at remote 0x7ffff67ae630>, argnames=('collector',), kwargnames=(), plugin=<CaptureManager(_method='fd', _global_capturing=<MultiCapture(in_=<FDCapture(targetfd=0, targetfd_invalid=None, targetfd_save=3, tmpfile=<_io.TextIOWrapper at remote 0x7ffff6911400>, syscapture=<SysCapture(_old=<_io.TextIOWrapper at remote 0x7ffff77fe7b0>, name='stdin', tmpfile=<DontReadFromInput() at remote 0x7ffff67b7df0>, _state='started') at remote 0x7ffff67a13c0>, _state='started') at remote 0x7ffff67a1230>, out=<FDCapture(targetfd=1, targetfd_invalid=None, targetfd_save=5, tmpfile=<EncodedFile at remote 0x7ffff6911220>, syscapture=<SysCapture(_old=<_io.TextIOWrapper at remote 0x7ffff77fe8a0>, name='stdout', tmpfile=<...>, _state='started') at remote 0x7ffff67b7e90>, _state='started') at remote 0x7ffff67b7990>, err=<FDCapture(targetfd=2, targetfd_invalid=None, targetfd_save=7, tmpfile=<EncodedFile at remote 0x7ffff67726c0>, syscapture=<SysCapture(...(truncated), args=(), kwds={'collector': <Module(keywords=<NodeKeywords at remote 0x7ffff6683250>, own_markers=[], extra_keyword_matches=set(), stash=<Stash at remote 0x7ffff6698e50>) at remote 0x7ffff66a43c0>}) at Objects/typeobject.c:7598
#44 0x00005555556d03e3 in _PyObject_MakeTpCall (tstate=tstate@entry=0x555555b2f5e8 <_PyRuntime+166312>, 
    callable=callable@entry=<_HookCaller(name='pytest_make_collect_report', _wrappers=[<HookImpl(function=<method at remote 0x7ffff67ae630>, argnames=('collector',), kwargnames=(), plugin=<CaptureManager(_method='fd', _global_capturing=<MultiCapture(in_=<FDCapture(targetfd=0, targetfd_invalid=None, targetfd_save=3, tmpfile=<_io.TextIOWrapper at remote 0x7ffff6911400>, syscapture=<SysCapture(_old=<_io.TextIOWrapper at remote 0x7ffff77fe7b0>, name='stdin', tmpfile=<DontReadFromInput() at remote 0x7ffff67b7df0>, _state='started') at remote 0x7ffff67a13c0>, _state='started') at remote 0x7ffff67a1230>, out=<FDCapture(targetfd=1, targetfd_invalid=None, targetfd_save=5, tmpfile=<EncodedFile at remote 0x7ffff6911220>, syscapture=<SysCapture(_old=<_io.TextIOWrapper at remote 0x7ffff77fe8a0>, name='stdout', tmpfile=<...>, _state='started') at remote 0x7ffff67b7e90>, _state='started') at remote 0x7ffff67b7990>, err=<FDCapture(targetfd=2, targetfd_invalid=None, targetfd_save=7, tmpfile=<EncodedFile at remote 0x7ffff67726c0>, syscapture=<SysCapture(...(truncated), args=args@entry=0x7ffff7e6cb60, nargs=<optimized out>, keywords=keywords@entry=('collector',)) at Objects/call.c:214
#45 0x00005555556d061f in _PyObject_VectorcallTstate (tstate=0x555555b2f5e8 <_PyRuntime+166312>, 
    callable=callable@entry=<_HookCaller(name='pytest_make_collect_report', _wrappers=[<HookImpl(function=<method at remote 0x7ffff67ae630>, argnames=('collector',), kwargnames=(), plugin=<CaptureManager(_method='fd', _global_capturing=<MultiCapture(in_=<FDCapture(targetfd=0, targetfd_invalid=None, targetfd_save=3, tmpfile=<_io.TextIOWrapper at remote 0x7ffff6911400>, syscapture=<SysCapture(_old=<_io.TextIOWrapper at remote 0x7ffff77fe7b0>, name='stdin', tmpfile=<DontReadFromInput() at remote 0x7ffff67b7df0>, _state='started') at remote 0x7ffff67a13c0>, _state='started') at remote 0x7ffff67a1230>, out=<FDCapture(targetfd=1, targetfd_invalid=None, targetfd_save=5, tmpfile=<EncodedFile at remote 0x7ffff6911220>, syscapture=<SysCapture(_old=<_io.TextIOWrapper at remote 0x7ffff77fe8a0>, name='stdout', tmpfile=<...>, _state='started') at remote 0x7ffff67b7e90>, _state='started') at remote 0x7ffff67b7990>, err=<FDCapture(targetfd=2, targetfd_invalid=None, targetfd_save=7, tmpfile=<EncodedFile at remote 0x7ffff67726c0>, syscapture=<SysCapture(...(truncated), args=args@entry=0x7ffff7e6cb60, nargsf=<optimized out>, kwnames=kwnames@entry=('collector',)) at ./Include/internal/pycore_call.h:90
#46 0x00005555556d0676 in PyObject_Vectorcall (
    callable=callable@entry=<_HookCaller(name='pytest_make_collect_report', _wrappers=[<HookImpl(function=<method at remote 0x7ffff67ae630>, argnames=('collector',), kwargnames=(), plugin=<CaptureManager(_method='fd', _global_capturing=<MultiCapture(in_=<FDCapture(targetfd=0, targetfd_invalid=None, targetfd_save=3, tmpfile=<_io.TextIOWrapper at remote 0x7ffff6911400>, syscapture=<SysCapture(_old=<_io.TextIOWrapper at remote 0x7ffff77fe7b0>, name='stdin', tmpfile=<DontReadFromInput() at remote 0x7ffff67b7df0>, _state='started') at remote 0x7ffff67a13c0>, _state='started') at remote 0x7ffff67a1230>, out=<FDCapture(targetfd=1, targetfd_invalid=None, targetfd_save=5, tmpfile=<EncodedFile at remote 0x7ffff6911220>, syscapture=<SysCapture(_old=<_io.TextIOWrapper at remote 0x7ffff77fe8a0>, name='stdout', tmpfile=<...>, _state='started') at remote 0x7ffff67b7e90>, _state='started') at remote 0x7ffff67b7990>, err=<FDCapture(targetfd=2, targetfd_invalid=None, targetfd_save=7, tmpfile=<EncodedFile at remote 0x7ffff67726c0>, syscapture=<SysCapture(...(truncated), args=args@entry=0x7ffff7e6cb60, nargsf=<optimized out>, kwnames=kwnames@entry=('collector',)) at Objects/call.c:299
#47 0x00005555557b8fef in _PyEval_EvalFrameDefault (tstate=0x555555b2f5e8 <_PyRuntime+166312>, frame=0x7ffff7e6cae8, throwflag=<optimized out>) at Python/ceval.c:4773
#48 0x00005555556e64ff in _PyEval_EvalFrame (tstate=tstate@entry=0x555555b2f5e8 <_PyRuntime+166312>, frame=frame@entry=0x7ffff6684ca0, throwflag=throwflag@entry=0) at ./Include/internal/pycore_ceval.h:72
#49 0x00005555556e6831 in gen_send_ex2 (gen=0x7ffff6684c50, arg=arg@entry=0x0, presult=presult@entry=0x7fffffffb840, exc=exc@entry=0, closing=closing@entry=0) at Objects/genobject.c:219
#50 0x00005555556e7e64 in gen_iternext (gen=<optimized out>) at Objects/genobject.c:594
#51 0x00005555556f93d3 in list_extend (self=self@entry=0x7ffff676b430, iterable=iterable@entry=<generator at remote 0x7ffff6684c50>) at Objects/listobject.c:960
#52 0x00005555557bb04e in _PyEval_EvalFrameDefault (tstate=0x555555b2f5e8 <_PyRuntime+166312>, frame=0x7ffff7e6c9f8, throwflag=<optimized out>) at Python/ceval.c:5223
#53 0x00005555557bd6cd in _PyEval_EvalFrame (tstate=tstate@entry=0x555555b2f5e8 <_PyRuntime+166312>, frame=frame@entry=0x7ffff7e6c998, throwflag=throwflag@entry=0) at ./Include/internal/pycore_ceval.h:72
#54 0x00005555557bd7ce in _PyEval_Vector (tstate=0x555555b2f5e8 <_PyRuntime+166312>, func=0x7ffff6b615a0, locals=locals@entry=0x0, args=0x7ffff6681878, argcount=<optimized out>, kwnames=0x0) at Python/ceval.c:6421
#55 0x00005555556d023e in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:393
#56 0x00005555556cfde3 in _PyVectorcall_Call (tstate=tstate@entry=0x555555b2f5e8 <_PyRuntime+166312>, func=0x5555556d01ee <_PyFunction_Vectorcall>, callable=callable@entry=<function at remote 0x7ffff6b615a0>, tuple=tuple@entry=(<Session at remote 0x7ffff698c180>,), kwargs=kwargs@entry=0x0) at Objects/call.c:245
#57 0x00005555556d0180 in _PyObject_Call (tstate=0x555555b2f5e8 <_PyRuntime+166312>, callable=callable@entry=<function at remote 0x7ffff6b615a0>, args=args@entry=(<Session at remote 0x7ffff698c180>,), kwargs=kwargs@entry=0x0) at Objects/call.c:328
#58 0x00005555556d01c8 in PyObject_Call (callable=callable@entry=<function at remote 0x7ffff6b615a0>, args=args@entry=(<Session at remote 0x7ffff698c180>,), kwargs=kwargs@entry=0x0) at Objects/call.c:355
#59 0x00005555557ab8c2 in do_call_core (tstate=tstate@entry=0x555555b2f5e8 <_PyRuntime+166312>, func=func@entry=<function at remote 0x7ffff6b615a0>, callargs=callargs@entry=(<Session at remote 0x7ffff698c180>,), kwdict=kwdict@entry=0x0, use_tracing=0) at Python/ceval.c:7318
#60 0x00005555557bbc54 in _PyEval_EvalFrameDefault (tstate=0x555555b2f5e8 <_PyRuntime+166312>, frame=0x7ffff7e6c8a8, throwflag=<optimized out>) at Python/ceval.c:5378
#61 0x00005555557bd6cd in _PyEval_EvalFrame (tstate=tstate@entry=0x555555b2f5e8 <_PyRuntime+166312>, frame=frame@entry=0x7ffff7e6c760, throwflag=throwflag@entry=0) at ./Include/internal/pycore_ceval.h:72
#62 0x00005555557bd7ce in _PyEval_Vector (tstate=0x555555b2f5e8 <_PyRuntime+166312>, func=0x7ffff7242e60, locals=locals@entry=0x0, args=0x7ffff7792da8, argcount=<optimized out>, kwnames=('session',)) at Python/ceval.c:6421
#63 0x00005555556d023e in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:393
#64 0x00005555556d1b4a in _PyObject_FastCallDictTstate (tstate=tstate@entry=0x555555b2f5e8 <_PyRuntime+166312>, callable=callable@entry=<function at remote 0x7ffff7242e60>, args=args@entry=0x7fffffffbd50, nargsf=nargsf@entry=1, kwargs=kwargs@entry={'session': <Session at remote 0x7ffff698c180>}) at Objects/call.c:152
#65 0x00005555556d1d05 in _PyObject_Call_Prepend (tstate=tstate@entry=0x555555b2f5e8 <_PyRuntime+166312>, callable=callable@entry=<function at remote 0x7ffff7242e60>, 
    obj=obj@entry=<_HookCaller(name='pytest_collection', _wrappers=[<HookImpl(function=<method at remote 0x7ffff68afd10>, argnames=(), kwargnames=(...), plugin=<Config(option=<Namespace(keyword='', markexpr='', maxfail=0, continue_on_collection_errors=False, confcutdir=None, noconftest=False, keepduplicates=False, collect_in_virtualenv=False, importmode='prepend', basetemp=None, durations=None, durations_min=<float at remote 0x7ffff7792500>, version=0, plugins=['pytester'], traceconfig=False, showfixtures=False, show_fixtures_per_test=False, verbose=0, no_header=False, no_summary=False, reportchars='fEX', disable_warnings=False, showlocals=False, tbstyle='auto', showcapture='all', fulltrace=False, color='auto', code_highlight='yes', capture='fd', runxfail=False, pastebin=None, assertmode='rewrite', xmlpath=None, junitprefix=None, doctestmodules=False, doctestreport='udiff', doctestglob=[], doctest_ignore_import_errors=False, doctest_continue_on_failure=False, last_failed_no_failures='all', stepwise=False, stepwise_skip=False, ...(truncated), args=args@entry=(), kwargs=kwargs@entry={'session': <Session at remote 0x7ffff698c180>}) at Objects/call.c:482
#66 0x0000555555739abc in slot_tp_call (
    self=<_HookCaller(name='pytest_collection', _wrappers=[<HookImpl(function=<method at remote 0x7ffff68afd10>, argnames=(), kwargnames=(...), plugin=<Config(option=<Namespace(keyword='', markexpr='', maxfail=0, continue_on_collection_errors=False, confcutdir=None, noconftest=False, keepduplicates=False, collect_in_virtualenv=False, importmode='prepend', basetemp=None, durations=None, durations_min=<float at remote 0x7ffff7792500>, version=0, plugins=['pytester'], traceconfig=False, showfixtures=False, show_fixtures_per_test=False, verbose=0, no_header=False, no_summary=False, reportchars='fEX', disable_warnings=False, showlocals=False, tbstyle='auto', showcapture='all', fulltrace=False, color='auto', code_highlight='yes', capture='fd', runxfail=False, pastebin=None, assertmode='rewrite', xmlpath=None, junitprefix=None, doctestmodules=False, doctestreport='udiff', doctestglob=[], doctest_ignore_import_errors=False, doctest_continue_on_failure=False, last_failed_no_failures='all', stepwise=False, stepwise_skip=False, ...(truncated), args=(), kwds={'session': <Session at remote 0x7ffff698c180>}) at Objects/typeobject.c:7598
#67 0x00005555556d03e3 in _PyObject_MakeTpCall (tstate=tstate@entry=0x555555b2f5e8 <_PyRuntime+166312>, 
    callable=callable@entry=<_HookCaller(name='pytest_collection', _wrappers=[<HookImpl(function=<method at remote 0x7ffff68afd10>, argnames=(), kwargnames=(...), plugin=<Config(option=<Namespace(keyword='', markexpr='', maxfail=0, continue_on_collection_errors=False, confcutdir=None, noconftest=False, keepduplicates=False, collect_in_virtualenv=False, importmode='prepend', basetemp=None, durations=None, durations_min=<float at remote 0x7ffff7792500>, version=0, plugins=['pytester'], traceconfig=False, showfixtures=False, show_fixtures_per_test=False, verbose=0, no_header=False, no_summary=False, reportchars='fEX', disable_warnings=False, showlocals=False, tbstyle='auto', showcapture='all', fulltrace=False, color='auto', code_highlight='yes', capture='fd', runxfail=False, pastebin=None, assertmode='rewrite', xmlpath=None, junitprefix=None, doctestmodules=False, doctestreport='udiff', doctestglob=[], doctest_ignore_import_errors=False, doctest_continue_on_failure=False, last_failed_no_failures='all', stepwise=False, stepwise_skip=False, ...(truncated), args=args@entry=0x7ffff7e6c758, nargs=<optimized out>, keywords=keywords@entry=('session',)) at Objects/call.c:214
#68 0x00005555556d061f in _PyObject_VectorcallTstate (tstate=0x555555b2f5e8 <_PyRuntime+166312>, 
    callable=callable@entry=<_HookCaller(name='pytest_collection', _wrappers=[<HookImpl(function=<method at remote 0x7ffff68afd10>, argnames=(), kwargnames=(...), plugin=<Config(option=<Namespace(keyword='', markexpr='', maxfail=0, continue_on_collection_errors=False, confcutdir=None, noconftest=False, keepduplicates=False, collect_in_virtualenv=False, importmode='prepend', basetemp=None, durations=None, durations_min=<float at remote 0x7ffff7792500>, version=0, plugins=['pytester'], traceconfig=False, showfixtures=False, show_fixtures_per_test=False, verbose=0, no_header=False, no_summary=False, reportchars='fEX', disable_warnings=False, showlocals=False, tbstyle='auto', showcapture='all', fulltrace=False, color='auto', code_highlight='yes', capture='fd', runxfail=False, pastebin=None, assertmode='rewrite', xmlpath=None, junitprefix=None, doctestmodules=False, doctestreport='udiff', doctestglob=[], doctest_ignore_import_errors=False, doctest_continue_on_failure=False, last_failed_no_failures='all', stepwise=False, stepwise_skip=False, ...(truncated), args=args@entry=0x7ffff7e6c758, nargsf=<optimized out>, kwnames=kwnames@entry=('session',)) at ./Include/internal/pycore_call.h:90
#69 0x00005555556d0676 in PyObject_Vectorcall (
    callable=callable@entry=<_HookCaller(name='pytest_collection', _wrappers=[<HookImpl(function=<method at remote 0x7ffff68afd10>, argnames=(), kwargnames=(...), plugin=<Config(option=<Namespace(keyword='', markexpr='', maxfail=0, continue_on_collection_errors=False, confcutdir=None, noconftest=False, keepduplicates=False, collect_in_virtualenv=False, importmode='prepend', basetemp=None, durations=None, durations_min=<float at remote 0x7ffff7792500>, version=0, plugins=['pytester'], traceconfig=False, showfixtures=False, show_fixtures_per_test=False, verbose=0, no_header=False, no_summary=False, reportchars='fEX', disable_warnings=False, showlocals=False, tbstyle='auto', showcapture='all', fulltrace=False, color='auto', code_highlight='yes', capture='fd', runxfail=False, pastebin=None, assertmode='rewrite', xmlpath=None, junitprefix=None, doctestmodules=False, doctestreport='udiff', doctestglob=[], doctest_ignore_import_errors=False, doctest_continue_on_failure=False, last_failed_no_failures='all', stepwise=False, stepwise_skip=False, ...(truncated), args=args@entry=0x7ffff7e6c758, nargsf=<optimized out>, kwnames=kwnames@entry=('session',)) at Objects/call.c:299
#70 0x00005555557b8fef in _PyEval_EvalFrameDefault (tstate=0x555555b2f5e8 <_PyRuntime+166312>, frame=0x7ffff7e6c6f0, throwflag=<optimized out>) at Python/ceval.c:4773
#71 0x00005555557bd6cd in _PyEval_EvalFrame (tstate=tstate@entry=0x555555b2f5e8 <_PyRuntime+166312>, frame=frame@entry=0x7ffff7e6c5b8, throwflag=throwflag@entry=0) at ./Include/internal/pycore_ceval.h:72
#72 0x00005555557bd7ce in _PyEval_Vector (tstate=0x555555b2f5e8 <_PyRuntime+166312>, func=0x7ffff6b61440, locals=locals@entry=0x0, args=0x7ffff6775238, argcount=<optimized out>, kwnames=0x0) at Python/ceval.c:6421
#73 0x00005555556d023e in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:393
#74 0x00005555556cfde3 in _PyVectorcall_Call (tstate=tstate@entry=0x555555b2f5e8 <_PyRuntime+166312>, func=0x5555556d01ee <_PyFunction_Vectorcall>, callable=callable@entry=<function at remote 0x7ffff6b61440>, 
    tuple=tuple@entry=(<Config(option=<Namespace(keyword='', markexpr='', maxfail=0, continue_on_collection_errors=False, confcutdir=None, noconftest=False, keepduplicates=False, collect_in_virtualenv=False, importmode='prepend', basetemp=None, durations=None, durations_min=<float at remote 0x7ffff7792500>, version=0, plugins=['pytester'], traceconfig=False, showfixtures=False, show_fixtures_per_test=False, verbose=0, no_header=False, no_summary=False, reportchars='fEX', disable_warnings=False, showlocals=False, tbstyle='auto', showcapture='all', fulltrace=False, color='auto', code_highlight='yes', capture='fd', runxfail=False, pastebin=None, assertmode='rewrite', xmlpath=None, junitprefix=None, doctestmodules=False, doctestreport='udiff', doctestglob=[], doctest_ignore_import_errors=False, doctest_continue_on_failure=False, last_failed_no_failures='all', stepwise=False, stepwise_skip=False, lsof=False, runpytest='inprocess', markers=False, usepdb=False, usepdb_cls=None, trace=False, lf=False, failedfirst=False, newfirst=False, ca...(truncated), kwargs=kwargs@entry=0x0) at Objects/call.c:245
#75 0x00005555556d0180 in _PyObject_Call (tstate=0x555555b2f5e8 <_PyRuntime+166312>, callable=callable@entry=<function at remote 0x7ffff6b61440>, 
    args=args@entry=(<Config(option=<Namespace(keyword='', markexpr='', maxfail=0, continue_on_collection_errors=False, confcutdir=None, noconftest=False, keepduplicates=False, collect_in_virtualenv=False, importmode='prepend', basetemp=None, durations=None, durations_min=<float at remote 0x7ffff7792500>, version=0, plugins=['pytester'], traceconfig=False, showfixtures=False, show_fixtures_per_test=False, verbose=0, no_header=False, no_summary=False, reportchars='fEX', disable_warnings=False, showlocals=False, tbstyle='auto', showcapture='all', fulltrace=False, color='auto', code_highlight='yes', capture='fd', runxfail=False, pastebin=None, assertmode='rewrite', xmlpath=None, junitprefix=None, doctestmodules=False, doctestreport='udiff', doctestglob=[], doctest_ignore_import_errors=False, doctest_continue_on_failure=False, last_failed_no_failures='all', stepwise=False, stepwise_skip=False, lsof=False, runpytest='inprocess', markers=False, usepdb=False, usepdb_cls=None, trace=False, lf=False, failedfirst=False, newfirst=False, ca...(truncated), kwargs=kwargs@entry=0x0) at Objects/call.c:328
#76 0x00005555556d01c8 in PyObject_Call (callable=callable@entry=<function at remote 0x7ffff6b61440>, 
    args=args@entry=(<Config(option=<Namespace(keyword='', markexpr='', maxfail=0, continue_on_collection_errors=False, confcutdir=None, noconftest=False, keepduplicates=False, collect_in_virtualenv=False, importmode='prepend', basetemp=None, durations=None, durations_min=<float at remote 0x7ffff7792500>, version=0, plugins=['pytester'], traceconfig=False, showfixtures=False, show_fixtures_per_test=False, verbose=0, no_header=False, no_summary=False, reportchars='fEX', disable_warnings=False, showlocals=False, tbstyle='auto', showcapture='all', fulltrace=False, color='auto', code_highlight='yes', capture='fd', runxfail=False, pastebin=None, assertmode='rewrite', xmlpath=None, junitprefix=None, doctestmodules=False, doctestreport='udiff', doctestglob=[], doctest_ignore_import_errors=False, doctest_continue_on_failure=False, last_failed_no_failures='all', stepwise=False, stepwise_skip=False, lsof=False, runpytest='inprocess', markers=False, usepdb=False, usepdb_cls=None, trace=False, lf=False, failedfirst=False, newfirst=False, ca...(truncated), kwargs=kwargs@entry=0x0) at Objects/call.c:355
#77 0x00005555557ab8c2 in do_call_core (tstate=tstate@entry=0x555555b2f5e8 <_PyRuntime+166312>, func=func@entry=<function at remote 0x7ffff6b61440>, 
    callargs=callargs@entry=(<Config(option=<Namespace(keyword='', markexpr='', maxfail=0, continue_on_collection_errors=False, confcutdir=None, noconftest=False, keepduplicates=False, collect_in_virtualenv=False, importmode='prepend', basetemp=None, durations=None, durations_min=<float at remote 0x7ffff7792500>, version=0, plugins=['pytester'], traceconfig=False, showfixtures=False, show_fixtures_per_test=False, verbose=0, no_header=False, no_summary=False, reportchars='fEX', disable_warnings=False, showlocals=False, tbstyle='auto', showcapture='all', fulltrace=False, color='auto', code_highlight='yes', capture='fd', runxfail=False, pastebin=None, assertmode='rewrite', xmlpath=None, junitprefix=None, doctestmodules=False, doctestreport='udiff', doctestglob=[], doctest_ignore_import_errors=False, doctest_continue_on_failure=False, last_failed_no_failures='all', stepwise=False, stepwise_skip=False, lsof=False, runpytest='inprocess', markers=False, usepdb=False, usepdb_cls=None, trace=False, lf=False, failedfirst=False, newfirst=False, ca...(truncated), kwdict=kwdict@entry=0x0, use_tracing=0) at Python/ceval.c:7318
#78 0x00005555557bbc54 in _PyEval_EvalFrameDefault (tstate=0x555555b2f5e8 <_PyRuntime+166312>, frame=0x7ffff7e6c4c8, throwflag=<optimized out>) at Python/ceval.c:5378
#79 0x00005555557bd6cd in _PyEval_EvalFrame (tstate=tstate@entry=0x555555b2f5e8 <_PyRuntime+166312>, frame=frame@entry=0x7ffff7e6c380, throwflag=throwflag@entry=0) at ./Include/internal/pycore_ceval.h:72
#80 0x00005555557bd7ce in _PyEval_Vector (tstate=0x555555b2f5e8 <_PyRuntime+166312>, func=0x7ffff7242e60, locals=locals@entry=0x0, args=0x7ffff7792c28, argcount=<optimized out>, kwnames=('config',)) at Python/ceval.c:6421
--Type <RET> for more, q to quit, c to continue without paging--
#81 0x00005555556d023e in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:393
#82 0x00005555556d1b4a in _PyObject_FastCallDictTstate (tstate=tstate@entry=0x555555b2f5e8 <_PyRuntime+166312>, callable=callable@entry=<function at remote 0x7ffff7242e60>, args=args@entry=0x7fffffffc350, nargsf=nargsf@entry=1, 
    kwargs=kwargs@entry={'config': <Config(option=<Namespace(keyword='', markexpr='', maxfail=0, continue_on_collection_errors=False, confcutdir=None, noconftest=False, keepduplicates=False, collect_in_virtualenv=False, importmode='prepend', basetemp=None, durations=None, durations_min=<float at remote 0x7ffff7792500>, version=0, plugins=['pytester'], traceconfig=False, showfixtures=False, show_fixtures_per_test=False, verbose=0, no_header=False, no_summary=False, reportchars='fEX', disable_warnings=False, showlocals=False, tbstyle='auto', showcapture='all', fulltrace=False, color='auto', code_highlight='yes', capture='fd', runxfail=False, pastebin=None, assertmode='rewrite', xmlpath=None, junitprefix=None, doctestmodules=False, doctestreport='udiff', doctestglob=[], doctest_ignore_import_errors=False, doctest_continue_on_failure=False, last_failed_no_failures='all', stepwise=False, stepwise_skip=False, lsof=False, runpytest='inprocess', markers=False, usepdb=False, usepdb_cls=None, trace=False, lf=False, failedfirst=False, newfirst...(truncated)) at Objects/call.c:152
#83 0x00005555556d1d05 in _PyObject_Call_Prepend (tstate=tstate@entry=0x555555b2f5e8 <_PyRuntime+166312>, callable=callable@entry=<function at remote 0x7ffff7242e60>, 
    obj=obj@entry=<_HookCaller(name='pytest_cmdline_main', _wrappers=[], _nonwrappers=[<HookImpl(function=<function at remote 0x7ffff6b61440>, argnames=('config',), kwargnames=(), plugin=<module at remote 0x7ffff6dd0050>, opts={'tryfirst': False, 'trylast': False, 'optionalhook': False, 'hookwrapper': False, 'specname': None}, plugin_name='main', tryfirst=False, trylast=False, optionalhook=False, hookwrapper=False, specname=None) at remote 0x7ffff68ba810>, <HookImpl(function=<function at remote 0x7ffff68a9230>, argnames=('config',), kwargnames=(...), plugin=<module at remote 0x7ffff68c3d70>, opts={'tryfirst': False, 'trylast': False, 'optionalhook': False, 'hookwrapper': False, 'specname': None}, plugin_name='helpconfig', tryfirst=False, trylast=False, optionalhook=False, hookwrapper=False, specname=None) at remote 0x7ffff68c4b50>, <HookImpl(function=<function at remote 0x7ffff6b77e30>, argnames=('config',), kwargnames=(...), plugin=<module at remote 0x7ffff6b7ddf0>, opts={'tryfirst': False, 'trylast': False, 'optionalhook': F...(truncated), args=args@entry=(), 
    kwargs=kwargs@entry={'config': <Config(option=<Namespace(keyword='', markexpr='', maxfail=0, continue_on_collection_errors=False, confcutdir=None, noconftest=False, keepduplicates=False, collect_in_virtualenv=False, importmode='prepend', basetemp=None, durations=None, durations_min=<float at remote 0x7ffff7792500>, version=0, plugins=['pytester'], traceconfig=False, showfixtures=False, show_fixtures_per_test=False, verbose=0, no_header=False, no_summary=False, reportchars='fEX', disable_warnings=False, showlocals=False, tbstyle='auto', showcapture='all', fulltrace=False, color='auto', code_highlight='yes', capture='fd', runxfail=False, pastebin=None, assertmode='rewrite', xmlpath=None, junitprefix=None, doctestmodules=False, doctestreport='udiff', doctestglob=[], doctest_ignore_import_errors=False, doctest_continue_on_failure=False, last_failed_no_failures='all', stepwise=False, stepwise_skip=False, lsof=False, runpytest='inprocess', markers=False, usepdb=False, usepdb_cls=None, trace=False, lf=False, failedfirst=False, newfirst...(truncated)) at Objects/call.c:482
#84 0x0000555555739abc in slot_tp_call (
    self=<_HookCaller(name='pytest_cmdline_main', _wrappers=[], _nonwrappers=[<HookImpl(function=<function at remote 0x7ffff6b61440>, argnames=('config',), kwargnames=(), plugin=<module at remote 0x7ffff6dd0050>, opts={'tryfirst': False, 'trylast': False, 'optionalhook': False, 'hookwrapper': False, 'specname': None}, plugin_name='main', tryfirst=False, trylast=False, optionalhook=False, hookwrapper=False, specname=None) at remote 0x7ffff68ba810>, <HookImpl(function=<function at remote 0x7ffff68a9230>, argnames=('config',), kwargnames=(...), plugin=<module at remote 0x7ffff68c3d70>, opts={'tryfirst': False, 'trylast': False, 'optionalhook': False, 'hookwrapper': False, 'specname': None}, plugin_name='helpconfig', tryfirst=False, trylast=False, optionalhook=False, hookwrapper=False, specname=None) at remote 0x7ffff68c4b50>, <HookImpl(function=<function at remote 0x7ffff6b77e30>, argnames=('config',), kwargnames=(...), plugin=<module at remote 0x7ffff6b7ddf0>, opts={'tryfirst': False, 'trylast': False, 'optionalhook': F...(truncated), args=(), 
    kwds={'config': <Config(option=<Namespace(keyword='', markexpr='', maxfail=0, continue_on_collection_errors=False, confcutdir=None, noconftest=False, keepduplicates=False, collect_in_virtualenv=False, importmode='prepend', basetemp=None, durations=None, durations_min=<float at remote 0x7ffff7792500>, version=0, plugins=['pytester'], traceconfig=False, showfixtures=False, show_fixtures_per_test=False, verbose=0, no_header=False, no_summary=False, reportchars='fEX', disable_warnings=False, showlocals=False, tbstyle='auto', showcapture='all', fulltrace=False, color='auto', code_highlight='yes', capture='fd', runxfail=False, pastebin=None, assertmode='rewrite', xmlpath=None, junitprefix=None, doctestmodules=False, doctestreport='udiff', doctestglob=[], doctest_ignore_import_errors=False, doctest_continue_on_failure=False, last_failed_no_failures='all', stepwise=False, stepwise_skip=False, lsof=False, runpytest='inprocess', markers=False, usepdb=False, usepdb_cls=None, trace=False, lf=False, failedfirst=False, newfirst...(truncated)) at Objects/typeobject.c:7598
#85 0x00005555556d03e3 in _PyObject_MakeTpCall (tstate=tstate@entry=0x555555b2f5e8 <_PyRuntime+166312>, 
    callable=callable@entry=<_HookCaller(name='pytest_cmdline_main', _wrappers=[], _nonwrappers=[<HookImpl(function=<function at remote 0x7ffff6b61440>, argnames=('config',), kwargnames=(), plugin=<module at remote 0x7ffff6dd0050>, opts={'tryfirst': False, 'trylast': False, 'optionalhook': False, 'hookwrapper': False, 'specname': None}, plugin_name='main', tryfirst=False, trylast=False, optionalhook=False, hookwrapper=False, specname=None) at remote 0x7ffff68ba810>, <HookImpl(function=<function at remote 0x7ffff68a9230>, argnames=('config',), kwargnames=(...), plugin=<module at remote 0x7ffff68c3d70>, opts={'tryfirst': False, 'trylast': False, 'optionalhook': False, 'hookwrapper': False, 'specname': None}, plugin_name='helpconfig', tryfirst=False, trylast=False, optionalhook=False, hookwrapper=False, specname=None) at remote 0x7ffff68c4b50>, <HookImpl(function=<function at remote 0x7ffff6b77e30>, argnames=('config',), kwargnames=(...), plugin=<module at remote 0x7ffff6b7ddf0>, opts={'tryfirst': False, 'trylast': False, 'optionalhook': F...(truncated), args=args@entry=0x7ffff7e6c358, nargs=<optimized out>, keywords=keywords@entry=('config',)) at Objects/call.c:214
#86 0x00005555556d061f in _PyObject_VectorcallTstate (tstate=0x555555b2f5e8 <_PyRuntime+166312>, 
    callable=callable@entry=<_HookCaller(name='pytest_cmdline_main', _wrappers=[], _nonwrappers=[<HookImpl(function=<function at remote 0x7ffff6b61440>, argnames=('config',), kwargnames=(), plugin=<module at remote 0x7ffff6dd0050>, opts={'tryfirst': False, 'trylast': False, 'optionalhook': False, 'hookwrapper': False, 'specname': None}, plugin_name='main', tryfirst=False, trylast=False, optionalhook=False, hookwrapper=False, specname=None) at remote 0x7ffff68ba810>, <HookImpl(function=<function at remote 0x7ffff68a9230>, argnames=('config',), kwargnames=(...), plugin=<module at remote 0x7ffff68c3d70>, opts={'tryfirst': False, 'trylast': False, 'optionalhook': False, 'hookwrapper': False, 'specname': None}, plugin_name='helpconfig', tryfirst=False, trylast=False, optionalhook=False, hookwrapper=False, specname=None) at remote 0x7ffff68c4b50>, <HookImpl(function=<function at remote 0x7ffff6b77e30>, argnames=('config',), kwargnames=(...), plugin=<module at remote 0x7ffff6b7ddf0>, opts={'tryfirst': False, 'trylast': False, 'optionalhook': F...(truncated), args=args@entry=0x7ffff7e6c358, nargsf=<optimized out>, kwnames=kwnames@entry=('config',)) at ./Include/internal/pycore_call.h:90
#87 0x00005555556d0676 in PyObject_Vectorcall (
    callable=callable@entry=<_HookCaller(name='pytest_cmdline_main', _wrappers=[], _nonwrappers=[<HookImpl(function=<function at remote 0x7ffff6b61440>, argnames=('config',), kwargnames=(), plugin=<module at remote 0x7ffff6dd0050>, opts={'tryfirst': False, 'trylast': False, 'optionalhook': False, 'hookwrapper': False, 'specname': None}, plugin_name='main', tryfirst=False, trylast=False, optionalhook=False, hookwrapper=False, specname=None) at remote 0x7ffff68ba810>, <HookImpl(function=<function at remote 0x7ffff68a9230>, argnames=('config',), kwargnames=(...), plugin=<module at remote 0x7ffff68c3d70>, opts={'tryfirst': False, 'trylast': False, 'optionalhook': False, 'hookwrapper': False, 'specname': None}, plugin_name='helpconfig', tryfirst=False, trylast=False, optionalhook=False, hookwrapper=False, specname=None) at remote 0x7ffff68c4b50>, <HookImpl(function=<function at remote 0x7ffff6b77e30>, argnames=('config',), kwargnames=(...), plugin=<module at remote 0x7ffff6b7ddf0>, opts={'tryfirst': False, 'trylast': False, 'optionalhook': F...(truncated), args=args@entry=0x7ffff7e6c358, nargsf=<optimized out>, kwnames=kwnames@entry=('config',)) at Objects/call.c:299
#88 0x00005555557b8fef in _PyEval_EvalFrameDefault (tstate=0x555555b2f5e8 <_PyRuntime+166312>, frame=0x7ffff7e6c2a8, throwflag=<optimized out>) at Python/ceval.c:4773
#89 0x00005555557bd6cd in _PyEval_EvalFrame (tstate=tstate@entry=0x555555b2f5e8 <_PyRuntime+166312>, frame=frame@entry=0x7ffff7e6c1b8, throwflag=throwflag@entry=0) at ./Include/internal/pycore_ceval.h:72
#90 0x00005555557bd7ce in _PyEval_Vector (tstate=tstate@entry=0x555555b2f5e8 <_PyRuntime+166312>, func=func@entry=0x7ffff7681b20, 
    locals=locals@entry={'__name__': '__main__', '__doc__': 'The pytest entry point.', '__package__': 'pytest', '__loader__': <SourceFileLoader(name='pytest.__main__', path='/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pytest/__main__.py') at remote 0x7ffff6aa67c0>, '__spec__': <ModuleSpec(name='pytest.__main__', loader=<...>, origin='/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pytest/__main__.py', loader_state=None, submodule_search_locations=None, _uninitialized_submodules=[], _set_fileattr=True, _cached='/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pytest/__pycache__/__main__.cpython-311.pyc') at remote 0x7ffff75161d0>, '__annotations__': {}, '__builtins__': <module at remote 0x7ffff779f1d0>, '__file__': '/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pytest/__main__.py', '__cached__': '/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pytest/__pycache__/__main__.cpython-311.pyc', 'pytest': <module at remote 0x7ffff7518890>}, args=args@entry=0x0, argcount=argcount@entry=0, kwnames=kwnames@entry=0x0) at Python/ceval.c:6421
#91 0x00005555557bd8e3 in PyEval_EvalCode (co=co@entry=<code at remote 0x7ffff6a679a0>, 
    globals=globals@entry={'__name__': '__main__', '__doc__': 'The pytest entry point.', '__package__': 'pytest', '__loader__': <SourceFileLoader(name='pytest.__main__', path='/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pytest/__main__.py') at remote 0x7ffff6aa67c0>, '__spec__': <ModuleSpec(name='pytest.__main__', loader=<...>, origin='/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pytest/__main__.py', loader_state=None, submodule_search_locations=None, _uninitialized_submodules=[], _set_fileattr=True, _cached='/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pytest/__pycache__/__main__.cpython-311.pyc') at remote 0x7ffff75161d0>, '__annotations__': {}, '__builtins__': <module at remote 0x7ffff779f1d0>, '__file__': '/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pytest/__main__.py', '__cached__': '/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pytest/__pycache__/__main__.cpython-311.pyc', 'pytest': <module at remote 0x7ffff7518890>}, 
    locals=locals@entry={'__name__': '__main__', '__doc__': 'The pytest entry point.', '__package__': 'pytest', '__loader__': <SourceFileLoader(name='pytest.__main__', path='/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pytest/__main__.py') at remote 0x7ffff6aa67c0>, '__spec__': <ModuleSpec(name='pytest.__main__', loader=<...>, origin='/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pytest/__main__.py', loader_state=None, submodule_search_locations=None, _uninitialized_submodules=[], _set_fileattr=True, _cached='/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pytest/__pycache__/__main__.cpython-311.pyc') at remote 0x7ffff75161d0>, '__annotations__': {}, '__builtins__': <module at remote 0x7ffff779f1d0>, '__file__': '/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pytest/__main__.py', '__cached__': '/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pytest/__pycache__/__main__.cpython-311.pyc', 'pytest': <module at remote 0x7ffff7518890>}) at Python/ceval.c:1155
#92 0x00005555557a459b in builtin_exec_impl (module=module@entry=<module at remote 0x7ffff779f1d0>, source=<code at remote 0x7ffff6a679a0>, 
    globals={'__name__': '__main__', '__doc__': 'The pytest entry point.', '__package__': 'pytest', '__loader__': <SourceFileLoader(name='pytest.__main__', path='/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pytest/__main__.py') at remote 0x7ffff6aa67c0>, '__spec__': <ModuleSpec(name='pytest.__main__', loader=<...>, origin='/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pytest/__main__.py', loader_state=None, submodule_search_locations=None, _uninitialized_submodules=[], _set_fileattr=True, _cached='/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pytest/__pycache__/__main__.cpython-311.pyc') at remote 0x7ffff75161d0>, '__annotations__': {}, '__builtins__': <module at remote 0x7ffff779f1d0>, '__file__': '/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pytest/__main__.py', '__cached__': '/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pytest/__pycache__/__main__.cpython-311.pyc', 'pytest': <module at remote 0x7ffff7518890>}, 
    locals={'__name__': '__main__', '__doc__': 'The pytest entry point.', '__package__': 'pytest', '__loader__': <SourceFileLoader(name='pytest.__main__', path='/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pytest/__main__.py') at remote 0x7ffff6aa67c0>, '__spec__': <ModuleSpec(name='pytest.__main__', loader=<...>, origin='/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pytest/__main__.py', loader_state=None, submodule_search_locations=None, _uninitialized_submodules=[], _set_fileattr=True, _cached='/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pytest/__pycache__/__main__.cpython-311.pyc') at remote 0x7ffff75161d0>, '__annotations__': {}, '__builtins__': <module at remote 0x7ffff779f1d0>, '__file__': '/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pytest/__main__.py', '__cached__': '/home/florian/tmp/python-pytest/.venv/lib/python3.11/site-packages/pytest/__pycache__/__main__.cpython-311.pyc', 'pytest': <module at remote 0x7ffff7518890>}, closure=0x0) at Python/bltinmodule.c:1075
#93 0x00005555557a46b4 in builtin_exec (module=<module at remote 0x7ffff779f1d0>, args=<optimized out>, args@entry=0x7ffff7e6c180, nargs=nargs@entry=2, kwnames=kwnames@entry=0x0) at Python/clinic/bltinmodule.c.h:465
#94 0x0000555555717156 in cfunction_vectorcall_FASTCALL_KEYWORDS (func=<built-in method exec of module object at remote 0x7ffff779f1d0>, args=0x7ffff7e6c180, nargsf=<optimized out>, kwnames=0x0) at Objects/methodobject.c:443
#95 0x00005555556d059f in _PyObject_VectorcallTstate (tstate=0x555555b2f5e8 <_PyRuntime+166312>, callable=callable@entry=<built-in method exec of module object at remote 0x7ffff779f1d0>, args=args@entry=0x7ffff7e6c180, nargsf=9223372036854775810, kwnames=kwnames@entry=0x0) at ./Include/internal/pycore_call.h:92
#96 0x00005555556d0676 in PyObject_Vectorcall (callable=callable@entry=<built-in method exec of module object at remote 0x7ffff779f1d0>, args=args@entry=0x7ffff7e6c180, nargsf=<optimized out>, kwnames=kwnames@entry=0x0) at Objects/call.c:299
#97 0x00005555557b8fef in _PyEval_EvalFrameDefault (tstate=0x555555b2f5e8 <_PyRuntime+166312>, frame=0x7ffff7e6c0d8, throwflag=<optimized out>) at Python/ceval.c:4773
#98 0x00005555557bd6cd in _PyEval_EvalFrame (tstate=tstate@entry=0x555555b2f5e8 <_PyRuntime+166312>, frame=frame@entry=0x7ffff7e6c020, throwflag=throwflag@entry=0) at ./Include/internal/pycore_ceval.h:72
#99 0x00005555557bd7ce in _PyEval_Vector (tstate=0x555555b2f5e8 <_PyRuntime+166312>, func=0x7ffff751eaf0, locals=locals@entry=0x0, args=0x7ffff7689418, argcount=<optimized out>, kwnames=0x0) at Python/ceval.c:6421
#100 0x00005555556d023e in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:393
#101 0x00005555556cfde3 in _PyVectorcall_Call (tstate=tstate@entry=0x555555b2f5e8 <_PyRuntime+166312>, func=0x5555556d01ee <_PyFunction_Vectorcall>, callable=callable@entry=<function at remote 0x7ffff751eaf0>, tuple=tuple@entry=('pytest', True), kwargs=kwargs@entry=0x0) at Objects/call.c:245
#102 0x00005555556d0180 in _PyObject_Call (tstate=0x555555b2f5e8 <_PyRuntime+166312>, callable=callable@entry=<function at remote 0x7ffff751eaf0>, args=args@entry=('pytest', True), kwargs=kwargs@entry=0x0) at Objects/call.c:328
#103 0x00005555556d01c8 in PyObject_Call (callable=callable@entry=<function at remote 0x7ffff751eaf0>, args=args@entry=('pytest', True), kwargs=kwargs@entry=0x0) at Objects/call.c:355
#104 0x00005555558223fe in pymain_run_module (modname=<optimized out>, set_argv0=set_argv0@entry=1) at Modules/main.c:300
#105 0x0000555555822edf in pymain_run_python (exitcode=exitcode@entry=0x7fffffffcae4) at Modules/main.c:595
#106 0x000055555582316e in Py_RunMain () at Modules/main.c:680
#107 0x00005555558231e8 in pymain_main (args=args@entry=0x7fffffffcb40) at Modules/main.c:710
#108 0x00005555558232b7 in Py_BytesMain (argc=<optimized out>, argv=<optimized out>) at Modules/main.c:734
#109 0x0000555555644732 in main (argc=<optimized out>, argv=<optimized out>) at ./Programs/python.c:15

Your environment

  • CPython versions tested on: Current 3.11 branch (cb4359ccfc8f07cce6fbbd81f56fd252e1d7a6f5 and df091e14d8c5b25b9094ebb86857e30adc8e5abb)
  • Operating system and architecture: Archlinux x86_64
Dominant language
Python
Stars
77.2k
Forks
36k
Avg merge
1d 9h
Merged PRs (30d)
558

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from python/cpython

All issues in python/cpython

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.