envoyproxy / envoy

Cloud-native high-performance edge/middle/service proxy
https://www.envoyproxy.io
Apache License 2.0
24.82k stars 4.77k forks source link

Unimplemented grpc response missing description #22688

Open pixil98 opened 2 years ago

pixil98 commented 2 years ago

Title: Unimplemented grpc response missing description

Description:

When Envoy receives a grpc requests for which is has no route, it responds with Unimplemented (12) and an empty description. It would be very helpful to debugging if it provided a description along the lines of "No route available".

Repro steps:

I reproduced this by running the official docker image for both 1.21-latest and 1.22-latest using the config below. I then used grpcui to send a request to the docker image for an rpc it didn't have a route for.

Config:

admin:
  address:
    socket_address: { address: 0.0.0.0, port_value: 9901 }

static_resources:
  listeners:
  - name: listener
    address:
      socket_address: { address: 0.0.0.0, port_value: 10000 }
    filter_chains:
    - filters:
      - name: envoy.filters.network.http_connection_manager
        typed_config:
          "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
          stat_prefix: http
          codec_type: AUTO
          route_config: {}
          http_filters:
          - name: envoy.filters.http.router
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
wbpcode commented 2 years ago

Sounds reasonable to me to add some more detailed description for this scene. But I am not sure should we make the route_not_found awareable to the gRPC clients?