Repository navigation
test(benchmarks): observe stalled sockets outside the IO worker - #74
Merged
Merged
Conversation
2 of 5 tasks
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.
The native Asio connection benchmark previously collected socket state only on its IO worker. A stalled worker and a socket with no consumable bytes could therefore look similar. Add a default-off Unix controller-thread observer that records non-consuming poll/FIONREAD/MSG_PEEK results, bounded socket histories, strand probes and validated Apple TCP information.
Pin descriptors with generation-checked leases and retire them before cancellation; cap storage at 16 sessions and eight samples per session. Include bracketed steady/wall-clock anchors and cancellation timestamps so later local sequence/ACK captures can be aligned without assuming clocks are interchangeable. Reject the option on Windows and keep library transport, workload deadlines and default benchmark behavior unchanged.
Validation at
fe83d005b5c318da34938e06a1384f9d4f84a3f9: six observer cases / 45 assertions, existing kernel-sample checks, native self-test, a controlled one-connection timeout/cleanup integration check, and clang-format 18 passed. English and Chinese benchmark instructions are included.Three bounded local 5,000-connection trials established every connection and ended with 1, 3 and 0 stalled peer pairs. The retained pre-cancellation observations showed no consumable receive-socket bytes; that narrows investigation but does not establish a transport defect, root cause, fix or deployment capacity. Raw logs and measurements remain local. Follow-up sequence/ACK investigation is tracked by #61; this diagnostic PR does not resolve that issue.