`eval_clean_hashes` is missing or stale for some `task_cleanroom_v6` images
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 58/100
Hướng nghiên cứu
Bắt đầu với src/programbench/data/tasks/*/task.yaml, eval_batch.py và Evaluator._remove_hashed_files(). Chạy lệnh docker sha256sum được cung cấp cho các image task_cleanroom_v6 bị ảnh hưởng và so sánh từng digest với metadata tương ứng. Công việc được hoàn tất khi mọi task thực đều có các hash đã khử trùng lặp, hiện hành và đúng định dạng, đồng thời quy trình cập nhật cho các image được build lại được ghi lại hoặc tự động hóa.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Summary
eval_clean_hashes is intended to remove byte-for-byte copies of the gold executable from a submission before compile.sh runs. However, some task metadata does not define the field, and some existing values do not match the reference executable currently shipped in the corresponding task_cleanroom_v6 image.
This makes the metadata incomplete for downstream evaluators that rely on eval_clean_hashes to scrub renamed copies of the reference executable.
Current state
At repository commit 963063c:
- 201 task directories total (including
testorg__calculator.abc1234) - 40 task YAML files do not define
eval_clean_hashes - 161 define at least one hash
- none define an explicitly empty list
Excluding the test fixture, 39 of the 200 real tasks are missing the field.
In addition, a non-empty list does not necessarily contain the SHA-256 of the executable in the current task_cleanroom_v6 image.
Examples observed:
| Task | Hash in task.yaml |
Current task_cleanroom_v6 reference SHA-256 |
|---|---|---|
facebookresearch__fasttext.1142dc4 |
missing | 80310c0ae4d92165b7a94b17439a1931d99567ae4c1d54706bb557e87bdcd51c |
halitechallenge__halite.822cfb6 |
missing | 9d5e3ec763bbfa7c1091054c3a746ee25af7d4368edc4395eb3e3d8f7f9feac3 |
tomnomnom__gron.88a6234 |
missing | 0270943958c042821654a1e19608848a8cf14cd1136fde4726e8a1821cdf4cc7 |
rs__curlie.5dfcbb1 |
e7e4f84ba194306ef782853d8b77788dd4674a6baad19c878885bb08c2db0d35 |
7ebf850e7d8d0def143b72a1d6d0ebf4e54d8212c515c2317f06e4e8f3f642f0 |
wfxr__csview.8ac4de0 |
e07420f640d1e6a0c047cab49431d1b561f661241efe111a053ff5dde1119d09 |
758ef03ba091d6a7c77d32e60aaf484aca23532aba3eea6a51bdf25232c5f5ce |
As a control, xorg62__tty-clock.f2f847c does contain the current reference hash (cd400708...).
Reproduction
For a task image:
docker run --rm \
--network none \
--user root \
--entrypoint sha256sum \
programbench/rs_1776_curlie.5dfcbb1:task_cleanroom_v6 \
/workspace/executable
Compare the resulting digest with:
src/programbench/data/tasks/rs__curlie.5dfcbb1/task.yaml
The evaluator consumes this metadata in eval_batch.py and recursively removes matching files in Evaluator._remove_hashed_files() before compilation. The evaluator comment describes these hashes as protection against byte-for-byte copies of the gold binary, so including the current cleanroom reference hash appears consistent with the existing field semantics.
Suggested fix
- Compute the SHA-256 of
/workspace/executablefor every currenttask_cleanroom_v6image. - Append it to that task's
eval_clean_hashes, preserving historical hashes and deduplicating the list. - Add a maintenance command or release script that updates these values whenever cleanroom images are rebuilt.
- Validate that every real task has at least one well-formed 64-character SHA-256 value.
- Ideally pin cleanroom images by digest, or verify/update the hashes as part of the image publication workflow, so mutable tags cannot silently drift from task metadata.
I can prepare a follow-up PR to populate the current hashes if this approach matches the intended use of eval_clean_hashes.
- Ngôn ngữ chính
- Python
- Star
- 928
- Fork
- 67
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của facebookresearch/ProgramBench
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 68/100
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 55/100
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
facebookresearch/ProgramBench#50 · 1 bình luận ·
Tất cả issue của facebookresearch/ProgramBench
Issue tương tự
-
bug confirmed issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
open-webui/open-webui#30750 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
OpenwaterHealth/openmotion-bloodflow-app#604 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
-
good first issue
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100