Improving the memory leak test that fails randomly in CI.
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
Direzione di ricerca
Start with find_memleak in comtypes.test.test_comserver and read how the test measures Working Set across repeated process runs. Separate ordinary COM behavior checks from memory checks, then investigate ownership and release at the COM boundary for BSTR, VARIANT, and SAFEARRAY. Done means normal CI has fewer memory-related random failures while the test can detect actual leaks in those types.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problems
find_memleak in comtypes.test.test_comserver fails randomly in the CI environment.
- The current test checks the difference in the Working Set before and after running the process many times.
- An increase in the Working Set does not always mean an actual memory leak.
- On the other hand, even if the Working Set does not grow, we cannot always find a leak.
- In Local Server tests, measuring memory on the client side cannot directly find leaks on the COM server side running in another process.
Because of this, the test not only fails randomly, but we might also miss real memory leaks.
Technical Solution Candidates: Detect Actual Memory Leaks
- Separate feature tests from memory checks
- Verify COM return values and types in normal feature tests.
- Rethink judgments based only on the difference in the Working Set.
- Directly check the release rules
- Check the transfer of ownership and the matching release process for BSTR, VARIANT, and SAFEARRAY.
- Check not only calls like
VariantClear, but also resource management at the actual COM boundary.
- Look into native memory leaks separately
- Check memory managed by Python using tools like
tracemallocfrom the Python standard library. - If needed, measure both the client and COM server processes, and check for native memory leaks using Windows diagnostic tools.
Completion Condition
Set up a test that reduces random failures caused by memory usage changes in normal CI, while being able to detect actual memory leaks in BSTR, VARIANT, and SAFEARRAY.
- Lingua principale
- Python
- Stelle
- 347
- Fork
- 107
- Merge medio
- 1g 5h
- PR unite (30g)
- 19
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di enthought/comtypes
-
good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
Fix the `tlbparser` ctypes mapping for `VT_I1`.Forse già presa @junkmd l’ha presa 5 giorni fa. Apertadebt npsupport tests
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
enthought/comtypes#969 · 5 commenti · 2 assegnatari ·
I maintainer di solito rispondono entro 1 giorno
-
typing
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
I maintainer di solito rispondono entro 1 giorno
-
question
Difficoltà 3/5 1-2 giorni Idoneità per principianti 58/100
enthought/comtypes#935 · 10 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
[CI] Run tests on ARMApertaci tests
Difficoltà 3/5 1-2 giorni Idoneità per principianti 62/100
enthought/comtypes#925 · 11 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di enthought/comtypes
Issue simili
-
[Bug]: Revit selector reads process ids 2000-2099 as years (flaky AgentClientTests.AYearOrAProcessIdSelectsTheHost)Forse già presa @Wurschdhaud l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
pyrevitlabs/pyRevit#3817 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
521xueweihan/HelloGitHub#4074 ·
-
follow-up
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
Helm chart: allow setting ingressClassName on the IngressForse già presa @commarla l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
pgadmin-org/pgadmin4#10658 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100