apache / apache/servicecomb-java-chassis
某个服务无法调用其他服务
- Lenguaje dominante
- Java
- Estrellas
- 1.9k
- Forks
- 814
- Merge medio
- 8 d 23 h
- PR fusionados (30 d)
- 1
Descripción
使用 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)
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Línea de trabajo
Comience en SchemaLoader.registerSchema y siga la ruta del esquema del consumidor a través de ConsumerSchemaFactory, SchemaMeta, SwaggerToClassGenerator, MethodConfig y CtType. Reproduzca el fallo con cse-solution-service-engine 2.3.63 e inspeccione por qué registerSchema llega a la NullPointerException durante el descubrimiento de servicios. Se considera terminado cuando se haya identificado la causa y esté disponible una corrección verificada o una prueba de regresión.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- java
- Área
- backend, distributed-systems
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 25/100