fix: handle cached connection closure in forward plugin #7427
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
1. Why is this pull request needed and what does it do?
This pull request fixes a logic issue in the forward plugin where an error returned from the proxy package (ErrCachedClosed) was being compared using == against a locally defined error (ErrCachedClosed) in the forward package. Since these were two separate error instances (despite having the same error string), the comparison would always fail.
The change ensures the forward plugin uses the same ErrCachedClosed error instance defined in the proxy package, allowing the == comparison to work as intended. This enables proper detection of closed cached connections and allows for retry behavior, improving connection resilience.
2. Which issues (if any) are related?
No existing GitHub issue is linked to this, but the change addresses subtle error-handling logic that could cause missed retries when upstream connections are closed.
3. Which documentation changes (if any) need to be made?
None. This is an internal logic fix and does not affect the plugin's interface, configuration, or documented behavior.
4. Does this introduce a backward incompatible change or deprecation?
No, the change is backward compatible and does not affect external behavior. It corrects internal error comparison logic without altering the rest.