classification
Title: test_io is leaking references
Type: Stage: resolved
Components: Tests Versions: Python 3.10
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: pablogsal, shihai1991
Priority: normal Keywords:

Created on 2020-10-25 05:51 by pablogsal, last changed 2020-10-25 18:39 by pablogsal. This issue is now closed.

Messages (5)
msg379564 - (view) Author: Pablo Galindo Salgado (pablogsal) * (Python committer) Date: 2020-10-25 05:51
❯ ./python -m test test_io -m test.test_io.CTextIOWrapperTest.test_read_one_by_one -R :
0:00:00 load avg: 1.59 Run tests sequentially
0:00:00 load avg: 1.59 [1/1] test_io
beginning 9 repetitions
123456789
.........
test_io leaked [3, 3, 3, 3] references, sum=12
test_io leaked [1, 1, 1, 1] memory blocks, sum=4
test_io failed

== Tests result: FAILURE ==

1 test failed:
    test_io

Total duration: 398 ms
Tests result: FAILURE
msg379566 - (view) Author: Pablo Galindo Salgado (pablogsal) * (Python committer) Date: 2020-10-25 06:03
Commit c9f696cb96d1c362d5cad871f61da520572d9b08 introduced a reference leak in the test suite. See https://bugs.python.org/issue42145:

c9f696cb96d1c362d5cad871f61da520572d9b08 is the first bad commit
commit c9f696cb96d1c362d5cad871f61da520572d9b08
Author: Hai Shi <shihai1992@gmail.com>
Date:   Fri Oct 16 16:34:15 2020 +0800

    bpo-41919, test_codecs: Move codecs.register calls to setUp() (GH-22513)

Reverting the commit eliminates the problem:

rences, sum=12
test_io leaked [1, 1, 1, 1] memory blocks, sum=4
test_io failed

== Tests result: FAILURE ==

1 test failed:
    test_io

Total duration: 397 ms
Tests result: FAILURE
g
~/github/python/master master|bisect*
❯ git revert c9f696cb96d1c362d5cad871f61da520572d9b08
Auto-merging Lib/test/test_codecs.py
[master f3de7c00b4] Revert "bpo-41919, test_codecs: Move codecs.register calls to setUp() (GH-22513)"
 7 files changed, 112 insertions(+), 16 deletions(-)

~/github/python/master master|bisect* ⇡
❯ make -j -s
 CC='gcc -pthread' LDSHARED='gcc -pthread -shared    ' OPT='-g -Og -Wall'       _TCLTK_INCLUDES='' _TCLTK_LIBS=''       ./python -E ./setup.py -q build

The following modules found by detect_modules() in setup.py, have been
built by the Makefile instead, as configured by the Setup files:
_abc                  atexit                pwd
time


~/github/python/master master|bisect* ⇡
❯ ./python -m test test_io -m test.test_io.CTextIOWrapperTest.test_read_one_by_one -R :
0:00:00 load avg: 2.57 Run tests sequentially
0:00:00 load avg: 2.57 [1/1] test_io
beginning 9 repetitions
123456789
.........

== Tests result: SUCCESS ==

1 test OK.

Total duration: 455 ms
Tests result: SUCCESS

    * Move the codecs' (un)register operation to testcases.
    * Remove _codecs._forget_codec() and _PyCodec_Forget()

 Lib/test/test_charmapcodec.py    |  7 +++++--
 Lib/test/test_codecs.py          | 25 +++----------------------
 Lib/test/test_io.py              |  7 +++----
 Lib/test/test_unicode.py         |  5 ++++-
 Modules/_codecsmodule.c          | 20 --------------------
 Modules/clinic/_codecsmodule.c.h | 39 +--------------------------------------
 Python/codecs.c                  | 25 -------------------------
 7 files changed, 16 insertions(+), 112 deletions(-)
msg379591 - (view) Author: Hai Shi (shihai1991) * (Python triager) Date: 2020-10-25 17:13
I created a possible fix PR: PR-22973
msg379599 - (view) Author: Pablo Galindo Salgado (pablogsal) * (Python committer) Date: 2020-10-25 18:39
Fixed by https://github.com/python/cpython/pull/22973
msg379600 - (view) Author: Pablo Galindo Salgado (pablogsal) * (Python committer) Date: 2020-10-25 18:39
Thanks for the quick fix, hai shi
History
Date User Action Args
2020-10-25 18:39:50pablogsalsetmessages: + msg379600
2020-10-25 18:39:32pablogsalsetstatus: open -> closed
resolution: fixed
messages: + msg379599

stage: resolved
2020-10-25 17:13:20shihai1991setmessages: + msg379591
2020-10-25 16:53:28corona10setnosy: + shihai1991
2020-10-25 06:03:02pablogsalsetmessages: + msg379566
2020-10-25 05:51:18pablogsalcreate