The client is creatinga H2 connection to make GRPC requests. I am seeing periodic spikes (maybe once or twice and hour during the day) in 503 UC in the envoy1 access logs. That same request can be seen in the envoy2 access logs with a HTTP response of 0. The request doesn’t make it to the service.
After doing some debugging, what I can see is that envoy2 closes the connection between itself and envoy1 because of the error “invalid frame: Protocol Error”
I’m not sure if this is something between two Envoys or because of a malformed request. But I assume (maybe incorrectly) that if it was the latter, envoy1 would be catching it and the request wouldn’t make it’s way to envoy2.
My question is has anyone run into this and if there is any tips on where to start looking or debugging.
I’ve attached both envoy configs and some trace logs. Using Envoy 1.5 on both proxies BUT envoy2 is using API v1 because we haven’t had time to move it to API v2 yet. If anyone thinks that could be the issue I could spend some time to move it to v2.
[2018-04-08 15:21:10.665][10][debug][http] source/common/http/conn_manager_impl.cc:181] [C138587] new stream
[2018-04-08 15:21:10.665][10][trace][http2] source/common/http/http2/codec_impl.cc:354] [C138587] recv frame type=1
[2018-04-08 15:21:10.665][10][debug][http] source/common/http/conn_manager_impl.cc:439] [C138587][S13071016848429935624] request headers complete (end_stream=false):
[2018-04-08 15:21:10.665][10][debug][http] source/common/http/conn_manager_impl.cc:444] [C138587][S13071016848429935624] ':scheme':'http'
[2018-04-08 15:21:10.665][10][debug][http] source/common/http/conn_manager_impl.cc:444] [C138587][S13071016848429935624] ':method':'POST'
[2018-04-08 15:21:10.665][10][debug][http] source/common/http/conn_manager_impl.cc:444] [C138587][S13071016848429935624] ':authority':'app:6555'
[2018-04-08 15:21:10.665][10][debug][http] source/common/http/conn_manager_impl.cc:444] [C138587][S13071016848429935624] ':path':'/app.App/Stream'
[2018-04-08 15:21:10.665][10][debug][http] source/common/http/conn_manager_impl.cc:444] [C138587][S13071016848429935624] 'user-agent':'grpc-java-okhttp/0.0'
[2018-04-08 15:21:10.665][10][debug][http] source/common/http/conn_manager_impl.cc:444] [C138587][S13071016848429935624] 'content-type':'application/grpc'
[2018-04-08 15:21:10.665][10][debug][http] source/common/http/conn_manager_impl.cc:444] [C138587][S13071016848429935624] 'te':'trailers'
[2018-04-08 15:21:10.665][10][debug][http] source/common/http/conn_manager_impl.cc:444] [C138587][S13071016848429935624] 'authorization':'xxxxxxxxxxxxxxxxxxx'
[2018-04-08 15:21:10.665][10][debug][http] source/common/http/conn_manager_impl.cc:444] [C138587][S13071016848429935624] 'language':'en'
[2018-04-08 15:21:10.665][10][debug][http] source/common/http/conn_manager_impl.cc:444] [C138587][S13071016848429935624] 'language':'en'
[2018-04-08 15:21:10.665][10][debug][http] source/common/http/conn_manager_impl.cc:444] [C138587][S13071016848429935624] 'language':'en'
[2018-04-08 15:21:10.665][10][debug][http] source/common/http/conn_manager_impl.cc:444] [C138587][S13071016848429935624] 'language':'en'
[2018-04-08 15:21:10.665][10][debug][http] source/common/http/conn_manager_impl.cc:444] [C138587][S13071016848429935624] 'language':'en'
[2018-04-08 15:21:10.665][10][debug][http] source/common/http/conn_manager_impl.cc:444] [C138587][S13071016848429935624] 'language':'en'
[2018-04-08 15:21:10.665][10][debug][http] source/common/http/conn_manager_impl.cc:444] [C138587][S13071016848429935624] 'language':'en'
[2018-04-08 15:21:10.665][10][debug][http] source/common/http/conn_manager_impl.cc:444] [C138587][S13071016848429935624] 'language':'en'
[2018-04-08 15:21:10.665][10][debug][http] source/common/http/conn_manager_impl.cc:444] [C138587][S13071016848429935624] 'language':'en'
[2018-04-08 15:21:10.665][10][debug][http] source/common/http/conn_manager_impl.cc:444] [C138587][S13071016848429935624] 'language':'en'
[2018-04-08 15:21:10.665][10][debug][http] source/common/http/conn_manager_impl.cc:444] [C138587][S13071016848429935624] 'grpc-accept-encoding':'gzip'
[2018-04-08 15:21:10.665][10][debug][http] source/common/http/conn_manager_impl.cc:444] [C138587][S13071016848429935624] 'x-forwarded-for':'1.1.1.1'
[2018-04-08 15:21:10.665][10][debug][http] source/common/http/conn_manager_impl.cc:444] [C138587][S13071016848429935624] 'x-forwarded-proto':'https'
[2018-04-08 15:21:10.665][10][debug][http] source/common/http/conn_manager_impl.cc:444] [C138587][S13071016848429935624] 'x-envoy-downstream-service-cluster':'envoy1'
[2018-04-08 15:21:10.665][10][debug][http] source/common/http/conn_manager_impl.cc:444] [C138587][S13071016848429935624] 'x-envoy-downstream-service-node':'envoy1'
[2018-04-08 15:21:10.665][10][debug][http] source/common/http/conn_manager_impl.cc:444] [C138587][S13071016848429935624] 'x-envoy-external-address':'0.0.0.0'
[2018-04-08 15:21:10.665][10][debug][http] source/common/http/conn_manager_impl.cc:444] [C138587][S13071016848429935624] 'x-request-id':'341f0c2d-6147-44cf-88ea-b02e04d7fc44'
[2018-04-08 15:21:10.665][10][trace][http] source/common/http/conn_manager_impl.cc:622] [C138587][S13071016848429935624] decode headers called: filter=0x33f06c0 status=0
[2018-04-08 15:21:10.665][10][trace][http] source/common/http/conn_manager_impl.cc:622] [C138587][S13071016848429935624] decode headers called: filter=0x35a27c0 status=1
[2018-04-08 15:21:10.665][10][trace][http2] source/common/http/http2/codec_impl.cc:354] [C138587] recv frame type=0
[2018-04-08 15:21:10.665][10][debug][http] source/common/http/conn_manager_impl.cc:652] [C138587][S13071016848429935624] request end stream
[2018-04-08 15:21:10.665][10][trace][http] source/common/http/conn_manager_impl.cc:679] [C138587][S13071016848429935624] decode data called: filter=0x33f06c0 status=0
[2018-04-08 15:21:10.665][10][trace][http] source/common/http/conn_manager_impl.cc:679] [C138587][S13071016848429935624] decode data called: filter=0x35a27c0 status=0
[2018-04-08 15:21:10.665][10][trace][http] source/common/http/conn_manager_impl.cc:1029] [C138587][S13071016848429935624] continuing filter chain: filter=0x35a27c0
[2018-04-08 15:21:10.665][10][debug][router] source/common/router/router.cc:239] [C138587][S13071016848429935624] cluster 'app' match for URL '/app.App/Stream'
[2018-04-08 15:21:10.665][10][debug][router] source/common/router/router.cc:284] [C138587][S13071016848429935624] ':scheme':'http'
[2018-04-08 15:21:10.665][10][debug][router] source/common/router/router.cc:284] [C138587][S13071016848429935624] ':method':'POST'
[2018-04-08 15:21:10.665][10][debug][router] source/common/router/router.cc:284] [C138587][S13071016848429935624] ':authority':'app'
[2018-04-08 15:21:10.665][10][debug][router] source/common/router/router.cc:284] [C138587][S13071016848429935624] ':path':'/app.App/Stream'
[2018-04-08 15:21:10.665][10][debug][router] source/common/router/router.cc:284] [C138587][S13071016848429935624] 'user-agent':'grpc-java-okhttp/0.0'
[2018-04-08 15:21:10.665][10][debug][router] source/common/router/router.cc:284] [C138587][S13071016848429935624] 'content-type':'application/grpc'
[2018-04-08 15:21:10.665][10][debug][router] source/common/router/router.cc:284] [C138587][S13071016848429935624] 'te':'trailers'
[2018-04-08 15:21:10.665][10][debug][router] source/common/router/router.cc:284] [C138587][S13071016848429935624] 'authorization':'xxxxxxxxxxxxxxxxxxx'
[2018-04-08 15:21:10.665][10][debug][router] source/common/router/router.cc:284] [C138587][S13071016848429935624] 'language':'en'
[2018-04-08 15:21:10.665][10][debug][router] source/common/router/router.cc:284] [C138587][S13071016848429935624] 'language':'en'
[2018-04-08 15:21:10.665][10][debug][router] source/common/router/router.cc:284] [C138587][S13071016848429935624] 'language':'en'
[2018-04-08 15:21:10.665][10][debug][router] source/common/router/router.cc:284] [C138587][S13071016848429935624] 'language':'en'
[2018-04-08 15:21:10.665][10][debug][router] source/common/router/router.cc:284] [C138587][S13071016848429935624] 'language':'en'
[2018-04-08 15:21:10.665][10][debug][router] source/common/router/router.cc:284] [C138587][S13071016848429935624] 'language':'en'
[2018-04-08 15:21:10.665][10][debug][router] source/common/router/router.cc:284] [C138587][S13071016848429935624] 'language':'en'
[2018-04-08 15:21:10.665][10][debug][router] source/common/router/router.cc:284] [C138587][S13071016848429935624] 'language':'en'
[2018-04-08 15:21:10.665][10][debug][router] source/common/router/router.cc:284] [C138587][S13071016848429935624] 'language':'en'
[2018-04-08 15:21:10.665][10][debug][router] source/common/router/router.cc:284] [C138587][S13071016848429935624] 'language':'en'
[2018-04-08 15:21:10.665][10][debug][router] source/common/router/router.cc:284] [C138587][S13071016848429935624] 'grpc-accept-encoding':'gzip'
[2018-04-08 15:21:10.665][10][debug][router] source/common/router/router.cc:284] [C138587][S13071016848429935624] 'x-forwarded-for':'1.1.1.1'
[2018-04-08 15:21:10.665][10][debug][router] source/common/router/router.cc:284] [C138587][S13071016848429935624] 'x-forwarded-proto':'https'
[2018-04-08 15:21:10.665][10][debug][router] source/common/router/router.cc:284] [C138587][S13071016848429935624] 'x-envoy-downstream-service-cluster':'envoy2'
[2018-04-08 15:21:10.665][10][debug][router] source/common/router/router.cc:284] [C138587][S13071016848429935624] 'x-envoy-downstream-service-node':'envoy2'
[2018-04-08 15:21:10.665][10][debug][router] source/common/router/router.cc:284] [C138587][S13071016848429935624] 'x-envoy-external-address':'0.0.0.0'
[2018-04-08 15:21:10.665][10][debug][router] source/common/router/router.cc:284] [C138587][S13071016848429935624] 'x-request-id':'341f0c2d-6147-44cf-88ea-b02e04d7fc44'
[2018-04-08 15:21:10.665][10][debug][router] source/common/router/router.cc:902] [C138587][S13071016848429935624] pool ready
[2018-04-08 15:21:10.665][10][trace][http] source/common/http/conn_manager_impl.cc:622] [C138587][S13071016848429935624] decode headers called: filter=0x39f3500 status=1
[2018-04-08 15:21:10.665][10][trace][router] source/common/router/router.cc:818] [C138587][S13071016848429935624] proxying 5 bytes
[2018-04-08 15:21:10.665][10][trace][http] source/common/http/conn_manager_impl.cc:679] [C138587][S13071016848429935624] decode data called: filter=0x39f3500 status=3
[2018-04-08 15:21:10.665][10][trace][http2] source/common/http/http2/codec_impl.cc:309] [C138587] dispatched 176 bytes
[2018-04-08 15:21:10.958][10][trace][connection] source/common/network/connection_impl.cc:363] [C138587] socket event: 3
[2018-04-08 15:21:10.958][10][trace][connection] source/common/network/connection_impl.cc:485] [C138587] write ready
[2018-04-08 15:21:10.958][10][trace][connection] source/common/network/connection_impl.cc:439] [C138587] read ready
[2018-04-08 15:21:10.958][10][trace][connection] source/common/network/connection_impl.cc:412] [C138587] read returns: 13
[2018-04-08 15:21:10.958][10][trace][connection] source/common/network/connection_impl.cc:412] [C138587] read returns: -1
[2018-04-08 15:21:10.958][10][trace][connection] source/common/network/connection_impl.cc:420] [C138587] read error: 11
[2018-04-08 15:21:10.958][10][trace][http2] source/common/http/http2/codec_impl.cc:294] [C138587] dispatching 13 bytes
[2018-04-08 15:21:10.958][10][debug][http2] source/common/http/http2/codec_impl.cc:494] [C138587] invalid frame: Protocol error
[2018-04-08 15:21:10.958][10][debug][http] source/common/http/conn_manager_impl.cc:225] [C138587] dispatch error: The user callback function failed
[2018-04-08 15:21:10.958][10][debug][router] source/common/router/router.cc:856] [C138587][S13071016848429935624] resetting pool request
[2018-04-08 15:21:10.958][10][debug][router] source/common/router/router.cc:856] [C138587][S6622079771232605952] resetting pool request
[2018-04-08 15:21:10.958][10][debug][router] source/common/router/router.cc:856] [C138587][S6633390131697699051] resetting pool request
[2018-04-08 15:21:10.958][10][debug][router] source/common/router/router.cc:856] [C138587][S15725616439296296044] resetting pool request
[2018-04-08 15:21:10.958][10][debug][router] source/common/router/router.cc:856] [C138587][S16824365358774997167] resetting pool request
[2018-04-08 15:21:10.958][10][debug][router] source/common/router/router.cc:856] [C138587][S6915390084269767185] resetting pool request
[2018-04-08 15:21:10.958][10][debug][router] source/common/router/router.cc:856] [C138587][S16308279489100182832] resetting pool request
[2018-04-08 15:21:10.958][10][debug][router] source/common/router/router.cc:856] [C138587][S8845831177606090622] resetting pool request