You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am trying to pass additional information in subscriber context through the LoadBalancedRSocketMono to my implementation of RSocket. It seems like LoadBalancedRSocketMono does not properly propagate it up the subscription chain.
After debugging it for a bit it looks like subscriber context is present as expected on the
LatencySubscriber child argument. (child.currentContext() has the data), but then it's lost when subscribing to the source.
In this case rsocket is the WeightedRSocket from the LB. I see that resultsSink.currentContext() has correct data, but when the call arrives to the actual RSocket wrapped in the WeightedRSocket in a function like this:
@OverridepublicMono<Payload> requestResponse(Payloadpayload) {
returndelegate.requestResponse(payload).subscriberContext(ctx -> {
// expecting that higher level subscriber context data would be available here...// same problem exists when using Mono.subscriberContext()...returnctx;
});
}
I see that ctx is empty and is missing the data that was provided to the WeightedRSocket.
It appears that as LB is creating the handler chain the context is not properly propagated at some point.
The text was updated successfully, but these errors were encountered:
a701440
changed the title
LoadBalancedRSocketMono does not seem to propagate subscriber context properly
LoadBalancedRSocketMono (LatencySubscriber) does not seem to propagate subscriber context properly
May 7, 2020
I am trying to pass additional information in subscriber context through the
LoadBalancedRSocketMono
to my implementation of RSocket. It seems likeLoadBalancedRSocketMono
does not properly propagate it up the subscription chain.After debugging it for a bit it looks like subscriber context is present as expected on the
LatencySubscriber child argument. (child.currentContext() has the data), but then it's lost when subscribing to the source.
In this case rsocket is the
WeightedRSocket
from the LB. I see thatresultsSink.currentContext()
has correct data, but when the call arrives to the actual RSocket wrapped in theWeightedRSocket
in a function like this:I see that ctx is empty and is missing the data that was provided to the
WeightedRSocket
.It appears that as LB is creating the handler chain the context is not properly propagated at some point.
The text was updated successfully, but these errors were encountered: