apache / apache/servicecomb-java-chassis

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

Ouverte
#4,569 3 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Java
Étoiles
1.9k
Forks
814
Merge moyen
8 j 23 h
PR mergées (30 j)
1

Description

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)

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Commencez par le code de A-service à la ligne 73 et suivez la gestion du contexte du thread lorsque le load balancer ne trouve aucune adresse disponible de B-service. Reproduisez l’appel suivant à C-service et examinez la recherche de contexte montrée dans les captures d’écran ; le travail est considéré comme terminé lorsque le chemin d’échec ne provoque plus d’exception de pointeur nul lors de l’appel C-service suivant.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
java
Domaine
backend, distributed-systems
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.