[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [PATCH] fix unable to load *.pyd files with Python 3.8.x on Windows

From: Jun Omae <jun66j5_at_gmail.com>
Date: Sun, 17 May 2020 22:43:31 +0900

On Sat, May 16, 2020 at 9:13 PM Johan Corveleyn <jcorvel_at_gmail.com> wrote:
> If I apply your patch, I get this assertion with Python 3.8.2 and SWIG 3.0.12:
>
> [[[
> C:\research\svn\dev\trunk>python win-tests.py --log-level=DEBUG
> --debug --swig=python R:\test_py
> Testing Debug configuration on local repository.
> -- Running Swig Python tests --
> Assertion failed: PyTuple_Check(args), file
> d:\a\1\s\objects\typeobject.c, line 3707
> [Test runner reported failure]
> ]]]
>
> I don't see the other assertion that you got with SWIG 3.0.12. Perhaps
> because I'm using Python 3.8.2? Or because I'm using the 32-bit
> builds? I don't know.

PyTuple_Check(args) asserts when Python 3.7.x - 3.8.x with SWIG 3.0.12.
The issue is due to SWIG 3.0.x and has been fixed in SWIG 4.0.1.
ref. https://github.com/swig/swig/issues/1321

Assertion for negative ref count is raised from test_conflict
(client.SubversionClientTestCase).
1.10.x through trunk have the issue.

Summary tested with Python debug builds on Linux amd64:

| Source | Python | SWIG | Result
|--------|--------|--------|--------
| trunk | 3.8.3 | 4.0.1 | _Py_NegativeRefcount: Assertion failed:
object has negative ref count
| trunk | 3.8.3 | 3.0.12 | excess_args: Assertion `PyTuple_Check(args)' failed
| trunk | 3.7.7 | 4.0.1 | Fatal Python error:
../Objects/dictobject.c:1905 object at ... has negative ref count -...
| trunk | 3.7.7 | 3.0.12 | excess_args: Assertion `PyTuple_Check(args)' failed
| trunk | 3.6.10 | 4.0.1 | Fatal Python error:
../Objects/dictobject.c:2017 object at ... has negative ref count -...
| trunk | 3.6.10 | 3.0.12 | Fatal Python error:
../Objects/dictobject.c:2017 object at ... has negative ref count -...
| trunk | 3.5.2 | 4.0.1 | Fatal Python error:
../Objects/dictobject.c:354 object at ... has negative ref count -...
| trunk | 3.5.2 | 3.0.12 | Fatal Python error:
../Objects/dictobject.c:354 object at ... has negative ref count -...
| trunk | 2.7.12 | 3.0.12 | Fatal Python error:
subversion/bindings/swig/python/svn_client.c:28085 object at ... has
negative ref count -...
| 1.13.x | 2.7.12 | 3.0.12 | Fatal Python error:
subversion/bindings/swig/python/svn_client.c:28085 object at ... has
negative ref count -...
| 1.10.x | 2.7.12 | 3.0.12 | Fatal Python error:
subversion/bindings/swig/python/svn_client.c:26916 object at ... has
negative ref count -...

trunk on Python 3.8.3 with SWIG 4.0.1
========
.............................../Include/object.h:541:
_Py_NegativeRefcount: Assertion failed: object has negative ref count
<object at 0x7f9efefb1050 is freed>
Fatal Python error: _PyObject_AssertFailed
Python runtime state: initialized

trunk on Python 3.8.3 with SWIG 3.0.12
========
python3.8-dbg: ../Objects/typeobject.c:3707: excess_args: Assertion
`PyTuple_Check(args)' failed.

trunk on Python 3.7.7 with SWIG 4.0.1
========
.............................Fatal Python error:
../Objects/dictobject.c:1905 object at 0x7f8f739ced10 has negative ref
count -2459565876494606884

trunk on Python 3.7.7 with SWIG 3.0.12
========
python3.7-dbg: ../Objects/typeobject.c:3670: excess_args: Assertion
`PyTuple_Check(args)' failed.

trunk on Python 3.6.10 with SWIG 4.0.1
========
.............................Fatal Python error:
../Objects/dictobject.c:2017 object at 0x7f9c30277878 has negative ref
count -2604246222170760230

trunk on Python 3.6.10 with SWIG 3.0.12
========
.............................Fatal Python error:
../Objects/dictobject.c:2017 object at 0x7f83bf511400 has negative ref
count -2604246222170760230

trunk on Python 3.5.2 with SWIG 4.0.1
========
.............................Fatal Python error:
../Objects/dictobject.c:354 object at 0x7fbd5b50d608 has negative ref
count -2604246222170760230

trunk on Python 3.5.2 with SWIG 3.0.12
========
.............................Fatal Python error:
../Objects/dictobject.c:354 object at 0x7f77710cff60 has negative ref
count -2604246222170760230

trunk on Python 2.7.12 with SWIG 3.0.12
========
........................Fatal Python error:
subversion/bindings/swig/python/svn_client.c:28085 object at
0x7f43a91de0d8 has negative ref count -2604246222170760230

branches/1.13.x on Python 2.7.12 with SWIG 3.0.12
========
........................Fatal Python error:
subversion/bindings/swig/python/svn_client.c:28085 object at
0x7fd02bba81c8 has negative ref count -2604246222170760230

branches/1.10.x on Python 2.7.12 with SWIG 3.0.12
========
........................Fatal Python error:
subversion/bindings/swig/python/svn_client.c:26916 object at
0x7fe73b53a150 has negative ref count -2604246222170760230

-- 
Jun Omae <jun66j5_at_gmail.com> (大前 潤)
Received on 2020-05-17 15:43:55 CEST

This is an archived mail posted to the Subversion Dev mailing list.