Improving the memory leak test that fails randomly in CI.
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Python
- Estrellas
- 347
- Forks
- 107
- Merge medio
- 1 d 5 h
- PR fusionados (30 d)
- 19
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de enthought/comtypes
-
good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
Fix the `tlbparser` ctypes mapping for `VT_I1`.Posiblemente ocupada @junkmd la tomó hace 5 días. Abiertodebt npsupport tests
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
enthought/comtypes#969 · 5 comentarios · 2 asignados ·
Los mantenedores suelen responder en 1 día
-
typing
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
Los mantenedores suelen responder en 1 día
-
question
Dificultad 3/5 1-2 días Aptitud para principiantes 58/100
enthought/comtypes#935 · 10 comentarios ·
Los mantenedores suelen responder en 1 día
-
[CI] Run tests on ARMAbiertoci tests
Dificultad 3/5 1-2 días Aptitud para principiantes 62/100
enthought/comtypes#925 · 11 comentarios · 1 reacción ·
Los mantenedores suelen responder en 1 día
Todos los issues de enthought/comtypes
Issues similares
-
Validate non-divisible effective batch sizes in the Unsloth LoRA backendPosiblemente ocupada @debesh-biswas la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
`rx.Model` event arguments emit `PydanticDeprecatedSince20` once per payload keyPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
reflex-dev/reflex#7634 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
documentation
Dificultad 1/5 1-3 horas Aptitud para principiantes 82/100
topoteretes/cognee#6239 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
ranaroussi/yfinance#3009 ·
Los mantenedores suelen responder en 1 día
-
Test discovery aborts on GPU builds without cuStateVec: check_cuStateVec expects a failed result but set_config() now raises RuntimeErrorPosiblemente ocupada @dmeliksetian la tomó hoy. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Qiskit/qiskit-aer#2495 ·
Los mantenedores suelen responder en 1 día