Zero rerun delay can abort with OverflowError for a large finite backoff factor
Đá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
- 78/100
Hướng nghiên cứu
Bắt đầu với phép tính backoff tại src/pytest_rerunfailures.py:1340 và dùng bản tái hiện test_zero_backoff.py được cung cấp cùng lệnh pytest hiển thị trong issue. Kiểm tra cách xử lý độ trễ thực tế bằng không trước khi tính lũy thừa. Hoàn tất khi bản tái hiện thực hiện đủ cả bốn lần thử với mã thoát 0 và không có độ trễ trước các lần thử lại.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
With zero rerun delay and a large positive, finite backoff factor, pytest aborts before using the configured retries.
Reproduced on macOS arm64, CPython 3.14.8 / pytest 9.1.1, against unmodified master 01fd226bd533ecd7f6aabe7c155c4ca7bcd8598c (16.8.dev0).
Save as test_zero_backoff.py:
def test_eventual_success(request):
print(f"attempt {request.node.execution_count}")
assert request.node.execution_count == 4
python -m pytest -q -s -p no:randomly -p no:cacheprovider \
--reruns 3 --reruns-delay 0 --reruns-delay-backoff-factor 1e308 \
test_zero_backoff.py
Expected: four attempts, 1 passed, 3 rerun, exit 0, with zero delay before each retry.
Actual: only three attempts, 2 rerun, then INTERNALERROR> OverflowError: (34, 'Result too large'), exit 3. At src/pytest_rerunfailures.py:1340, delay * delay_backoff_factor ** (item.execution_count - 1) evaluates 1e308 ** 2 before multiplying by zero.
1e308 is finite (math.isfinite(1e308) is true). This is an edge case with an unusually large factor; ordinary default settings are not affected. A local fix that skips exponentiation only for effective delay zero completes this reproduction with real sleep calls. Nonzero-delay overflow is outside this report's scope.
Disclosure: AI assistants were used for the investigation, reproduction, tests, review, and drafting with the account owner's authorization.
- Ngôn ngữ chính
- Python
- Star
- 482
- Fork
- 110
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc 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 pytest-dev/pytest-rerunfailures
-
Non-finite rerun delay settings abort pytest with INTERNALERRORCó thể đã có người làm @Arham-Begani đã nhận 19 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 35/100
-
fail-on-flaky returns success after a rerun with xdistCó thể đã có người làm @harbinresearcher đã nhận 22 ngày trước. Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 15/100
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
pytest-dev/pytest-rerunfailures#326 · 7 bình luận ·
-
Add ability to raise runtime warnings on rerunsCó thể đã có người làm @LouisDeconinck đã nhận 50 ngày trước. Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
pytest-dev/pytest-rerunfailures#318 · 2 bình luận ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
pytest-dev/pytest-rerunfailures#313 · 5 bình luận ·
Tất cả issue của pytest-dev/pytest-rerunfailures
Issue tương tự
-
[BUG]: Compliance rules never see Unity Catalog views as viewsCó thể đã có người làm @wagnercsantos đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
databrickslabs/ontos#1348 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
ibm-granite/granite.build#649 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
`forum_pr_poster` action will always return `none` when checking for pre-existing feedback threads, even if a feedback thread already exists.Có thể đã có người làm @pgmzeta đã nhận hôm nay. Đang mởE-Verified P-Major
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 79/100
goonstation/goonstation#28259 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
woonstadrotterdam/monumenten#70 ·
Maintainer thường phản hồi trong vòng 15 ngày
-
binding:python bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày