apache / apache/servicecomb-java-chassis

A服务RPC调用B服务找不到可用地址时,导致当前线程上下文被清除,接着再调用C服务时取CSE上下文报空指针异常

Đang mở
#4,569 3 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Java
Star
1.9k
Fork
814
Merge trung bình
8 ngày 23 giờ
Pull request đã merge (30 ngày)
1

Mô tả

1、当前线程A服务代码中第73行使用RPC方式异步调用B服务:
![业务逻辑调用](https://github.com/user-attachments/assets/93710f21-fd75-4bc7-b63a-9e7bde691a1a)

2、负载均衡没有找到B服务可用的地址:
![负载均衡没有可用机器](https://github.com/user-attachments/assets/46a5951a-b952-4071-804b-3d2b53b7e17e)

3、A服务当前线程上下文被清除:
![当前线程上下文被清除](https://github.com/user-attachments/assets/20846a4f-cc1a-4f6e-9eba-0d0ce95f6ed7)

4、A服务当前线程再接着调用C服务时,从上下文中获取参数时报空指针:
![调B服务失败后再取上下文时报空指针异常](https://github.com/user-attachments/assets/d70fe2f6-6b90-408c-b5d8-5316e4b8bc84)

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

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Hướng nghiên cứu

Bắt đầu với mã của A-service ở dòng 73 và theo dõi việc xử lý ngữ cảnh thread khi load balancer không tìm thấy địa chỉ B-service khả dụng nào. Tái hiện lệnh gọi C-service tiếp theo và kiểm tra việc tra cứu ngữ cảnh được hiển thị trong các ảnh chụp màn hình; công việc được xem là hoàn tất khi đường dẫn lỗi không còn gây ra ngoại lệ con trỏ null trong lệnh gọi C-service tiếp theo.

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

Đánh giá

Công nghệ
java
Lĩnh vực
backend, distributed-systems
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
Cần làm rõ
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.