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
grpcfd.(*wrapPerRPCCredentials) captures FDTransceiver from the first gRPC interaction (it would be URL-1 in our case) and sends all fds only to this transceiver:
Related issues
sendfd
doesn't send fd on Forwarder/Endpoint iteration #1111.Expected Behavior
In such case:
sendfd.Client
sendsfd
onClose
orRequest
.connect.Client
makesClose
orRequest
toURL-1
.connect.Client
makesClose
orRequest
toURL-n
.We want
fd
to be sent to allURL-1
, ...,URL-n
receivers.Current Behavior
sendfd.Client
sendsfd
only toURL-1
.Cause
sendfd.Client
usesgrpcfd.(*wrapPerRPCCredentials)
for sendingfd
before the gRPC interaction.grpcfd.(*wrapPerRPCCredentials)
capturesFDTransceiver
from the first gRPC interaction (it would beURL-1
in our case) and sends all fds only to this transceiver:Solution
Analysis
We have 4 different points where we need to use
FDTransceiver
in terms of linear execution:sendfd.Client
).recvfd.Server
).sendfd.Server
).recvfd.Client
).We have the following:
grpc.Peer
, but we will get it only on [4].grpc.Peer
directly from the request context.So in [2, 3, 4] cases we can simply use
grpcfd.FromPeer
to getFDTransceiver
.In [1] case we don't actually need
FDTransceiver
, we only needFDSender
.Edit
grpcfd.(*wrapPerRPCCredentials)
FDSender
interface.FDTransceiver
.Use
grpcfd.FromPeer
inrecvfd.Client
The text was updated successfully, but these errors were encountered: