lymerin opened a new pull request, #7777: URL: https://github.com/apache/shenyu/pull/7777
Fixes #7752 ### Problem With `retryStrategy=failover` and `retryBackOffSpec=fixed`, the fixed strategy bypasses upstream selection and resubscribes to the original request. Connection failures therefore retry the same upstream, while the 5xx failover signal is rejected by the fixed strategy’s exception filter and receives no retry. ### Impact GET requests fail despite an available healthy standby because configuring fixed backoff disables the requested failover behavior. ### Changes Reuse the existing failover flow for fixed retries, waiting two seconds before selecting and sending to another upstream. Allow the existing 5xx failover signal alongside transient network failures, while retaining the GET restriction, retry budget, and timeout handling. Add regression coverage through the public plugin entry point for both reported failures, retry eligibility, and successive failover across distinct upstreams. ### Validation - HTTP client module: 66 tests passed, zero failures or errors. - Checkstyle and Apache RAT passed. ### Non-blocking note `FixedRetryStrategy` reuses a package-private failover helper in `DefaultRetryStrategy`. This introduces coupling between the two strategies, but keeps upstream selection in one place without composing two retry policies. A separate failover executor is not needed for this fix; the existing flow is reused to keep the change focused on #7752. ### Checklist Make sure that: - [x] You have read the [contribution guidelines](https://shenyu.apache.org/community/contributor-guide). - [x] You submit test cases (unit or integration tests) that back your changes. - [x] Your local test passed `./mvnw clean install -Dmaven.javadoc.skip=true`. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
