envoy: Transcoder triggers EOF with HTTP/2 when request body is "google.api.HttpBody"
Title: [gRPC-JSON transcoder] request field “google.api.HttpBody” triggers EOF if payload is less than 0x4000 bytes
Description:
What issue is being seen? Describe what should be happening instead of the bug, for example: Envoy should not crash, the expected value isn’t returned, etc.
I am currently running Istio (v10.0.0) on GKE (v1.19.9-gke.1400) which deploys Envoy (v1.18.3) as sidecar.
My application requires the gRPC-JSON transcoder in order to work but I am currently experiencing an unexpected behavior with a request that has google.api.HttpBody in the request field.
The google.api.HttpBody is correctly filled with data and content-type only in the following occasions:
- data is empty
- data is over 0x4000 bytes long
So we have the following weird behaviour of the gRPC-JSON transcoder with google.api.HttpBody request field:
- OK: 0 bytes
- EOF: 1 - 16384 bytes
- OK: 16385+ bytes
NOTE: I have tried to send the request directly to the Istio control plane, bypassing the Kubernetes ingress and Google Load Balancer to make sure they were not interfering with the request. The result was exactly the same as described.
When a request is sent with a payload that is less than 0x4000 bytes I receive the following error triggered by the upstream:
{
"code": 2,
"message": "EOF",
"details": []
}
I deployed tcpdump to my cluster and analyzed the traffic with Wireshark and I can confirm that the error is triggered by the upstream service and that the data is missing in the gRPC request transcoded from the original raw request.
Insomnia request trace
> POST <redacted> HTTP/2
> Host: <redacted>
> user-agent: insomnia/2021.3.0
> content-type: application/custom
> authorization: Basic <redacted>
> accept: */*
> content-length: 3
| asd
* We are completely uploaded and fine
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
* Connection state changed (MAX_CONCURRENT_STREAMS == 100)!
< HTTP/2 500
< content-type: application/json
< x-envoy-upstream-service-time: 2
< content-length: 50
< date: Sun, 23 May 2021 10:38:07 GMT
< server: istio-envoy
< via: 1.1 google
< alt-svc: clear
Wireshark packet dumps (envoy <-> downstream):
Frame 86: 2629 bytes on wire (21032 bits), 2629 bytes captured (21032 bits) on interface 0
Ethernet II, Src: ce:78:42:91:a7:46 (ce:78:42:91:a7:46), Dst: 62:63:85:be:d1:53 (62:63:85:be:d1:53)
Internet Protocol Version 4, Src: 10.64.16.89, Dst: 10.64.16.105
Transmission Control Protocol, Src Port: 36972, Dst Port: 9080, Seq: 1, Ack: 1, Len: 2563
HyperText Transfer Protocol 2
Stream: Magic
Magic: PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n
Stream: SETTINGS, Stream ID: 0, Length 30
Length: 30
Type: SETTINGS (4)
Flags: 0x00
0... .... .... .... .... .... .... .... = Reserved: 0x0
.000 0000 0000 0000 0000 0000 0000 0000 = Stream Identifier: 0
Settings - Enable PUSH : 0
Settings - Header table size : 4096
Settings - Unknown (8) : 0
Settings - Max concurrent streams : 1073741824
Settings - Initial Windows size : 268435456
Stream: WINDOW_UPDATE, Stream ID: 0, Length 4
Length: 4
Type: WINDOW_UPDATE (8)
Flags: 0x00
0... .... .... .... .... .... .... .... = Reserved: 0x0
.000 0000 0000 0000 0000 0000 0000 0000 = Stream Identifier: 0
0... .... .... .... .... .... .... .... = Reserved: 0x0
.000 1111 1111 1111 0000 0000 0000 0001 = Window Size Increment: 268369921
Stream: HEADERS, Stream ID: 1, Length 2466, POST <redacted>
Length: 2466
Type: HEADERS (1)
Flags: 0x04
0... .... .... .... .... .... .... .... = Reserved: 0x0
.000 0000 0000 0000 0000 0000 0000 0001 = Stream Identifier: 1
[Pad Length: 0]
Header Block Fragment: 8387418c9ed8d71d46a4a3acc85e42f7049c63b84745738c...
[Header Length: 3336]
[Header Count: 23]
Header: :method: POST
Header: :scheme: https
Header: :authority: <redacted>
Header: :path: <redacted>
Header: user-agent: insomnia/2021.3.0
Header: content-type: application/custom
Header: accept: */*
Header: content-length: 3
Header: x-cloud-trace-context: 4f015190e41c055ba52de6038ae1e9df/17782916748087909721
Header: x-client-data: CgSL6ZsV
Header: via: 1.1 google
Header: x-forwarded-for: <redacted>
Header: x-forwarded-proto: https
Header: x-envoy-external-address: 93.34.239.213
Header: x-request-id: bd1be7dd-8c50-9cdc-9521-b20b9ed03450
Header: x-envoy-decorator-operation: hub.apis.svc.cluster.local:9080/*
Header: x-envoy-peer-metadata: <redacted>
Header: x-envoy-peer-metadata-id: router~10.64.16.89~ingressgateway-external-68b84d8467-99zmt.istio-system~istio-system.svc.cluster.local
Header: authorization: Bearer <redacted>
Header: x-envoy-attempt-count: 1
Header: x-datadog-trace-id: 1470028535987168232
Header: x-datadog-parent-id: 1470028535987168232
Header: x-datadog-sampling-priority: 1
Stream: DATA, Stream ID: 1, Length 3
Length: 3
Type: DATA (0)
Flags: 0x01
0... .... .... .... .... .... .... .... = Reserved: 0x0
.000 0000 0000 0000 0000 0000 0000 0001 = Stream Identifier: 1
[Pad Length: 0]
Data: 617364
Frame 88: 121 bytes on wire (968 bits), 121 bytes captured (968 bits) on interface 0
Ethernet II, Src: 62:63:85:be:d1:53 (62:63:85:be:d1:53), Dst: ce:78:42:91:a7:46 (ce:78:42:91:a7:46)
Internet Protocol Version 4, Src: 10.64.16.105, Dst: 10.64.16.89
Transmission Control Protocol, Src Port: 9080, Dst Port: 36972, Seq: 1, Ack: 2564, Len: 55
HyperText Transfer Protocol 2
Stream: SETTINGS, Stream ID: 0, Length 24
Length: 24
Type: SETTINGS (4)
Flags: 0x00
0... .... .... .... .... .... .... .... = Reserved: 0x0
.000 0000 0000 0000 0000 0000 0000 0000 = Stream Identifier: 0
Settings - Header table size : 4096
Settings - Unknown (8) : 0
Settings - Max concurrent streams : 2147483647
Settings - Initial Windows size : 268435456
Stream: SETTINGS, Stream ID: 0, Length 0
Length: 0
Type: SETTINGS (4)
Flags: 0x01
0... .... .... .... .... .... .... .... = Reserved: 0x0
.000 0000 0000 0000 0000 0000 0000 0000 = Stream Identifier: 0
Stream: WINDOW_UPDATE, Stream ID: 0, Length 4
Length: 4
Type: WINDOW_UPDATE (8)
Flags: 0x00
0... .... .... .... .... .... .... .... = Reserved: 0x0
.000 0000 0000 0000 0000 0000 0000 0000 = Stream Identifier: 0
0... .... .... .... .... .... .... .... = Reserved: 0x0
.000 1111 1111 1111 0000 0000 0000 0001 = Window Size Increment: 268369921
Frame 90: 75 bytes on wire (600 bits), 75 bytes captured (600 bits) on interface 0
Ethernet II, Src: ce:78:42:91:a7:46 (ce:78:42:91:a7:46), Dst: 62:63:85:be:d1:53 (62:63:85:be:d1:53)
Internet Protocol Version 4, Src: 10.64.16.89, Dst: 10.64.16.105
Transmission Control Protocol, Src Port: 36972, Dst Port: 9080, Seq: 2564, Ack: 56, Len: 9
HyperText Transfer Protocol 2
Stream: SETTINGS, Stream ID: 0, Length 0
Length: 0
Type: SETTINGS (4)
Flags: 0x01
0... .... .... .... .... .... .... .... = Reserved: 0x0
.000 0000 0000 0000 0000 0000 0000 0000 = Stream Identifier: 0
Frame 92: 1408 bytes on wire (11264 bits), 1408 bytes captured (11264 bits) on interface 0
Ethernet II, Src: 62:63:85:be:d1:53 (62:63:85:be:d1:53), Dst: ce:78:42:91:a7:46 (ce:78:42:91:a7:46)
Internet Protocol Version 4, Src: 10.64.16.105, Dst: 10.64.16.89
Transmission Control Protocol, Src Port: 9080, Dst Port: 36972, Seq: 56, Ack: 2573, Len: 1342
HyperText Transfer Protocol 2
Stream: HEADERS, Stream ID: 1, Length 1274, 500 Internal Server Error
Length: 1274
Type: HEADERS (1)
Flags: 0x04
0... .... .... .... .... .... .... .... = Reserved: 0x0
.000 0000 0000 0000 0000 0000 0000 0001 = Stream Identifier: 1
[Pad Length: 0]
Header Block Fragment: 3fe11f8e5f8b1d75d0620d263d4c7441ea4095f2b16aee7f...
[Header Length: 1677]
[Header Count: 9]
Header table size update
Header: :status: 500 Internal Server Error
Header: content-type: application/json
Header: x-envoy-upstream-service-time: 1
Header: content-length: 50
Header: x-envoy-peer-metadata: <redacted>
Header: x-envoy-peer-metadata-id: sidecar~10.64.16.105~hub-0.apis~apis.svc.cluster.local
Header: date: Sun, 23 May 2021 11:14:40 GMT
Header: server: istio-envoy
Stream: DATA, Stream ID: 1, Length 50
Length: 50
Type: DATA (0)
Flags: 0x01
0... .... .... .... .... .... .... .... = Reserved: 0x0
.000 0000 0000 0000 0000 0000 0000 0001 = Stream Identifier: 1
[Pad Length: 0]
Data: 7b0a2022636f6465223a20322c0a20226d65737361676522...
JavaScript Object Notation: application/json
Object
Member Key: code
Number value: 2
Key: code
Member Key: message
String value: EOF
Key: message
Member Key: details
Array
Key: details
Wireshark packet dumps (envoy <-> upstream):
Frame 3161: 889 bytes on wire (7112 bits), 889 bytes captured (7112 bits) on interface 0
Ethernet II, Src: 00:00:00_00:00:00 (00:00:00:00:00:00), Dst: 00:00:00_00:00:00 (00:00:00:00:00:00)
Internet Protocol Version 4, Src: 127.0.0.6, Dst: 10.64.16.99
Transmission Control Protocol, Src Port: 55081, Dst Port: 9080, Seq: 274956, Ack: 373, Len: 823
HyperText Transfer Protocol 2
Stream: HEADERS, Stream ID: 3, Length 805, POST /myapp.myservice.v1alpha1.MyService/MyMethod
Length: 805
Type: HEADERS (1)
Flags: 0x04
0... .... .... .... .... .... .... .... = Reserved: 0x0
.000 0000 0000 0000 0000 0000 0000 0011 = Stream Identifier: 3
[Pad Length: 0]
Header Block Fragment: 8387cf049c60751a92a273d4bcf6c6bf708e8ae71857c464...
[Header Length: 1606]
[Header Count: 22]
Header: :method: POST
Header: :scheme: https
Header: :authority: <redacted>
Header: :path: /myapp.myservice.v1alpha1.MyService/MyMethod
Header: user-agent: insomnia/2021.3.0
Header: content-type: application/grpc
Header: accept: */*
Header: x-cloud-trace-context: 91c606318cb8e802fb4b3cd368ba5379/6422320425799053054
Header: x-client-data: CgSM6ZsV
Header: via: 1.1 google
Header: x-forwarded-for: <redacted>
Header: x-forwarded-proto: https
Header: x-envoy-external-address: <redacted>
Header: x-request-id: 4bb0901e-4829-9a1b-a2d3-7bbd716da18e
Header: authorization: Bearer <redacted>
Header: x-envoy-attempt-count: 1
Header: x-envoy-original-path: <redacted>
Header: x-envoy-original-method: POST
Header: te: trailers
Header: x-datadog-trace-id: 1801031032039246500
Header: x-datadog-parent-id: 6731941596774806256
Header: x-datadog-sampling-priority: 1
Stream: DATA, Stream ID: 3, Length 0
Length: 0
Type: DATA (0)
Flags: 0x01
.... ...1 = End Stream: True
.... 0... = Padded: False
0000 .00. = Unused: 0x00
0... .... .... .... .... .... .... .... = Reserved: 0x0
.000 0000 0000 0000 0000 0000 0000 0011 = Stream Identifier: 3
[Pad Length: 0]
Data: <MISSING>
Frame 3163: 96 bytes on wire (768 bits), 96 bytes captured (768 bits) on interface 0
Ethernet II, Src: 00:00:00_00:00:00 (00:00:00:00:00:00), Dst: 00:00:00_00:00:00 (00:00:00:00:00:00)
Internet Protocol Version 4, Src: 10.64.16.99, Dst: 127.0.0.6
Transmission Control Protocol, Src Port: 9080, Dst Port: 55081, Seq: 373, Ack: 275779, Len: 30
HyperText Transfer Protocol 2
Stream: WINDOW_UPDATE, Stream ID: 0, Length 4
Length: 4
Type: WINDOW_UPDATE (8)
Flags: 0x00
0000 0000 = Unused: 0x00
0... .... .... .... .... .... .... .... = Reserved: 0x0
.000 0000 0000 0000 0000 0000 0000 0000 = Stream Identifier: 0
0... .... .... .... .... .... .... .... = Reserved: 0x0
.000 0000 0000 0000 0010 1100 0110 1111 = Window Size Increment: 11375
Stream: PING, Stream ID: 0, Length 8
Length: 8
Type: PING (6)
Flags: 0x00
.... ...0 = ACK: False
0000 000. = Unused: 0x00
0... .... .... .... .... .... .... .... = Reserved: 0x0
.000 0000 0000 0000 0000 0000 0000 0000 = Stream Identifier: 0
Ping: 02041010090e0707
Frame 3165: 87 bytes on wire (696 bits), 87 bytes captured (696 bits) on interface 0
Ethernet II, Src: 00:00:00_00:00:00 (00:00:00:00:00:00), Dst: 00:00:00_00:00:00 (00:00:00:00:00:00)
Internet Protocol Version 4, Src: 10.64.16.99, Dst: 127.0.0.6
Transmission Control Protocol, Src Port: 9080, Dst Port: 55081, Seq: 403, Ack: 275779, Len: 21
HyperText Transfer Protocol 2
Stream: HEADERS, Stream ID: 3, Length 12, 200 OK
Length: 12
Type: HEADERS (1)
Flags: 0x05
.... ...1 = End Stream: True
.... .1.. = End Headers: True
.... 0... = Padded: False
..0. .... = Priority: False
00.0 ..0. = Unused: 0x00
0... .... .... .... .... .... .... .... = Reserved: 0x0
.000 0000 0000 0000 0000 0000 0000 0011 = Stream Identifier: 3
[Pad Length: 0]
Header Block Fragment: 88c07f0001327f0003454f46
[Header Length: 97]
[Header Count: 4]
Header: :status: 200 OK
Header: content-type: application/grpc
Header: grpc-status: 2
Header: grpc-message: EOF
Frame 3167: 83 bytes on wire (664 bits), 83 bytes captured (664 bits) on interface 0
Ethernet II, Src: 00:00:00_00:00:00 (00:00:00:00:00:00), Dst: 00:00:00_00:00:00 (00:00:00:00:00:00)
Internet Protocol Version 4, Src: 127.0.0.6, Dst: 10.64.16.99
Transmission Control Protocol, Src Port: 55081, Dst Port: 9080, Seq: 275779, Ack: 424, Len: 17
HyperText Transfer Protocol 2
Stream: PING, Stream ID: 0, Length 8
Length: 8
Type: PING (6)
Flags: 0x01
.... ...1 = ACK: True
0000 000. = Unused: 0x00
0... .... .... .... .... .... .... .... = Reserved: 0x0
.000 0000 0000 0000 0000 0000 0000 0000 = Stream Identifier: 0
Pong: 02041010090e0707
Notice
You can see that envoy is not sending any data to the upstream:
Stream: DATA, Stream ID: 3, Length 0
Length: 0
Type: DATA (0)
Flags: 0x01
.... ...1 = End Stream: True
.... 0... = Padded: False
0000 .00. = Unused: 0x00
0... .... .... .... .... .... .... .... = Reserved: 0x0
.000 0000 0000 0000 0000 0000 0000 0011 = Stream Identifier: 3
[Pad Length: 0]
Data: <MISSING>
even though it received 3 bytes of payload from the downstream:
Stream: DATA, Stream ID: 1, Length 3
Length: 3
Type: DATA (0)
Flags: 0x01
0... .... .... .... .... .... .... .... = Reserved: 0x0
.000 0000 0000 0000 0000 0000 0000 0001 = Stream Identifier: 1
[Pad Length: 0]
Data: 617364
Repro steps:
Include sample requests, environment, etc. All data and inputs required to reproduce the bug.
The proto file looks like the following:
syntax = "proto3";
import "google/api/annotations.proto";
import "google/api/client.proto";
import "google/api/httpbody.proto";
import "google/protobuf/empty.proto";
package myapp.myservice.v1alpha1;
service MyService {
rpc MyMethod(MyMethodRequest) returns (google.api.HttpBody) {
option (google.api.http) = {
post: "/v1alpha1/{name=*/*}"
body: "http.body"
};
}
}
message MyMethodRequest {
message Http {
google.api.HttpBody body = 1;
}
string name = 1;
Http http = 2;
}
Note: The Envoy_collect tool gathers a tarball with debug logs, config and the following admin endpoints: /stats, /clusters and /server_info. Please note if there are privacy concerns, sanitize the data prior to sharing the tarball/pasting.
Admin and Stats Output:
Include the admin output for the following endpoints: /stats, /clusters, /routes, /server_info. For more information, refer to the admin endpoint documentation.
Note: If there are privacy concerns, sanitize the data prior to sharing.
Config:
Include the config used to configure Envoy.
/usr/local/bin/envoy
concurrency: 2
configPath: ./etc/istio/proxy
controlPlaneAuthPolicy: MUTUAL_TLS
discoveryAddress: istiod.istio-system.svc:15012
drainDuration: 45s
gatewayTopology:
numTrustedProxies: 2
parentShutdownDuration: 60s
proxyAdminPort: 15000
proxyMetadata:
DD_ENV: development
DD_VERSION: 1.10.0
serviceCluster: hub.apis
statNameLength: 189
statusPort: 15020
terminationDrainDuration: 5s
tracing:
datadog:
address: 192.168.1.36:8126
sampling: 100
EnvoyFilter configuration for the transcoder:
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
name: grpc-transcoder
namespace: istio-system
spec:
workloadSelector:
labels:
envoyfilters.istio.io/grpc-transcoder: enabled
configPatches:
- applyTo: HTTP_FILTER
match:
context: SIDECAR_INBOUND
listener:
filterChain:
filter:
name: envoy.filters.network.http_connection_manager
subFilter:
name: envoy.filters.http.router
portNumber: 9080
patch:
operation: INSERT_BEFORE
value:
name: envoy.filters.http.grpc_json_transcoder
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder
services:
- myapp.myservice.v1alpha1.MyService
print_options:
add_whitespace: true
always_print_enums_as_ints: false
always_print_primitive_fields: true
preserve_proto_field_names: false
request_validation_options:
reject_unknown_method: false
reject_unknown_query_parameters: false
convert_grpc_status: true
proto_descriptor: /etc/envoy/proto.bin
Logs:
Include the access logs and the Envoy logs.
{
"path": "<redacted>",
"authority": "<redacted>",
"upstream_host": "<redacted>",
"requested_server_name": null,
"duration": 1,
"bytes_sent": 50,
"upstream_cluster": "inbound|9080||",
"x_forwarded_for": "<redacted>",
"upstream_transport_failure_reason": null,
"response_flags": "-",
"response_code_details": "via_upstream",
"bytes_received": 3,
"connection_termination_details": null,
"upstream_service_time": "0",
"protocol": "HTTP/2",
"request_id": "9195dbdd-53ad-912d-90a8-0c3a3c23acda",
"upstream_local_address": "127.0.0.6:36997",
"start_time": "2021-05-23T10:38:07.433Z",
"downstream_remote_address": "<redacted>",
"method": "POST",
"response_code": 500,
"downstream_local_address": "<redacted>",
"route_name": "default",
"user_agent": "insomnia/2021.3.0"
}
{"level":"debug","time":"2021-05-23T15:17:12.006398Z","scope":"envoy conn_handler","msg":"[C39] new connection"}
{"level":"debug","time":"2021-05-23T15:17:12.006920Z","scope":"envoy http2","msg":"[C39] updating connection-level initial window size to 268435456"}
{"level":"debug","time":"2021-05-23T15:17:12.007092Z","scope":"envoy http","msg":"[C39] new stream"}
{"level":"debug","time":"2021-05-23T15:17:12.007255Z","scope":"envoy http","msg":"[C39][S15240943017125303159] request headers complete (end_stream=false):\n':method', 'POST'\n':scheme', 'https'\n':authority', '<redacted>'\n':path', '/v1alpha1/mymethod'\n'user-agent', 'insomnia/2021.3.0'\n'content-type', 'application/custom'\n'accept', '*/*'\n'content-length', '3'\n'x-cloud-trace-context', '4a317e0fc840d2a43babe647d5bb00df/11289929872227975471'\n'via', '1.1 google'\n'x-forwarded-for', '<redacted>'\n'x-forwarded-proto', 'https'\n'x-envoy-external-address', '93.34.239.213'\n'x-request-id', '655bddcd-56a2-99f2-810b-fb1932fc0cc3'\n'x-envoy-decorator-operation', 'hub.apis.svc.cluster.local:9080/*'\n'x-envoy-peer-metadata', '<redacted>'\n'x-envoy-peer-metadata-id', 'router~10.64.16.117~ingressgateway-external-58f879b844-mmms8.istio-system~istio-system.svc.cluster.local'\n'x-envoy-attempt-count', '1'\n'x-datadog-trace-id', '5719053109614087554'\n'x-datadog-parent-id', '5719053109614087554'\n'x-datadog-sampling-priority', '1'\n"}
{"level":"debug","time":"2021-05-23T15:17:12.012333Z","scope":"envoy filter","msg":"AuthenticationFilter::decodeHeaders with config\npolicy {\n peers {\n mtls {\n mode: PERMISSIVE\n }\n }\n}\nskip_validate_trust_domain: true\n"}
{"level":"debug","time":"2021-05-23T15:17:12.012512Z","scope":"envoy filter","msg":"[C39] validateX509 mode PERMISSIVE: ssl=false, has_user=false"}
{"level":"debug","time":"2021-05-23T15:17:12.012572Z","scope":"envoy filter","msg":"Payload has not peer authentication data"}
{"level":"debug","time":"2021-05-23T15:17:12.012595Z","scope":"envoy filter","msg":"Set principal from peer: "}
{"level":"debug","time":"2021-05-23T15:17:12.012612Z","scope":"envoy filter","msg":"Origin authenticator succeeded"}
{"level":"debug","time":"2021-05-23T15:17:12.012650Z","scope":"envoy filter","msg":"Saved Dynamic Metadata:\n"}
{"level":"debug","time":"2021-05-23T15:17:12.012859Z","scope":"envoy router","msg":"[C39][S15240943017125303159] cluster 'inbound|9080||' match for URL '/myapp.myservice.v1alpha1.MyService/MyMethod'"}
{"level":"debug","time":"2021-05-23T15:17:12.012964Z","scope":"envoy upstream","msg":"transport socket match, socket default selected for host with address 10.64.16.120:9080"}
{"level":"debug","time":"2021-05-23T15:17:12.013113Z","scope":"envoy upstream","msg":"Created host 10.64.16.120:9080."}
{"level":"debug","time":"2021-05-23T15:17:12.013253Z","scope":"envoy upstream","msg":"addHost() adding 10.64.16.120:9080"}
{"level":"debug","time":"2021-05-23T15:17:12.013333Z","scope":"envoy upstream","msg":"membership update for TLS cluster inbound|9080|| added 1 removed 0"}
{"level":"debug","time":"2021-05-23T15:17:12.013350Z","scope":"envoy upstream","msg":"re-creating local LB for TLS cluster inbound|9080||"}
{"level":"debug","time":"2021-05-23T15:17:12.013359Z","scope":"envoy upstream","msg":"membership update for TLS cluster inbound|9080|| added 1 removed 0"}
{"level":"debug","time":"2021-05-23T15:17:12.013368Z","scope":"envoy router","msg":"[C39][S15240943017125303159] router decoding headers:\n':method', 'POST'\n':scheme', 'https'\n':authority', '<redacted>'\n':path', '/myapp.myservice.v1alpha1.MyService/MyMethod'\n'user-agent', 'insomnia/2021.3.0'\n'content-type', 'application/grpc'\n'accept', '*/*'\n'x-cloud-trace-context', '4a317e0fc840d2a43babe647d5bb00df/11289929872227975471'\n'via', '1.1 google'\n'x-forwarded-for', '<redacted>'\n'x-forwarded-proto', 'https'\n'x-envoy-external-address', '93.34.239.213'\n'x-request-id', '655bddcd-56a2-99f2-810b-fb1932fc0cc3'\n'x-envoy-attempt-count', '1'\n'x-envoy-original-path', '/v1alpha1/mymethod'\n'x-envoy-original-method', 'POST'\n'te', 'trailers'\n'x-datadog-trace-id', '5719053109614087554'\n'x-datadog-parent-id', '5075026046853892548'\n'x-datadog-sampling-priority', '1'\n"}
{"level":"debug","time":"2021-05-23T15:17:12.013481Z","scope":"envoy pool","msg":"queueing stream due to no available connections"}
{"level":"debug","time":"2021-05-23T15:17:12.013550Z","scope":"envoy pool","msg":"trying to create new connection"}
{"level":"debug","time":"2021-05-23T15:17:12.013375Z","scope":"envoy upstream","msg":"re-creating local LB for TLS cluster inbound|9080||"}
{"level":"debug","time":"2021-05-23T15:17:12.013608Z","scope":"envoy pool","msg":"creating a new connection"}
{"level":"debug","time":"2021-05-23T15:17:12.013875Z","scope":"envoy client","msg":"[C40] connecting"}
{"response_flags":"-","response_code_details":"via_upstream","upstream_local_address":"127.0.0.6:39835","authority":"<redacted>","start_time":"2021-05-23T15:17:12.007Z","user_agent":"insomnia/2021.3.0","upstream_cluster":"inbound|9080||","bytes_received":3,"connection_termination_details":null,"method":"POST","upstream_service_time":"3","upstream_host":"10.64.16.120:9080","protocol":"HTTP/2","upstream_transport_failure_reason":null,"response_code":500,"downstream_local_address":"10.64.16.120:9080","requested_server_name":null,"downstream_remote_address":"130.211.3.155:0","x_forwarded_for":"<redacted>","bytes_sent":50,"route_name":"default","path":"/v1alpha1/mymethod","request_id":"655bddcd-56a2-99f2-810b-fb1932fc0cc3","duration":12}
{"level":"debug","time":"2021-05-23T15:17:12.015254Z","scope":"envoy connection","msg":"[C40] connecting to 10.64.16.120:9080"}
{"level":"debug","time":"2021-05-23T15:17:12.015386Z","scope":"envoy connection","msg":"[C40] connection in progress"}
{"level":"debug","time":"2021-05-23T15:17:12.015593Z","scope":"envoy http2","msg":"[C40] updating connection-level initial window size to 268435456"}
{"level":"debug","time":"2021-05-23T15:17:12.015658Z","scope":"envoy http","msg":"[C39][S15240943017125303159] request end stream"}
{"level":"debug","time":"2021-05-23T15:17:12.015779Z","scope":"envoy upstream","msg":"membership update for TLS cluster inbound|9080|| added 1 removed 0"}
{"level":"debug","time":"2021-05-23T15:17:12.015909Z","scope":"envoy upstream","msg":"re-creating local LB for TLS cluster inbound|9080||"}
{"level":"debug","time":"2021-05-23T15:17:12.015943Z","scope":"envoy connection","msg":"[C40] connected"}
{"level":"debug","time":"2021-05-23T15:17:12.015948Z","scope":"envoy client","msg":"[C40] connected"}
{"level":"debug","time":"2021-05-23T15:17:12.015957Z","scope":"envoy pool","msg":"[C40] attaching to next stream"}
{"level":"debug","time":"2021-05-23T15:17:12.015964Z","scope":"envoy pool","msg":"[C40] creating stream"}
{"level":"debug","time":"2021-05-23T15:17:12.016092Z","scope":"envoy router","msg":"[C39][S15240943017125303159] pool ready"}
{"level":"debug","time":"2021-05-23T15:17:12.019098Z","scope":"envoy client","msg":"[C40] response complete"}
{"level":"debug","time":"2021-05-23T15:17:12.019136Z","scope":"envoy pool","msg":"[C40] destroying stream: 0 remaining"}
{"level":"debug","time":"2021-05-23T15:17:12.019155Z","scope":"envoy router","msg":"[C39][S15240943017125303159] upstream headers complete: end_stream=true"}
{"level":"debug","time":"2021-05-23T15:17:12.019405Z","scope":"envoy http","msg":"[C39][S15240943017125303159] encoding headers via codec (end_stream=false):\n':status', '500'\n'content-type', 'application/json'\n'x-envoy-upstream-service-time', '3'\n'content-length', '50'\n'x-envoy-peer-metadata', '<redacted>'\n'x-envoy-peer-metadata-id', 'sidecar~10.64.16.120~hub-0.apis~apis.svc.cluster.local'\n'date', 'Sun, 23 May 2021 15:17:11 GMT'\n'server', 'istio-envoy'\n"}
{"level":"debug","time":"2021-05-23T15:17:12.019479Z","scope":"envoy http2","msg":"[C39] stream closed: 0"}
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Reactions: 2
- Comments: 26 (15 by maintainers)
OK, I verified. The changes fixed the issue.
Hi @christian-roggia or @lizan may I confirm if any of you or your team are working on this and if so are expecting some progress? If not, I need to look for someone to fix this soon. Thanks