Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Poem GRPC does not work behind traefik proxy when compression middleware is enabled #874

Open
tgcGlaDius opened this issue Aug 31, 2024 · 1 comment

Comments

@tgcGlaDius
Copy link

Expected Behavior

GRPC requests are properly router and responded to when sending requests through a traefik reverse proxy

Actual Behavior

When the poem::middleware::Compression middleware is enabled on the GRPC router and the service is behind a traefik reverse proxy the HTTP2 trailers do not arrive at the GRPC client and the client errors.

This problem has not appeared when running without the reverse proxy

Steps to Reproduce the Problem

  1. create a GRPC service (for example the helloworld example) and attach the compression middleware using .with(poem::middleware::Compression::new())
  2. setup a traefik reverse proxy using h2c://{ip}:{port} as the service backend as specified in the traefik GRPC example
  3. send a GRPC request through the traefik reverse proxy
    • this should error or hang infinetly, depending on the client
  4. send a GRPC request directly to the GRPC service
    • this should work without error

Specifications

  • Version: poem-grpc 0.4.3, poem 3.0.4
@tgcGlaDius tgcGlaDius added the bug Something isn't working label Aug 31, 2024
@sunli829
Copy link
Collaborator

Content-Encoding cannot be used for GRPC. There is a special protocol in GRPC for compression support. Poem does not support it yet, but I will add it as soon as possible.

https://grpc.io/docs/guides/compression/

@sunli829 sunli829 removed the bug Something isn't working label Aug 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants