S3 connection hangs when S3 Put request times out server side.
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
- 48/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Ít trao đổi
- Công nghệ
- cpp
- Lĩnh vực
- cloud, networking
Hướng nghiên cứu
Bắt đầu trong s3_key_value_store.cc, khoảng dòng 764, và lần theo IssueRequestOptions đến curl_transport.cc, khoảng các dòng 198-205. Xem xét cách request_timeout và connect_timeout hiện được đặt mặc định như thế nào và driver S3 nên cung cấp chúng ra sao. Được xem là hoàn tất khi một timeout phía máy chủ khiến yêu cầu bị hủy và thử lại thay vì bị treo trong khoảng 30 phút.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Hi google friends! Apologies for the trouble!! We found this interesting issue when using tensorstore!! Thanks for taking a look
Summary
When an S3 PUT request is timed out server-side, the TensorStore client can hang for ~30 minutes before retrying. During this window, S3 access logs show zero retries — the request appears to be "in flight" on the client but dead on the
server. The receive of the request is confirmed by s3 access logs.
The ~30-minute gap matches the default OS-level TCP keepalive + retransmission timeout, which is the only thing that eventually forces the stalled socket closed.
Root Cause
2 layers of missing timeout configuration compound each other:
1. S3 driver issues requests with no timeouts (s3_key_value_store.cc:764)
auto future = owner->transport_->IssueRequest(
request, internal_http::IssueRequestOptions(value_));
// IssueRequestOptions only sets payload; request_timeout and connect_timeout
// remain at their defaults of absl::ZeroDuration().
- Zero duration → curl sets nothing (curl_transport.cc:198-205)
if (options.request_timeout > absl::ZeroDuration()) { // never true
handle_.SetOption(CURLOPT_TIMEOUT_MS, ...);
}
CURLOPT_TIMEOUT_MS is never set, so libcurl has no deadline on the transfer.
Workaround
Set environment variables before launching your process:
export TENSORSTORE_CURL_LOW_SPEED_TIME_SECONDS=30
export TENSORSTORE_CURL_LOW_SPEED_LIMIT_BYTES=1
This enables the low-speed watchdog: if fewer than 1 byte/sec is transferred for 30 seconds, libcurl aborts the request and the retry logic takes over.
Suggested fix
- Expose request timeout and connect timeout to s3 query driver
- Ngôn ngữ chính
- C++
- Star
- 1.6k
- Fork
- 151
- 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 google/tensorstore
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
google/tensorstore#305 ·
-
Ship Python 3.15 wheelsĐang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 64/100
google/tensorstore#298 · 1 bình luận ·
-
Zarr3 rectilinear chunk gridĐang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
google/tensorstore#288 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 48/100
google/tensorstore#279 ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 28/100
google/tensorstore#251 · 13 bình luận ·
Tất cả issue của google/tensorstore
Issue tương tự
-
documentation
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 84/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Lua File: add readWhole()Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 69/100
grumpycoders/pcsx-redux#2667 ·
-
GCC 15.2: -Wcast-qual warning - cast discards const qualifier from pointer target type (H5trace.c)Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 73/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug module: copilot
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
MaaAssistantArknights/MaaAssistantArknights#19250 · 2 bình luận ·
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 72/100
LadybirdBrowser/ladybird#14486 ·
Maintainer thường phản hồi trong vòng 1 ngày