envoyproxy / envoyproxy/envoy

health check probes blocked indefinitely when EDS initialFetchTimeout is 0s

Open
#46,666 2 comments 0 reactions 0 assignees View on GitHub
area/eds area/health_checking bug stale
Dominant language
C++
Stars
28.9k
Forks
5.6k
Avg merge
1d 20h
Merged PRs (30d)
428

Description

*Title*: *health check probes blocked indefinitely when EDS initialFetchTimeout is 0s*

*Description*:
After I set EDS initialFetchTimeout as 0s, all envoy gateway conformance and e2e test cases failed in waiting for health check activity to appear.

*Repro steps*:
1. set initialFetchTimeout: 0s
2. rerun all envoy gateway e2e test cases

*Logs*:
> === RUN TestE2E/BackendHealthCheckActiveHTTP/active_http
> helpers.go:821: 2026-08-11T12:51:31.009924331Z: Conditions matched expectations
> helpers.go:821: 2026-08-11T12:51:31.009977872Z: Route gateway-conformance-infra/http-with-health-check-active-http-pass Parents matched expectations
> …
> backend_health_check.go:112: 2026-08-11T12:52:40.144747982Z: cluster fail health check: new failure count: 2 (total: 2)
> http.go:306: 2026-08-11T12:52:41.046201267Z: timeout while waiting after 60 attempts, 0/3 successes
>
> === RUN TestGatewayAPIConformance/BackendTLSPolicyConflictResolution/BackendTLSPolicies_targeting_the_same_Service_with_and_without_a_section_name/HTTP_request_sent_to_Service_using_the_BackendTLSPolicy_with_section_name_should_succeed
> backendtlspolicy-conflict-resolution.go:130: 2026-08-11T12:52:47.817510589Z: Making GET request to host abc.example.com via http://172.18.0.200/backendtlspolicy-not-conflicted-with-section-name
> http.go:325: 2026-08-11T12:52:47.828189571Z: Response expectation failed for request: {URL: {Scheme:http Opaque: User: Host:172.18.0.200 Path:/backendtlspolicy-not-conflicted-with-section-name Fragment: RawQuery: RawPath: RawFragment: ForceQuery:false OmitHost:false}, Host: abc.example.com, Protocol: HTTP, Method: GET, Headers: map[X-Echo-Set-Header:[]], UnfollowRedirect: false, ServerName: , ServerCertificate: , ClientCertificate: , ClientCertificateKey: } not ready yet: expected status code to be one of [200], got 400. CRes: &{400 -1 HTTP/1.1 map[Date:[Tue, 11 Aug 2026 12:52:47 GMT]] []} (after 1.732µs)
>

Contributor guide

Open the contributing guide

Research direction

Start with backend_health_check.go around line 112 and trace how EDS initialFetchTimeout=0s affects health-check activity. Reproduce the failure by setting initialFetchTimeout to 0s and rerunning the Envoy Gateway conformance and end-to-end tests. Done means health-check activity appears and the affected tests no longer time out or return unexpected 400 responses.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend, networking
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.