bigquery: SSLError marked globally non-retryable (#17489) fails jobs.get / result() polling on transient TLS resets
Maintainer thường phản hồi trong vòng 1 ngày
@daniel-sanche đang làm issue này rồi.
Từ ngày 28/8/2026.
Đánh giá
Issue này chưa được đánh giá.
Mô tả
Determine this is the right repository
- I determined this is the correct repository in which to report this bug.
Summary of the issue
#17489 ("avoid SSLError retry loop", released in 3.42.2) added requests.exceptions.SSLError to a new _UNSTRUCTURED_NON_RETRYABLE_TYPES and short-circuits _should_retry on it
(retry.py:46,76-77).
The PR's motivating case is insert_rows_json, but _should_retry is not that method's predicate — it is the base predicate for every retry surface in the client. As a result a single transient TLS reset now fails any API call, where 3.40.1 retried it as the requests.exceptions.ConnectionError subclass it is.
Expected vs. actual
A transient SSLEOFError (peer or middlebox dropping the socket mid-handshake) is a transport error and was retried to DEFAULT_RETRY's 600 s deadline in 3.40.1 — retry.py there has no _UNSTRUCTURED_NON_RETRYABLE_TYPES at all, so _should_retry fell through to the isinstance check against _UNSTRUCTURED_RETRYABLE_TYPES, which contains requests.exceptions.ConnectionError (and requests makes SSLError a subclass of it deliberately). In 3.42.2 the same blip raises on the first occurrence.
API client name and version
google-cloud-bigquery: 3.42.2 (first release with the change) — still present in 3.43.0
Reproduction steps: code
No response
Reproduction steps: supporting files
No response
Reproduction steps: actual results
No response
Reproduction steps: expected results
No response
OS & version + platform
Container-Optimized OS (GKE, Cloud Composer 3)
Python environment
Python: 3.11
Python dependencies
No response
Additional context
What we actually observe in production
Deferred BigQueryInsertJobOperator tasks (Airflow 3.2 / Composer 3) poll jobs.get every 4 s. Since upgrading to an image carrying 3.42.2, polls fail like this — and each failure fails the task and re-submits the query, on jobs that are RUNNING and healthy:
HTTPSConnectionPool(host='bigquery.googleapis.com', port=443): Max retries exceeded with url: /bigquery/v2/projects/<project>/jobs/<job>?projection=full&location=EU (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol')))
49 such events across ~20 different DAGs in ~19 h; zero on the same workload while it ran 3.40.1. Note the URL family: jobs.get — a GET with no request body, so no schema can be involved. Note also that google.auth.transport.requests.AuthorizedSession mounts HTTPAdapter(max_retries=3) on the auth session only, so nothing below the client retries the data request either: identical resets on an IAM refresh call recover silently, while jobs.get fails outright.
- Ngôn ngữ chính
- Python
- Star
- 5.4k
- Fork
- 1.8k
- Merge trung bình
- 2 ngày 12 giờ
- Pull request đã merge (30 ngày)
- 143
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- 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 googleapis/google-cloud-python
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
googleapis/google-cloud-python#18532 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 92/100
googleapis/google-cloud-python#18467 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
auth priority: p2 type: bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
googleapis/google-cloud-python#18428 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
priority: p2 type: bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
googleapis/google-cloud-python#18375 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
ci: enable --strict flag in presubmit twine_checkCó thể đã có người làm @ohmayr đã nhận 2 ngày trước. Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 76/100
googleapis/google-cloud-python#18339 · 1 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của googleapis/google-cloud-python
Issue tương tự
-
[request] poppler-data/0.4.12Đang mởupstream update
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
conan-io/conan-center-index#31098 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
john-kurkowski/tldextract#382 ·
-
comp/tools duplicate P2 sweeper:risk-compatibility tool/mcp type/bug
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
NousResearch/hermes-agent#132042 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
deepset-ai/haystack#13092 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 85/100
feder-cr/invisible_playwright_mcp#1408 ·
Maintainer thường phản hồi trong vòng 1 ngày