Win32: recycle failed AcceptEx connections#1276
Open
erhan1209 wants to merge 1 commit into
Open
Conversation
`ngx_event_acceptex()` had several error exits that logged and returned without closing the accepted connection or reposting a replacement AcceptEx request. On Win32, repeated failures in these paths could leak connection resources and reduce listener capacity over time. This change introduces a small recycle helper that: - closes the failed posted connection - reposts a replacement AcceptEx request The helper is now used for: - overlapped AcceptEx completion errors - `SO_UPDATE_ACCEPT_CONTEXT` failures - address text allocation failures - `ngx_sock_ntop()` failures This keeps the listener accepting new connections even when these edge-case failures occur.
|
✅ All required contributors have signed the F5 CLA for this PR. Thank you! |
Author
|
I have hereby read the F5 CLA and agree to its terms |
Author
|
recheck |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Proposed changes
ngx_event_acceptex()had several error exits that logged and returned without closing the accepted connection or reposting a replacementAcceptExrequest. On Win32, repeated failures in these paths could leak connection resources and reduce listener capacity over time.This change introduces a small recycle helper that closes the failed posted connection and reposts a replacement
AcceptExrequest.The helper is now used for:
AcceptExcompletion errorsSO_UPDATE_ACCEPT_CONTEXTfailuresngx_sock_ntop()failuresThis keeps the listener accepting new connections even when these edge-case failures occur.
Windows compile validation is expected from CI/buildbot. Runtime verification of the
AcceptExfailure path has not been performed locally.Checklist