Skip to content

Praefect server metadata not resolved before passing to Ruby sidecar

When receiving a call with Praefect server metadata, we need resolve contained connection information first based on the current peer's connection information. This will fill in the remote's IP address, which is something that may change depending on how Praefect has connected to us.

While we already to this for "normal" calls via PraefectFromContext(), we don't for proxied calls intended for our Ruby sidecar. As a result, the sidecar may receive invalid connection information which it cannot use. To fix this, we need to resolve address information on Gitaly's side and inject resolved metadata into the Ruby sidecar's metadata.

References gitlab#233838 (closed)

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information