apache / apache/servicecomb-java-chassis
在org.apache.servicecomb.common.rest.RestEngineSchemaListener注册之前 kafka消费消息调用接口,导致后续调用该接口都报空指针异常
- Lenguaje dominante
- Java
- Estrellas
- 1.9k
- Forks
- 814
- Merge medio
- 8 d 23 h
- PR fusionados (30 d)
- 1
Descripción
```
2022-07-28 14:36:45.020|[]|mock-thread|WARN |SCBEngine.java:513|The request is rejected. Cannot process the request due to STATUS = STARTING
2022-07-28 14:36:45.020|[]|mock-thread|WARN |VehicleTaskEndListener.java:64|clear busyTag of [335157342402481152] failed
2022-07-28 14:36:45.215|[]|mock-thread|INFO |MicroserviceVersions.java:93|create MicroserviceVersions, appId=mockAppId, microserviceName=mockMicro.
2022-07-28 14:36:46.125|[]|main|INFO |SCBEngine.java:630|instance registry succeeds for the first time, will send AFTER_REGISTRY event.
```
`create MicroserviceVersions`日志打印早于`instance registry succeeds for the first time`
通过日志上下文可以确定这个日志是调用一个@RpcReference的接口触发的。但是按理`currentStatus` 不为UP调用接口应该会抛错。
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Línea de trabajo
Comienza con SCBEngine.java alrededor de la comprobación del estado STARTING y el primer evento del registro de instancias; después, sigue la ruta del consumidor de Kafka que invoca la interfaz anotada con @RpcReference antes de que se registre RestEngineSchemaListener. Usa el orden proporcionado de los logs para reproducir la condición de carrera del ciclo de vida. El trabajo estará terminado cuando la llamada temprana se gestione de forma coherente y las llamadas posteriores ya no fallen con una excepción de puntero nulo.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- java, kafka
- Á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
- 30/100