This is possibly related to the hang-forever bug reported by @mbacarella in dialohq/ocaml-grpc-fork#2.
Servers can respond with an empty body and headers containing the gRPC status that would normally be packaged as trailing headers at the end of the body. E.g. if you call etcd with a non-existing method, the response is just HTTP headers:
This is possibly related to the hang-forever bug reported by @mbacarella in dialohq/ocaml-grpc-fork#2.
Servers can respond with an empty body and headers containing the gRPC status that would normally be packaged as trailing headers at the end of the body. E.g. if you call
etcd
with a non-existing method, the response is just HTTP headers:And the Lwt client will hang. (Status code 12 is UNIMPLEMENTED)
Confusingly, this is called "Trailers-only" in the gRPC spec.
How to fix this: