fix(docker-compose): point patcher task storage at tasks_storage (#551)

BUTTERCUP_PATCHER_TASK_STORAGE_DIR was /node_data/crs_scratch. The
patcher's get_clean_task() resolves <task_storage>/<task_id>; under
crs_scratch that path is already the fuzzer/scheduler per-task scratch
dir (corpus/crashes/build subdirs, no task_meta.json). remote_archive_
to_dir() early-returns because the dir exists, so the pristine task is
never materialized and TaskMeta.load() raises FileNotFoundError on
task_meta.json during the patcher 'find_tests' node.

Point it at /node_data/tasks_storage (same as
BUTTERCUP_DOWNLOADER_DOWNLOAD_DIR / BUTTERCUP_SCHEDULER_TASKS_STORAGE_DIR),
where the downloaded task with task_meta.json actually lives.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Riccardo Schirone
2026-05-19 09:22:40 +02:00
committed by GitHub
parent f3e9934f1d
commit 2009c772b0
+5 -1
View File
@@ -37,7 +37,11 @@ BUTTERCUP_SCHEDULER_SCRATCH_DIR=/node_data/crs_scratch
BUTTERCUP_PATCHER_SERVE__REDIS_URL=redis://redis:6379
BUTTERCUP_PATCHER_SERVE__SLEEP_TIME=5
BUTTERCUP_PATCHER_LOG_LEVEL=debug
BUTTERCUP_PATCHER_TASK_STORAGE_DIR=/node_data/crs_scratch
# Where the downloaded challenge task lives (matches downloader/scheduler).
# Must NOT be crs_scratch: get_clean_task() resolves <task_storage>/<task_id>,
# which under crs_scratch collides with the fuzzer's per-task scratch dir
# (no task_meta.json there) and crashes TaskMeta.load().
BUTTERCUP_PATCHER_TASK_STORAGE_DIR=/node_data/tasks_storage
BUTTERCUP_PATCHER_SCRATCH_DIR=/node_data/crs_scratch
BUTTERCUP_PROGRAM_MODEL_SERVE__REDIS_URL=redis://redis:6379