regrtest: Only report a leak if all test runs leak at least one file descriptor
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 77.2k
- Forks
- 35.9k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
Example on a recent buildbot run on AMD64 CentOS9 NoGIL Refleaks 3.x: https://buildbot.python.org/#/builders/1610/builds/4004
test_free_threading leaked [0, 1, 0] references, sum=1 (this is fine)
test_free_threading leaked [0, 1, -1] file descriptors, sum=0
For references, regrtest considers that a test leaks only if all test runs leak at least 1 reference.
For file descriptors, regrtest considers that a test leaks if at least one test run leaks a file descriptor.
In this example, leaked [0, 1, -1] file descriptors, sum=0 says that a test run creates a file descriptor without closing it (first run test, after the warmup): delta +1, but the following test run closes the file descriptor: delta -1. The sum=0 says that there is no leak at the end, all created file descriptors have been closed.
I propose to change the leak detection to only consider that there is a leak if all test runs leak at least one file descriptors.
Linked PRs
- gh-157629
- gh-157753
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, regrtest's Erkennung von Leaks bei Dateideskriptoren zu lokalisieren, und prüfe die verknüpften PRs gh-157629 und gh-157753 auf bereits laufende Arbeiten. Verwende das buildbot-Beispiel als Reproduktionsfall; fertig ist es, wenn ein Leak nur dann gemeldet wird, wenn jeder Testlauf mindestens einen Dateideskriptor leakt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- testing-qa
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100