{"action":"created","issue":{"url":"https://api.github.com/repos/envoyproxy/envoy/issues/1887","repository_url":"https://api.github.com/repos/envoyproxy/envoy","labels_url":"https://api.github.com/repos/envoyproxy/envoy/issues/1887/labels{/name}","comments_url":"https://api.github.com/repos/envoyproxy/envoy/issues/1887/comments","events_url":"https://api.github.com/repos/envoyproxy/envoy/issues/1887/events","html_url":"https://github.com/envoyproxy/envoy/issues/1887","id":266381923,"number":1887,"title":"Issue returning a get request with gRPC -> JSON bridge","user":{"login":"EwanValentine","id":1155123,"avatar_url":"https://avatars1.githubusercontent.com/u/1155123?v=4","gravatar_id":"","url":"https://api.github.com/users/EwanValentine","html_url":"https://github.com/EwanValentine","followers_url":"https://api.github.com/users/EwanValentine/followers","following_url":"https://api.github.com/users/EwanValentine/following{/other_user}","gists_url":"https://api.github.com/users/EwanValentine/gists{/gist_id}","starred_url":"https://api.github.com/users/EwanValentine/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/EwanValentine/subscriptions","organizations_url":"https://api.github.com/users/EwanValentine/orgs","repos_url":"https://api.github.com/users/EwanValentine/repos","events_url":"https://api.github.com/users/EwanValentine/events{/privacy}","received_events_url":"https://api.github.com/users/EwanValentine/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2017-10-18T07:13:02Z","updated_at":"2017-10-18T15:59:55Z","closed_at":null,"author_association":"NONE","body":"Hi there,\r\n\r\nI have two microservices, both exposing a gRPC server. I have an envoy front-proxy set-up, with the following config:\r\n\r\n```json\r\n{\r\n  \"listeners\": [\r\n  {\r\n    \"address\": \"tcp://0.0.0.0:10000\",\r\n    \"filters\": [\r\n    {\r\n      \"type\": \"both\",\r\n      \"name\": \"http_connection_manager\",\r\n      \"config\": {\r\n        \"codec_type\": \"http1\",\r\n        \"access_log\": [\r\n        {\r\n          \"path\": \"/dev/null\",\r\n          \"filter\" : {\r\n            \"type\": \"logical_or\",\r\n            \"filters\": [\r\n              {\r\n                \"type\": \"status_code\",\r\n                \"op\": \">=\",\r\n                \"value\": 500\r\n              },\r\n              {\r\n                \"type\": \"duration\",\r\n                \"op\": \">=\",\r\n                \"value\": 1000000\r\n              }\r\n            ]\r\n          }\r\n        },\r\n        {\r\n          \"path\": \"/dev/null\"\r\n        }],\r\n        \"stat_prefix\": \"router\",\r\n        \"route_config\": {\r\n          \"virtual_hosts\": [\r\n            {\r\n              \"name\": \"integration\",\r\n              \"domains\": [ \"*\" ],\r\n              \"routes\": [\r\n                {\r\n                  \"prefix\": \"\",\r\n                  \"cluster\": \"service\"\r\n                },\r\n                {\r\n                  \"prefix\": \"\",\r\n                  \"cluster\": \"hello-service\"\r\n                }\r\n              ]\r\n            }\r\n          ]\r\n        },\r\n\r\n        \"filters\": [\r\n          {\r\n            \"type\": \"both\",\r\n            \"name\": \"grpc_json_transcoder\",\r\n            \"config\": {\r\n              \"proto_descriptor\": \"/etc/hello-service.pb\",\r\n              \"services\": [\"models.HelloService\"]\r\n            }\r\n          },\r\n          {\r\n            \"type\": \"both\",\r\n            \"name\": \"grpc_json_transcoder\",\r\n            \"config\": {\r\n              \"proto_descriptor\": \"/etc/service.pb\",\r\n              \"services\": [\"models.AuthService\"]\r\n            }\r\n          },\r\n          { \"type\": \"decoder\", \"name\": \"router\", \"config\": {} }\r\n        ]\r\n      }\r\n    }]\r\n  }],\r\n\r\n  \"admin\": { \"access_log_path\": \"/dev/null\", \"address\": \"tcp://0.0.0.0:9000\" },\r\n  \"statsd_udp_ip_address\": \"0.0.0.0:8125\",\r\n\r\n  \"cluster_manager\": {\r\n    \"clusters\": [\r\n      {\r\n        \"name\": \"hello-service\",\r\n        \"features\": \"http2\",\r\n        \"connect_timeout_ms\": 5000,\r\n        \"type\": \"strict_dns\",\r\n        \"lb_type\": \"round_robin\",\r\n        \"hosts\": [\r\n          {\r\n            \"url\": \"tcp://hello_1:50052\"\r\n          }\r\n        ]\r\n      },\r\n      {\r\n        \"name\": \"service\",\r\n        \"features\": \"http2\",\r\n        \"connect_timeout_ms\": 5000,\r\n        \"type\": \"strict_dns\",\r\n        \"lb_type\": \"round_robin\",\r\n        \"hosts\": [\r\n          {\r\n            \"url\": \"tcp://service_1:50051\"\r\n          }\r\n        ]\r\n      }\r\n    ]\r\n  }\r\n}\r\n```\r\n\r\nThe first service exposes two methods, one GET, one POST. Both of those work. Then I have an almost identical second service, exposing two methods, both GET. \r\n\r\nThe first service works as expected, however the second service returns a 200, but nothing for the body. I suspected it was my code as one service works, but the other doesn't. But I created a gRPC client, and that works as expected with the service that's not returning anything via Envoy. So I wondered if it was my config.\r\n\r\nHere's my repo: https://github.com/EwanValentine/envoytest "},"comment":{"url":"https://api.github.com/repos/envoyproxy/envoy/issues/comments/337640347","html_url":"https://github.com/envoyproxy/envoy/issues/1887#issuecomment-337640347","issue_url":"https://api.github.com/repos/envoyproxy/envoy/issues/1887","id":337640347,"user":{"login":"mattklein123","id":6305260,"avatar_url":"https://avatars3.githubusercontent.com/u/6305260?v=4","gravatar_id":"","url":"https://api.github.com/users/mattklein123","html_url":"https://github.com/mattklein123","followers_url":"https://api.github.com/users/mattklein123/followers","following_url":"https://api.github.com/users/mattklein123/following{/other_user}","gists_url":"https://api.github.com/users/mattklein123/gists{/gist_id}","starred_url":"https://api.github.com/users/mattklein123/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mattklein123/subscriptions","organizations_url":"https://api.github.com/users/mattklein123/orgs","repos_url":"https://api.github.com/users/mattklein123/repos","events_url":"https://api.github.com/users/mattklein123/events{/privacy}","received_events_url":"https://api.github.com/users/mattklein123/received_events","type":"User","site_admin":false},"created_at":"2017-10-18T15:59:55Z","updated_at":"2017-10-18T15:59:55Z","author_association":"OWNER","body":"> I don't remember what is the behavior if two route have same prefix. Is the first one always picked @mattklein123 ?\r\n\r\nYes, matching is FIFO. @EwanValentine can you provide a log with \"-l 1\" (debug) level logging?"}}
{"actor":{"display_login":"mattklein123"}}