apache / apache/servicecomb-java-chassis
在org.apache.servicecomb.common.rest.RestEngineSchemaListener注册之前 kafka消费消息调用接口,导致后续调用该接口都报空指针异常
- Vorherrschende Sprache
- Java
- Sterne
- 1.9k
- Forks
- 814
- Ø Merge
- 8 T. 23 Std.
- Gemergte PRs (30 T.)
- 1
Beschreibung
```
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调用接口应该会抛错。
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginne mit SCBEngine.java rund um die Prüfung des Status STARTING und das erste Ereignis der Instanzregistrierung. Verfolge dann den Kafka-Consumer-Pfad, der die mit @RpcReference annotierte Schnittstelle aufruft, bevor RestEngineSchemaListener registriert wird. Verwende die bereitgestellte Reihenfolge der Logs, um die Race Condition im Lebenszyklus zu reproduzieren. Als abgeschlossen gilt die Arbeit, wenn der frühe Aufruf konsistent verarbeitet wird und spätere Aufrufe nicht mehr mit einer Nullzeiger-Ausnahme fehlschlagen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java, kafka
- Bereich
- backend, distributed-systems
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 30/100