Skip to content

gssapi fails to import: ./Include/cpython/tupleobject.h:23: PyTuple_GET_SIZE: Assertion `PyTuple_Check(op)' failed. #327

@mgorny

Description

@mgorny

What went wrong?

When Python is built with assertions enabled (--with-assertions), the gssapi extension causes an assertion failure upon import:

$ python -c 'import gssapi'
python: ./Include/cpython/tupleobject.h:23: PyTuple_GET_SIZE: Assertion `PyTuple_Check(op)' failed.
Aborted (core dumped)

Backtrace:

#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007f7e81a89e2f in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2  0x00007f7e81a39cc2 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3  0x00007f7e81a224ed in __GI_abort () at abort.c:79
#4  0x00007f7e81a22415 in __assert_fail_base (fmt=0x7f7e81b9fb98 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x7f7e82104da1 "PyTuple_Check(op)", file=file@entry=0x7f7e8211a450 "./Include/cpython/tupleobject.h", line=line@entry=23, function=function@entry=0x7f7e82146710 <__PRETTY_FUNCTION__.8> "PyTuple_GET_SIZE") at assert.c:92
#5  0x00007f7e81a325e2 in __assert_fail (assertion=assertion@entry=0x7f7e82104da1 "PyTuple_Check(op)", file=file@entry=0x7f7e8211a450 "./Include/cpython/tupleobject.h", line=line@entry=23, function=function@entry=0x7f7e82146710 <__PRETTY_FUNCTION__.8> "PyTuple_GET_SIZE") at assert.c:101
#6  0x00007f7e81f5249a in PyTuple_GET_SIZE (op=op@entry={}) at ./Include/cpython/tupleobject.h:23
#7  0x00007f7e81f52678 in method_vectorcall (method=<optimized out>, args=0x7ffcf40a4c38, nargsf=<optimized out>, kwnames={}) at Objects/classobject.c:64
#8  0x00007f7e80a2ed70 in __Pyx_PyObject_FastCallDict (func=<method at remote 0x7f7e80ce1cc0>, args=0x7ffcf40a4c38, _nargs=9223372036854775810, kwargs={}) at gssapi/raw/types.c:13221
#9  0x00007f7e80a30936 in __Pyx_Py3MetaclassPrepare (metaclass=<type at remote 0x55c4add18f60>, 
    bases=(<EnumType(_generate_next_value_=<function at remote 0x7f7e8198f420>, __module__='enum', __doc__='\n    Enum where members are also (and must be) ints\n    ', _new_member_=<built-in method __new__ of type object at remote 0x7f7e82266d00>, _use_args_=True, _member_names_=[], _member_map_={}, _value2member_map_={}, _unhashable_values_=[], _member_type_=<type at remote 0x7f7e82266d00>, _value_repr_=<wrapper_descriptor at remote 0x7f7e81d49620>, __dict__=<getset_descriptor at remote 0x7f7e819bae80>, __format__=<method_descriptor at remote 0x7f7e81d4a700>, __str__=<wrapper_descriptor at remote 0x7f7e81d49620>, __repr__=<function at remote 0x7f7e8198f560>, __new__=<function at remote 0x7f7e8198f2e0>) at remote 0x55c4add81c30>,), 
    name='RequirementFlag', qualname='RequirementFlag', mkw={}, modname='gssapi.raw.types', doc=0x0) at gssapi/raw/types.c:14327
#10 0x00007f7e80a286c0 in __pyx_pymod_exec_types (__pyx_pyinit_module=<module at remote 0x7f7e80cbbd80>) at gssapi/raw/types.c:11272
#11 0x00007f7e81f97284 in PyModule_ExecDef (module=module@entry=<module at remote 0x7f7e80cbbd80>, def=def@entry=0x7f7e80a3eb00 <__pyx_moduledef>) at Objects/moduleobject.c:419
[…]

Full backtrace: bt.txt

How do we reproduce?

git clone -b 3.11 --depth=1 https://github.com/python/cpython
git clone https://github.com/pythongssapi/python-gssapi/
cd cpython
./configure --with-assertions
make -j$(nproc)
cd ../python-gssapi
../cpython/python -m venv .venv
. .venv/bin/activate
pip install -e .
python -c 'import gssapi'

Component versions (python-gssapi, Kerberos, OS / distro, etc.)

python-gssapi 1.8.3 (@ 3a14a03)
mit-krb5 1.21.2
Gentoo Linux amd64

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions