apache / apache/servicecomb-java-chassis

某个服务无法调用其他服务

Ouverte
#3,752 6 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

使用 cse-solution-service-engine 2.3.63 的版本
某个服务调用其他服务时会出现这样的报错,但是其他服务正常调用时都不会走到这个断点里面
为什么这个服务调用时会触发registerSchema呢
[E]-[]-[Service Center Task [java.util.concurrent.ThreadPoolExecutor$Worker@5280cc80[State = -1, empty queue][283]]][org.apache.servicecomb.core.definition.SchemaMeta]Unhandled exception to service agency-web schema ces
[E]-[]-[Service Center Task [java.util.concurrent.ThreadPoolExecutor$Worker@5280cc80[State = -1, empty queue][283]]][org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions]Failed to setInstances, appId=nontax, microserviceName=agency-web. java.lang.NullPointerException
at org.apache.servicecomb.common.javassist.CtType.(CtType.java:52)
at org.apache.servicecomb.common.javassist.MethodConfig.setResult(MethodConfig.java:64)
at org.apache.servicecomb.swagger.converter.SwaggerToClassGenerator.convertToInterface(SwaggerToClassGenerator.java:222)
at org.apache.servicecomb.swagger.converter.SwaggerToClassGenerator.convert(SwaggerToClassGenerator.java:144)
at org.apache.servicecomb.core.definition.SchemaMeta.(SchemaMeta.java:70)
at org.apache.servicecomb.core.definition.loader.SchemaLoader.registerSchema(SchemaLoader.java:85)
at org.apache.servicecomb.core.definition.schema.ConsumerSchemaFactory.createSchema(ConsumerSchemaFactory.java:61)
at org.apache.servicecomb.core.definition.schema.ConsumerSchemaFactory.createSchema(ConsumerSchemaFactory.java:33)
at org.apache.servicecomb.core.definition.schema.AbstractSchemaFactory.getOrCreateSchema(AbstractSchemaFactory.java:58)
at org.apache.servicecomb.core.definition.schema.ConsumerSchemaFactory.createConsumerSchema(ConsumerSchemaFactory.java:48)
at org.apache.servicecomb.core.definition.MicroserviceVersionMeta.(MicroserviceVersionMeta.java:45)
at org.apache.servicecomb.core.definition.MicroserviceVersionMetaFactory.create(MicroserviceVersionMetaFactory.java:38)
at org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions.lambda$setInstances$0(MicroserviceVersions.java:184)
at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660)
at org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx.computeIfAbsent(ConcurrentHashMapEx.java:56)
at org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions.setInstances(MicroserviceVersions.java:183)
at org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions.safeSetInstances(MicroserviceVersions.java:163)
at org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions.pullInstances(MicroserviceVersions.java:158)
at org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions.submitPull(MicroserviceVersions.java:130)
at org.apache.servicecomb.serviceregistry.consumer.MicroserviceManager.refreshInstances(MicroserviceManager.java:96)
at org.apache.servicecomb.serviceregistry.consumer.MicroserviceManager.periodicPull(MicroserviceManager.java:86)
at org.apache.servicecomb.foundation.common.event.SimpleSubscriber.syncDispatch(SimpleSubscriber.java:85)
at org.apache.servicecomb.foundation.common.event.SimpleSubscriber.dispatchEvent(SimpleSubscriber.java:77)
at org.apache.servicecomb.foundation.common.event.SimpleEventBus.post(SimpleEventBus.java:72)
at org.apache.servicecomb.serviceregistry.registry.RemoteServiceRegistry.lambda$run$2(RemoteServiceRegistry.java:94)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset$$$capture(FutureTask.java:308)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750)
at org.apache.servicecomb.serviceregistry.registry.RemoteServiceRegistry$1.run(RemoteServiceRegistry.java:62)

Guide de contribution

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

Piste de recherche

Commencez par SchemaLoader.registerSchema et suivez le chemin du schéma du consommateur à travers ConsumerSchemaFactory, SchemaMeta, SwaggerToClassGenerator, MethodConfig et CtType. Reproduisez l’échec avec cse-solution-service-engine 2.3.63 et examinez pourquoi registerSchema aboutit à la NullPointerException lors de la découverte des services. Le travail est terminé lorsque la cause est identifiée et qu’un correctif vérifié ou un test de régression est disponible.

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
25/100

Recevez les nouvelles issues par e-mail

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