apache / apache/shenyu

[BUG] HttpClientProperties.responseTimeout is dead configuration (never applied)

Open
#6,582 1 comment 0 reactions 0 assignees View on GitHub
plugin: http-client priority: medium type: performance
Dominant language
Java
Stars
8.8k
Forks
3.1k
Avg merge
7d 1h
Merged PRs (30d)
85

Description

## Description
The `shenyu.httpclient.responseTimeout` property is parsed and has a getter, but is never passed to `HttpClient.responseTimeout(...)` or any mechanism in the factory. The actual per-request timeout comes from `AbstractHttpClientPlugin.execute()` reading `Constants.HTTP_TIME_OUT` from the exchange attribute (set by DividePlugin from `ruleHandle.getTimeout()`).

## Location
```
shenyu-plugin-httpclient/.../config/HttpClientProperties.java:62 (responseTimeout = 3000L), 165-168 (getter)
HttpClientFactory.java:110-143 (createInstance never calls getResponseTimeout())
```

## Impact
Operators setting `shenyu.httpclient.responseTimeout=10000` expecting a global response timeout get no effect — silent misconfiguration. A route misconfigured with `timeout=0` yields `Duration.ofMillis(0)` = zero timeout, failing every request immediately.

## Suggested fix
Apply `responseTimeout` as the HttpClient-level `responseTimeout()`, or deprecate/remove the dead field and document that timeouts are per-route.

## Related existing issue(s)
None

_Identified during the 2026-08-02 audit; full list in [`docs/issue-candidates-2026-08-02.md`](docs/issue-candidates-2026-08-02.md)._

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with HttpClientProperties.java:62,165-168 and HttpClientFactory.java:110-143, then trace AbstractHttpClientPlugin.execute() and DividePlugin's timeout attribute handling. Determine the intended precedence between the global property and per-route timeout, including timeout=0 behavior. Done means the configuration is effective or is removed/deprecated with the per-route behavior documented and covered by appropriate tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
api, backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
58/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.