tools/enrolment_check.sh: a crashing enrolment_edges.py is not reported as ABORTED (|| reads sort's status)

Đang mở Phù hợp với người mới
#2,305 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
62/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
python, shell
Lĩnh vực
tooling

Hướng nghiên cứu

Lỗi nằm trong tools/enrolment_check.sh quanh dòng 110, nơi pipeline python3 tools/enrolment_edges.py . | sort -u > "$EDGES" được theo sau bởi ||, đọc trạng thái thoát của sort thay vì của deriver. Hãy kiểm tra cách script thiết lập pipefail hoặc PIPESTATUS, sau đó chèn raise SystemExit(1) vào main của tools/enrolment_edges.py và chạy bash tools/enrolment_check.sh; echo rc=$?. Hoàn thành khi có đúng một dòng ABORTED nêu tên deriver và trạng thái của nó, mã thoát khác không, có một trường hợp selftest trong tools/selftests.txt với số đếm đã cập nhật, và các số đếm không đổi khi chạy mà không chèn lỗi.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

needs-triage

tools/enrolment_check.sh:110 runs

python3 tools/enrolment_edges.py . | sort -u > "$EDGES" || { ... ABORT ... }

without pipefail, so the || reads sort's status. If the deriver crashes (traceback, rc 1), sort still exits 0 on whatever partial output it got, and the gate does not report ABORTED: it surfaces only as a flood of has no suite invocation lines for every program, which reads as hundreds of enrolment failures rather than one broken tool.

Found while working on hq#58 (InauguralSystems/hq#58, branch claude/ci58-es-2a-fragments); not changed there because #1776 rewrites this file.

Repro (plant)

Insert raise SystemExit(1) (or 1/0) at the top of main in tools/enrolment_edges.py, then bash tools/enrolment_check.sh; echo rc=$? -> per-program "invoked by nothing" FAILs, no ABORT line naming the deriver.

Done when
  • With the deriver planted to crash, tools/enrolment_check.sh prints one ABORTED line naming tools/enrolment_edges.py and its exit status, and exits nonzero, with no per-program invocation lines.
  • tools/enrolment_check.sh --selftest carries that plant as a case (count pin in tools/selftests.txt updated in the same PR).
  • An unplanted run is unchanged (same examined/enrolled counts).

Generated by Claude Code

Ngôn ngữ chính
C
Star
3
Fork
7
Merge trung bình
6 giờ 28 phút
Pull request đã merge (30 ngày)
312

Chuẩn bị môi trường

Mở trong Codespaces

Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của InauguralSystems/EigenScript

Tất cả issue của InauguralSystems/EigenScript

Issue tương tự

Thêm issue về C

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.