cloudfoundry / cloudfoundry/cf-java-client
AbstractUaaTokenProvider violates Publisher Spec. Rule 1.3
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Java
- Sterne
- 334
- Forks
- 319
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
Hi,
I have observed below error related to Publisher Spec. Rule 1.3, while trying to get token in AbstractUaaTokenProvider.token(…) method -
reactor.core.Exceptions$ErrorCallbackNotImplemented: reactor.core.publisher.Sinks$EmissionException: Spec. Rule 1.3 - onSubscribe, onNext, onError and onComplete signaled to a Subscriber MUST be signaled serially.
Stack trace -
reactor.core.Exceptions$ErrorCallbackNotImplemented: reactor.core.publisher.Sinks$EmissionException: Spec. Rule 1.3 - onSubscribe, onNext, onError and onComplete signaled to a Subscriber MUST be signaled serially.
Caused by: reactor.core.publisher.Sinks$EmissionException: Spec. Rule 1.3 - onSubscribe, onNext, onError and onComplete signaled to a Subscriber MUST be signaled serially.
at reactor.core.publisher.InternalManySink.emitNext(InternalManySink.java:56)
Suppressed: The stacktrace has been enhanced by Reactor, refer to additional information below:
Assembly trace from producer [reactor.core.publisher.MonoCacheTime] :
reactor.core.publisher.Mono.checkpoint(Mono.java:2206)
org.cloudfoundry.reactor.tokenprovider.AbstractUaaTokenProvider.token(AbstractUaaTokenProvider.java:261)
Error has been observed at the following site(s):
*__checkpoint() ⇢ at org.cloudfoundry.reactor.tokenprovider.AbstractUaaTokenProvider.token(AbstractUaaTokenProvider.java:261)
While checking the flow with this stacktrace, it seems this error is getting thrown at InternalManySink.emitNext(...) level. It is failing due to state 'FAIL_NON_SERIALIZED', as tryEmitNext(..) is getting triggered by different threads at the same time.
It will be helpful if someone can share some insights on the same, and share any document for more idea on tokenprovider feature of cf java client or share any already existing issue on the same line for more details
Thanks.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne in AbstractUaaTokenProvider.token(...) bei AbstractUaaTokenProvider.java:261 und überprüfe den umgebenden Token-Provider-Ablauf sowie die Verwendung von Reactor-Sinks. Reproduziere gleichzeitige tryEmitNext-Aufrufe, die zu FAIL_NON_SERIALIZED führen, und verifiziere anschließend, dass Token-Abonnenten Signale seriell empfangen und der gemeldete Fehler nicht mehr auftritt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java
- Bereich
- authentication
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100