Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

[BUG] Failed archive extraction deletes the dataset cache

オープン 初心者向け
#4,674 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

@dajiaohuang がすでに取り組んでいます。

2026年10月23日 から。

  • #4675 @dajiaohuang による — オープン

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
78/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
python
領域
data

調査の方向性

_extract_archive と、データセットローダーが使用する download_file(..., extract=True) の経路を見つけてください。まず、展開時のエラーハンドラーとアーカイブ失敗に関する既存のテストを調べます。一部のファイルを書き込んで tarfile.TarError を発生させる合成エクストラクターを使って再現してください。エラーが引き続き伝播し、宛先に以前から存在する内容が保持され、クリーンアップの対象がその試行で作成されたファイルに限られる状態になれば完了です。

索引モデルが issue の本文から書いたものです。

説明

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

  1. Put an existing sentinel file (or another cached dataset) in the extraction destination.
  2. Trigger an extraction failure after extraction has started (for example, a malformed or unextractable local archive).
  3. 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.

主要言語
C++
スター
3.6k
フォーク
470
PR マージ指標
30日以内にマージされた PR はありません

環境構築

Codespaces で開く

このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

alibaba/GraphScope のほかの issue

alibaba/GraphScope の issue をすべて見る

似ている issue

C++ の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。