This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: test.test_tools.test_c_analyzer fails in refleak mode
Type: Stage: resolved
Components: Tests Versions: Python 3.9
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: eric.snow Nosy List: eric.snow, nanjekyejoannah, pablogsal, vstinner
Priority: normal Keywords: patch

Created on 2019-09-16 15:07 by pablogsal, last changed 2022-04-11 14:59 by admin. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 16233 merged pablogsal, 2019-09-17 14:42
PR 16304 merged eric.snow, 2019-09-20 21:02
Messages (6)
msg352552 - (view) Author: Pablo Galindo Salgado (pablogsal) * (Python committer) Date: 2019-09-16 15:07
Running the test suite to check refleaks over test.test_tools.test_c_analyzer will always fail, make it impossible for the refleak buildbots to run correctly. 

Steps to reproduce:

./python -m test test_tools -v -R 3:3


======================================================================
FAIL: test_typical (test.test_tools.test_c_analyzer.test_c_globals.test_find.StaticsTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/pablogsal/github/cpython/Lib/test/test_tools/test_c_analyzer/test_c_globals/test_find.py", line 319, in test_typical
    self.assertEqual(found, [
AssertionError: Lists differ: [Vari[413 chars]rc1/sub/ham.c', funcname=None, name='var1'), v[318 chars]nt')] != [Vari[413 chars]rc1/spam.c', funcname=None, name='freelist'), [431 chars]nt')]

First differing element 4:
Varia[21 chars]rc1/sub/ham.c', funcname=None, name='var1'), v[30 chars]t *')
Varia[21 chars]rc1/spam.c', funcname=None, name='freelist'), [34 chars]10]')

Second list contains 1 additional elements.
First extra element 8:
Variable(id=ID(filename='Include/spam.h', funcname=None, name='data'), vartype='static const int')

  [Variable(id=ID(filename='src1/spam.c', funcname=None, name='var1'), vartype='static const char *'),
   Variable(id=ID(filename='src1/spam.c', funcname='ham', name='initialized'), vartype='static int'),
   Variable(id=ID(filename='src1/spam.c', funcname=None, name='var2'), vartype='static PyObject *'),
   Variable(id=ID(filename='src1/eggs.c', funcname='tofu', name='ready'), vartype='static int'),
+  Variable(id=ID(filename='src1/spam.c', funcname=None, name='freelist'), vartype='static (PyTupleObject *)[10]'),
   Variable(id=ID(filename='src1/sub/ham.c', funcname=None, name='var1'), vartype='static const char const *'),
   Variable(id=ID(filename='src2/jam.c', funcname=None, name='var1'), vartype='static int'),
   Variable(id=ID(filename='src2/jam.c', funcname=None, name='var2'), vartype='static MyObject *'),
   Variable(id=ID(filename='Include/spam.h', funcname=None, name='data'), vartype='static const int')]

----------------------------------------------------------------------

Ran 219 tests in 3.769s

FAILED (failures=1, skipped=2, expected failures=14)
test test_tools failed
test_tools failed

== Tests result: FAILURE ==

1 test failed:
    test_tools

Total duration: 19 sec 101 ms
Tests result: FAILURE
msg352553 - (view) Author: Pablo Galindo Salgado (pablogsal) * (Python committer) Date: 2019-09-16 15:08
Check this failure in the buildbots for reference:

https://buildbot.python.org/all/#/builders/80/builds/705/steps/4/logs/stdio
msg352583 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2019-09-16 20:23
I also opened https://bugs.python.org/issue38177#msg352474 we should only track this leak in a single issue, you can close bpo-38177.
msg352644 - (view) Author: Pablo Galindo Salgado (pablogsal) * (Python committer) Date: 2019-09-17 16:05
New changeset 6fbc924696b4b5097c273c06ca2d82662940e184 by Pablo Galindo in branch 'master':
bpo-38187: Fix reference leak in test_tools (GH-16233)
https://github.com/python/cpython/commit/6fbc924696b4b5097c273c06ca2d82662940e184
msg352646 - (view) Author: Pablo Galindo Salgado (pablogsal) * (Python committer) Date: 2019-09-17 16:07
PR 16233 fixes the reference leaks but the original error is still present and

./python -m test test_tools -v -R 3:3

is still failing (as in the test fails, instead of failing because there are leaks).
msg353372 - (view) Author: Eric Snow (eric.snow) * (Python committer) Date: 2019-09-27 14:53
New changeset 6693f730e0eb77d9453f73a3da33b78a97e996ee by Eric Snow in branch 'master':
bpo-38187: Fix a refleak in Tools/c-analyzer. (gh-16304)
https://github.com/python/cpython/commit/6693f730e0eb77d9453f73a3da33b78a97e996ee
History
Date User Action Args
2022-04-11 14:59:20adminsetgithub: 82368
2019-10-02 00:09:47eric.snowsetstatus: pending -> closed
2019-09-27 14:55:07eric.snowsetstatus: open -> pending
assignee: eric.snow
resolution: fixed
stage: patch review -> resolved
2019-09-27 14:53:40eric.snowsetmessages: + msg353372
2019-09-20 21:02:54eric.snowsetpull_requests: + pull_request15890
2019-09-17 16:07:35pablogsalsetmessages: + msg352646
2019-09-17 16:07:00pablogsalsetmessages: - msg352645
2019-09-17 16:06:33pablogsalsetmessages: + msg352645
2019-09-17 16:05:06pablogsalsetmessages: + msg352644
2019-09-17 14:42:35pablogsalsetkeywords: + patch
stage: patch review
pull_requests: + pull_request15830
2019-09-16 20:23:23vstinnersetmessages: + msg352583
2019-09-16 20:10:37pablogsalsetnosy: + vstinner, nanjekyejoannah
2019-09-16 15:08:50pablogsalsetmessages: + msg352553
2019-09-16 15:07:46pablogsalcreate