grpc / grpc/grpc-java

grpclb: LoadBalancer.requestConnection() may be ignored if it's called before subchannels are created

Đang mở
#7,435 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Java
Star
12.1k
Fork
4k
Merge trung bình
2 ngày 17 giờ
Pull request đã merge (30 ngày)
37

Mô tả

### What version of gRPC-Java are you using?
v1.32.1

### What did you expect to see?
Calling `ManagedChannel.getState(true)` will make the channel to try to connect to the server at least once, no matter when it's called.

### What did you see instead?
Calling `ManagedChannel.getState(true)` makes the channel try to connect to server only if it's called after subchannels are created, i.e., after name resolution in pick-first, and after backend addresses are received in grpclb. If `getState(true)` is called before that point, the channel won't try to connect to servers after subchannels are created, unless `getState(true)` is called again.

/cc @ejona86

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Start with ManagedChannel.getState(true) and LoadBalancer.requestConnection(), then compare the pick-first and grpclb timing described in the report. Reproduce a call made before subchannels are created; the fix is complete when that call still causes a server connection after subchannels become available.

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

Đánh giá

Công nghệ
grpc, java
Lĩnh vực
api, networking
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

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.