envoyproxy / envoyproxy/envoy

Hot restarter kill sidecar immediately when current Envoy process is in INITIALIZING state

Open
#4,797 2 comments 0 reactions 0 assignees View on GitHub
bug help wanted
Dominant language
C++
Stars
28.9k
Forks
5.6k
Avg merge
1d 22h
Merged PRs (30d)
430

Description

**Bug Template**

*Title*: *Hot restarter kill sidecar immediately when current Envoy process is in INITIALIZING state*

*Description*:

When hot_restarter.py receives HUP while the current envoy process is still having `flags = INITIALIZING`, hot_restarter.py simply exit with ABORT error (this is a silent death with nothing printed to stderr). This would kill Envoy sidecar container immediately. It would be ideal to provide an option telling hot_restarter.py to keep current Envoy process under this situation.

flags checking: https://github.com/envoyproxy/envoy/blob/master/source/server/hot_restart_impl.cc#L102

*Repro steps*:

Configure Envoy to a unreachable xDS server.
Use hot_restarter.py to start Envoy within a container.
Then `docker kill --signal HUP`

*Config*:
>Static clusters + EDS.
```yaml
static_resources:
listeners:
- name: listener_testdb
address:
socket_address: { address: 0.0.0.0, port_value: 53306 }
filter_chains:
- filters:
- name: envoy.tcp_proxy
config:
stat_prefix: testdb_egress
cluster: test_db_cluster
clusters:
- name: test_db_cluster
connect_timeout: 1s
type: EDS
lb_policy: ROUND_ROBIN
eds_cluster_config:
eds_config:
api_config_source:
api_type: GRPC
grpc_services:
envoy_grpc:
cluster_name: control_tower
- name: control_tower
connect_timeout: 1s
type: STRICT_DNS
http2_protocol_options: {}
load_assignment:
cluster_name: control_tower
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: xds.sample.com
port_value: 10080
```
*Call Stack*:
I did not bother to build a debug binary. Instead, I used gdb to step through

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.