[PyQt] "Assertion failed: object has negative ref count" when running sip-build with python3.8-dbg
Phil Thompson
phil at riverbankcomputing.com
Mon Mar 9 18:28:59 GMT 2020
On 08/03/2020 17:55, Dmitry Shachnev wrote:
> Hi,
>
> I am working on switching Debian packages from sip v4 to v5 +
> pyqt-builder.
>
> In Debian we build extensions for both the normal interpreter and the
> debug
> one. However with sip v5 the latter fails.
>
> When I run the following command:
>
> python3.8-dbg -X tracemalloc /usr/bin/sip-build --confirm-license
> --debug
>
> in PyQt v5.14.1 source root, I get the following error:
>
> -----------------------------------------------------------------------------
> Generating the Qt bindings...
> Generating the QtCore bindings...
> Generating the QtNetwork bindings...
> /usr/include/python3.8d/object.h:541: _Py_NegativeRefcount: Assertion
> failed: object has negative ref count
> Memory block allocated at (most recent call first):
> File "/usr/lib/python3/dist-packages/sipbuild/bindings.py", line 147
>
> object address : 0x7ffff7054eb0
> object refcount : -1
> object type : 0x8e9ac0
> object type name: list
> object repr : <refcnt -1 at 0x7ffff7054eb0>
>
> Fatal Python error: _PyObject_AssertFailed
> Python runtime state: initialized
>
> Current thread 0x00007ffff7c28740 (most recent call first):
> File "/usr/lib/python3/dist-packages/sipbuild/bindings.py", line 147
> in generate
> File "/usr/lib/python3/dist-packages/sipbuild/builder.py", line 278
> in _generate_bindings
> File "/usr/lib/python3/dist-packages/sipbuild/builder.py", line 48 in
> build
> File "/usr/lib/python3/dist-packages/sipbuild/project.py", line 210
> in build
> File "/usr/lib/python3/dist-packages/sipbuild/tools/build.py", line
> 34 in main
> File "/usr/bin/sip-build", line 11 in <module>
>
> Program received signal SIGABRT, Aborted.
> ------------------------------------------------------------------------------
>
> The relevant part of the stack trace is:
>
> ------------------------------------------------------------------------------
> #5 0x000000000046e09c in _Py_NegativeRefcount
> (filename=filename at entry=0x7ffff7127ca8
> "/usr/include/python3.8d/object.h", lineno=lineno at entry=541,
> op=op at entry=0x7ffff7054eb0)
> at ../Objects/object.c:235
> #6 0x00007ffff7105814 in _Py_DECREF (op=0x7ffff7054eb0, lineno=541,
> filename=0x7ffff7127ca8 "/usr/include/python3.8d/object.h") at
> /usr/include/python3.8d/object.h:473
> #7 _Py_XDECREF (op=0x7ffff7054eb0) at
> /usr/include/python3.8d/object.h:541
> #8 get_bindings_configuration (sip_file=sip_file at entry=0x62af810
> "QtCore/QtCoremod.sip", tags=tags at entry=0x7ffff71317d0
> <neededQualifiers>,
> disabled=disabled at entry=0x7ffff71317c8 <excludedQualifiers>) at
> code_generator/pybinding.c:558
> #9 0x00007ffff7103988 in newImport (filename=0x62af810
> "QtCore/QtCoremod.sip") at code_generator/metasrc/parser.y:8405
> #10 yyparse () at code_generator/metasrc/parser.y:2012
> #11 0x00007ffff71045f5 in parse (spec=spec at entry=0x634dd50,
> fp=fp at entry=0x0, filename=0x7ffff6374560
> "/home/dmitry/python-team/pyqt5/sip/QtNetwork/QtNetworkmod.sip",
> strict=1,
> tsl=0x634dd30, bsl=0x0, xfl=<optimized out>, protHack=<optimized
> out>, sip_files=<optimized out>) at
> code_generator/metasrc/parser.y:4343
> #12 0x00007ffff71051b4 in py_parse (self=<optimized out>,
> args=<optimized out>) at code_generator/pybinding.c:157
> #13 0x00000000004344fb in cfunction_call_varargs (func=0x7ffff6cf42f0,
> args=0x7ffff757be50, kwargs=0x0) at ../Objects/call.c:757
> #14 0x000000000043712e in PyCFunction_Call (func=<optimized out>,
> args=<optimized out>, kwargs=<optimized out>) at ../Objects/call.c:772
> #15 0x0000000000435001 in _PyObject_MakeTpCall
> (callable=callable at entry=0x7ffff6cf42f0, args=args at entry=0x1474b60,
> nargs=<optimized out>, keywords=keywords at entry=0x0)
> at ../Objects/call.c:159
> #16 0x00000000004e8131 in _PyObject_Vectorcall (kwnames=0x0,
> nargsf=9223372036854775814, args=0x1474b60, callable=0x7ffff6cf42f0)
> at ../Include/cpython/abstract.h:125
> #17 call_function (kwnames=0x0, oparg=<optimized out>,
> pp_stack=<synthetic pointer>, tstate=0x94e520) at
> ../Python/ceval.c:4987
> ------------------------------------------------------------------------------
>
> This is with sip v5.1.1, Python v3.8.2rc2.
Fixed in tonight's snapshot.
Thanks,
Phil
More information about the PyQt
mailing list