Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

tests testoutput.py::OutputJSONsuite can be flaky on high-core-count systems

Offen
#21,905 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
48/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Aktiv
Tech-Stack
python
Bereich
testing

Rechercherichtung

Beginne mit testoutput.py::OutputJSONsuite und den Fällen in test-data/unit/outputjson.test in den Zeilen 46 und 62. Reproduziere die Fehler mit parallel arbeitenden Workern auf einem System mit vielen CPU-Kernen und Python 3.13 oder 3.14 und verfolge anschließend die gemeldeten subprocess- und Build-Worker-Fehler. Die Aufgabe ist erledigt, wenn diese Tests zuverlässig ohne ResourceWarning, CompileError oder Fehler bei der Worker-Verbindung bestehen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

bug parallel checking topic-developer

Now that Debian is testing mypy with native parsing (via ast-serialize) we resumed running the entire test suite.

With mypy 2.2.0 we see random failures of testoutput.py::OutputJSONsuite::outputjson.test::* on high-core count systems.

Mostly due to ResourceWarning: subprocess 21441 is still running being turned into pytest.PytestUnraisableExceptionWarning: Exception ignored while calling deallocator <function Popen.__del__ at 0x7f30bbe13ed0>: None

But also other errors: mypy.errors.CompileError: {"file": "tmp/main", "line": 2, "column": 0, "end_line": 2, "end_column": 5, "message": "\"break\" outside loop", "hint": null, "code": null, "severity": "error"} and OSError: Cannot connect to build worker(s): 0

Details

Here we had test failures under Python 3.13 and 3.14 https://ci.debian.net/packages/m/mypy/testing/ppc64el/74734444/

2227s =================================== FAILURES ===================================
2227s ____________________________ testOutputJsonParallel ____________________________
2227s [gw10] linux -- Python 3.13.15 /usr/bin/python3.13
2227s data: /tmp/autopkgtest.EyGnnA/build.z2o/src/test-data/unit/outputjson.test:46:
2227s /usr/lib/python3.13/subprocess.py:1140: in __del__
2227s     _warn("subprocess %s is still running" % self.pid,
2227s E   ResourceWarning: subprocess 6479 is still running
2227s 
2227s The above exception was the direct cause of the following exception:
2227s /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__
2227s     return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
2227s            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2227s /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec
2227s     return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
2227s            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2227s /usr/lib/python3/dist-packages/_pytest/logging.py:865: in pytest_runtest_call
2227s     yield
2227s /usr/lib/python3/dist-packages/_pytest/capture.py:900: in pytest_runtest_call
2227s     return (yield)
2227s             ^^^^^
2227s /usr/lib/python3/dist-packages/_pytest/skipping.py:268: in pytest_runtest_call
2227s     return (yield)
2227s             ^^^^^
2227s /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:183: in pytest_runtest_call
2227s     collect_unraisable(item.config)
2227s /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:79: in collect_unraisable
2227s     raise errors[0]
2227s /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:67: in collect_unraisable
2227s     warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))
2227s E   pytest.PytestUnraisableExceptionWarning: Exception ignored in: <function Popen.__del__ at 0x3fff82b01300>
2227s E   Enable tracemalloc to get traceback where the object was allocated.
2227s E   See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.
2227s ______________________ testOutputJsonSyntaxErrorParallel _______________________
2227s [gw10] linux -- Python 3.13.15 /usr/bin/python3.13
2227s data: /tmp/autopkgtest.EyGnnA/build.z2o/src/test-data/unit/outputjson.test:62:
2227s mypy/main.py:244: in run_build
2227s     ???
2227s mypy/build.py:422: in build
2227s     result = build_inner(
2227s mypy/build.py:537: in build_inner
2227s     graph = dispatch(sources, manager, stdout, connect_threads)
2227s mypy/build.py:4146: in dispatch
2227s     process_graph(graph, manager)
2227s mypy/build.py:4614: in process_graph
2227s     done, still_working, results = manager.wait_for_done(graph)
2227s mypy/build.py:1480: in wait_for_done
2227s     return self.wait_for_done_workers(graph)
2227s mypy/build.py:1506: in wait_for_done_workers
2227s     raise data.blocker
2227s E   mypy.errors.CompileError: {"file": "tmp/main", "line": 2, "column": 0, "end_line": 2, "end_column": 5, "message": "\"break\" outside loop", "hint": null, "code": null, "severity": "error"}
2227s 
2227s During handling of the above exception, another exception occurred:
2227s /usr/lib/python3.13/subprocess.py:1140: in __del__
2227s     _warn("subprocess %s is still running" % self.pid,
2227s E   ResourceWarning: subprocess 6518 is still running
2227s 
2227s The above exception was the direct cause of the following exception:
2227s /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__
2227s     return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
2227s            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2227s /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec
2227s     return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
2227s            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2227s /usr/lib/python3/dist-packages/_pytest/logging.py:865: in pytest_runtest_call
2227s     yield
2227s /usr/lib/python3/dist-packages/_pytest/capture.py:900: in pytest_runtest_call
2227s     return (yield)
2227s             ^^^^^
2227s /usr/lib/python3/dist-packages/_pytest/skipping.py:268: in pytest_runtest_call
2227s     return (yield)
2227s             ^^^^^
2227s /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:183: in pytest_runtest_call
2227s     collect_unraisable(item.config)
2227s /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:79: in collect_unraisable
2227s     raise errors[0]
2227s /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:67: in collect_unraisable
2227s     warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))
2227s E   pytest.PytestUnraisableExceptionWarning: Exception ignored in: <function Popen.__del__ at 0x3fff82b01300>
2227s E   Enable tracemalloc to get traceback where the object was allocated.
2227s E   See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

More examples:

Vorherrschende Sprache
Python
Sterne
20.6k
Forks
3.3k
Ø Merge
1 T. 3 Std.
Gemergte PRs (30 T.)
59

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus python/mypy

Alle Issues in python/mypy

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.