[BUG] Failed archive extraction deletes the dataset cache
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 78/100
Línea de trabajo
Encuentra _extract_archive y la ruta download_file(..., extract=True) utilizada por los cargadores de datasets. Empieza por inspeccionar el manejador de errores de extracción y las pruebas existentes para fallos de archivo; reproduce el problema con un extractor sintético que escriba un archivo parcial y lance tarfile.TarError. Se considerará terminado cuando el error siga propagándose, se conserve el contenido preexistente del destino y la limpieza se limite a los archivos creados durante ese intento.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug
When archive extraction fails, _extract_archive removes the entire destination directory. The built-in dataset downloaders extract into the shared ~/.graphscope/datasets cache, so a TarError, RuntimeError, or KeyboardInterrupt during extraction can delete previously cached datasets and other files unrelated to the archive being extracted.
To Reproduce
- Put an existing sentinel file (or another cached dataset) in the extraction destination.
- Trigger an extraction failure after extraction has started (for example, a malformed or unextractable local archive).
- Observe that the error handler calls
shutil.rmtree(path)and removes the existing destination contents.
This behavior is also reproducible with a synthetic archive/extractor that writes a partial file and raises tarfile.TarError; no remote data or service is needed.
Expected behavior
A failed extraction should propagate its error without deleting pre-existing cache contents. Cleanup should be limited to files/directories created by that extraction attempt.
Environment (please complete the following information):
- GraphScope version: current
main - OS: behavior follows the shared cache extraction path; no live dataset or service was used for this report
Additional context
The built-in loaders call download_file(..., extract=True) with the common default cache_subdir="datasets", which makes the deletion affect cache entries beyond the failing archive. The target-local regression uses only synthetic files.
- Lenguaje dominante
- C++
- Estrellas
- 3.6k
- Forks
- 470
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una 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 alibaba/GraphScope
-
Please add multi-tenancyAbiertostale
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
alibaba/GraphScope#4655 · 2 comentarios ·
-
stale
Dificultad 5/5 Más de una semana Aptitud para principiantes 38/100
alibaba/GraphScope#4654 · 2 comentarios ·
-
stale
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
alibaba/GraphScope#4647 · 3 comentarios ·
-
[BUG] IC14无法用Cypher执行Abiertostale
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
alibaba/GraphScope#4639 · 2 comentarios ·
-
stale
Dificultad 2/5 1-3 horas Aptitud para principiantes 45/100
alibaba/GraphScope#4637 · 1 comentario ·
Todos los issues de alibaba/GraphScope
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
OpenSpace/OpenSpace#4353 · 1 comentario ·
Los mantenedores suelen responder en 5 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
macOS: a double-click on a notarized altairsim is refused, and the docs give only the offline casePosiblemente ocupada @anhaoXie la tomó hoy. Abiertodocumentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
mutationpp/Mutationpp#337 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
bulletphysics/bullet3#4819 ·