Closed naftulikay closed 5 years ago
2 things:
1) Upgrade so you have https://github.com/envoyproxy/envoy/pull/6848.
2) Make sure --drain-time-s
is less than --parent-shutdown-time-s
@mattklein123 Is there a way for me to tell when #6848 landed? Looked through the release notes, having a hard time determining if v1.10 had it.
After deploying v1.11.0, I am unable to reproduce the TCP close issue :tada: so I am closing this issue.
Title: Connection Terminated During Envoy Reload
Description:
At my organization, we are preparing a large-scale Envoy deployment for serving all network traffic at the edge on ingress to our network. We are using static configuration files on disk and using the Python reloader script to execute hot reloads when our configuration on disk changes.
We have conducted load tests using an internal Python tool which simply uses the Python
requests
library and a keepalive session to executeGET
requests in a loop.While running this tool, when we execute an Envoy reload, many of our load-testing clients experience a TCP termination seemingly during a request/response flow. After much debugging, it appears that Envoy is not using layer 7
Connection: close
methods to tell clients to terminate their keepalive connections, rather it is simply terminating at layer 4 with a TCP close.Repro steps:
We are using Envoy 1.10.0 on Ubuntu 16.04 in AWS.
I have open-sourced our load-testing tool using the exact Python version,
requests
version, etc. to reliably reproduce the issue.Our systemd unit for running Envoy:
envoy.service
We are using the exact Python restarter tool that is currently in
master
.The script that we have the Python restarter tool run is this:
The stacktrace received from Python is:
Envoy collect does not work for me, as it complains about not being able to parse the YAML file as JSON apparently.
Config:
Logs: