Client thread parked forever on Threadless executor after receiving RST_STREAM
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ó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 42/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- java
- Lĩnh vực
- backend-api-design
Hướng nghiên cứu
Start by reading ThreadlessExecutor.waitAndDrain and tracing how a received RST_STREAM with error code 8 signals completion after an RPC deadline expires. The report provides no stable reproduction steps, so first inspect the related issue #12648 and look for existing tests covering ThreadlessExecutor and stream resets. Done when the client call completes after the deadline and a regression test covers the empty task queue case.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
What version of gRPC-Java are you using?
1.77.0
What is your environment?
OS: Linux (aarch64/ARM64 Amazon)
JDK: openjdk version 21.0.12.1
What did you expect to see?
The client should finish RPC call after deadline expired
What did you see instead?
The client stuck forever waiting in ThreadlessExecutor.waitAndDrain with tasks queue being empty.
Steps to reproduce the bug
There are no stable steps to reproduce the issue. It happens randomly under heavy load. The logs show that the client receives RST_STREAM with errorCode=8 from server side after deadline timeout expires, but the thread stays in waiting state. The issue is similar to https://github.com/grpc/grpc-java/issues/12648 but tasks queue is empty in our case.
Netty logs
Timestamp: 1792213442141
[id: 0x33655f63, L:/10.0.26.216:35698 - R:10.0.28.102/10.0.28.102:50051] OUTBOUND HEADERS: streamId=687
...
Timestamp: 1792213472142
[id: 0x33655f63, L:/10.0.26.216:35698 - R:10.0.28.102/10.0.28.102:50051] INBOUND RST_STREAM: streamId=687 errorCode=8
- Ngôn ngữ chính
- Java
- Star
- 12.1k
- Fork
- 4k
- Merge trung bình
- 2 ngày 9 giờ
- Pull request đã merge (30 ngày)
- 44
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 grpc/grpc-java
-
channelz: ServerData `calls_failed` counter not incremented upon client cancellationCó thể đã có người làm @JoeCqupt đã nhận 6 ngày trước. Đang mởenhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
grpc/grpc-java#13063 · 4 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Support of `dns:name` URIsĐang mởdocs enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
grpc/grpc-java#10824 · 8 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
question
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 25/100
Maintainer thường phản hồi trong vòng 1 ngày
-
xds: duplicate endpoint addresses across localities are ACKed and can panic outlier detectionCó thể đã có người làm @valeter đã nhận 6 ngày trước. Đang mở
Độ khó 3/5 Nửa ngày Mức phù hợp với người mới 45/100
Maintainer thường phản hồi trong vòng 1 ngày
-
binder: `ServerStream.close()` marks the stream closed before the suffix is sent, so a flow-control-deferred send failure leaks the callCó thể đã có người làm @kkmurthyt21 đã nhận 8 ngày trước. Đang mởbug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
grpc/grpc-java#13097 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của grpc/grpc-java
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 79/100
checkstyle/checkstyle#22145 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
rset command throws NPE in ResultsFormat.guessSyntaxCó thể đã có người làm @Ostrzyciel đã nhận hôm nay. Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement good first issue help wanted
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 83/100
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 82/100
objectionary/eo#9593 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Incorrect doc for jwtConsumerĐang mởrelease bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
OpenLiberty/open-liberty#36124 ·
Maintainer thường phản hồi trong vòng 1 ngày