MerginProject may not get cleaned up properly
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 45/100
Línea de trabajo
Comienza localizando la creación de GeoDiff de pygeodiff de MerginProject y la configuración del callback del logger; después, compara el arreglo de limpieza de mergin-db-sync PR 79 con el geodiff issue 190 relacionado. Se considera terminado cuando la creación repetida de MerginProject ya no conserva las referencias cíclicas ni provoca que los recursos crezcan, verificando la limpieza mediante el bucle de reproducción.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
When MerginProject is created, it creates geodiff object and assigns an internal logger to geodiff. This creates a cyclic reference (pygeodiff refs MerginProject, and MerginProject refs pygeodiff) that may keep resources held, which may be a problem if MerginProject object is created many times. See also fix for this in db-sync: https://github.com/MerginMaps/mergin-db-sync/pull/79
Also somehow related: https://github.com/MerginMaps/geodiff/issues/190
Code snippet to replicate the cleanup issue:
import pygeodiff
class MerginProjectX:
def __init__(self, directory):
def _logger_callback(level, text_bytes):
self.x() # not a real function, but refs this object...
self.geodiff = pygeodiff.GeoDiff()
self.geodiff.set_logger_callback(_logger_callback)
# this will keep consuming more and more resources
for i in range(50000):
print(i)
mp = MerginProjectX("x")
#mp.geodiff = None # this helps to break ref cycle
time.sleep(0.005)
- Lenguaje dominante
- Python
- Estrellas
- 23
- Forks
- 12
- Merge medio
- 2 d 13 h
- PR fusionados (30 d)
- 7
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 MerginMaps/python-api-client
-
Vacuuming Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
MerginMaps/python-api-client#320 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
MerginMaps/python-api-client#270 ·
-
Migration tool between servers Abiertoenhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
MerginMaps/python-api-client#257 · 3 comentarios ·
-
enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
MerginMaps/python-api-client#254 · 1 comentario ·
-
Impose geodiff push limits Abiertoenhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
MerginMaps/python-api-client#245 ·
Todos los issues de MerginMaps/python-api-client
Issues similares
-
货币战争手改优先级配置缺少列表元素类型校验(P3) Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
syfoud/Simulated_Scepter#172 ·
-
A cancelled tests run makes the coverage comment workflow fail and reports it as a red check on main Abiertoarea: ci bug perceived difficulty: 3
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Nitjsefnie-Harness-Commons/daedalus#921 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
EleutherAI/lm-evaluation-harness#4207 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
ClickHouse/clickhouse-connect#1057 ·