fix(io): reject blocking epoll connects#999
Merged
Merged
Conversation
Owner
Author
|
Independent current-head review summary ( Two read-only reviewers examined this exact head against Verified points:
Review method: static inspection only; no local build or tests were run. GitHub Actions remains the executable validation gate. |
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.
Description
Require descriptors submitted to the epoll connect backend to already have
O_NONBLOCK. This prevents the backend worker from executing a potentially blockingconnect(2)while preserving caller ownership of the shared open-file-description flags.Type of Change
Related Issues
Closes #997
Related to #985
Changes Made
Core Changes
F_GETFLbefore invokingconnect(2)in the epoll backend.-EINVALfor a valid blocking descriptor.O_NONBLOCKbelongs to the shared open-file description.F_GETFLfailure.API Changes (if applicable)
No signature changes. The epoll connect backend now explicitly rejects descriptors that do not satisfy its existing asynchronous-use precondition.
Testing
Unit Tests
Test Results
Static review only; local builds and tests were intentionally not run. GitHub Actions is the executable validation source for this PR.
Checklist
Code Quality
Documentation
Testing
Compatibility
Additional Notes
Two independent static reviews passed against the exact rebased head before opening this PR. No local compilation or test execution was performed.
Reviewer Guidance
Areas requiring special attention:
O_NONBLOCKacross duplicated descriptors.