Skip to content

feat(libkernel): support deferred cancellation in POSIX accept - #12965

Draft
Felipebmaitan wants to merge 205 commits into
boykopovar:mainfrom
Felipebmaitan:feat/posix-connection-cancellation
Draft

Felipebmaitan wants to merge 205 commits into
boykopovar:mainfrom
Felipebmaitan:feat/posix-connection-cancellation

Conversation

@Felipebmaitan

@Felipebmaitan Felipebmaitan commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

What

Head 27a82bc612561bba47180b2820e58c9551df1abf. Implement cancellable accept above writes, retaining unpublished native sockets across deferred delivery and disposing them before cleanup/TSD on cancellation or context abandonment. Fault injection covers pre-reservation EMFILE and post-reservation/pre-map ENOMEM, with resource counts, peer EOF and descriptor reuse. The snapshot after controller connection completion measures disposal from handoff onward; it does not rule out earlier setup leaks. Accept remains draft.

Review follow-up to XairRrR: the partial-writable-buffer recvfrom probe now runs inside ReceiveNative's Transfer operation, so WSAEWOULDBLOCK uses the existing directional wait, cancellation/signal handling and one SO_RCVTIMEO deadline through both probe and receive. Oversized datagram EFAULT/discard versus MSG_PEEK retention is preserved. Windows blocking stream MSG_PEEK | MSG_WAITALL now throws NotImplemented_nid_no_patch instead of synthesizing EOPNOTSUPP; DONTWAIT and nonblocking combinations retain their existing behavior. Both debt files explicitly name the uncancellable Unix retained SSL poll wait. The same owning transport fix is propagated bottom-up through writes and accept; no published history, maintainer commit, branch base or archive-owner branch is replaced.

8-file incremental comparison uses actual ancestor fbd44d33266946006afd8ca4acc55e2bbe7d91e6. Main-based Files changed remains cumulative while open prerequisites await merge. Source-neutral ancestry commits retain the small incremental comparisons while preserving published history.

All four layers integrate upstream main 4f41f4c375f5abb487dbd184fbc150f31994d762 through ordinary merges and preserve their previously published heads and maintainer commits. The manual debt resolutions retain main's checked getcontext/setcontext copy behavior and updated cpuset limits, plus the stack's opaque context identity and read/write cancellation limits. mc_spare identity survives checked context copies; restoration still retires abandoned I/O before switching contexts. SCE contracts, all four Apple empty-iovec guards, synchronous-write completion and deterministic stream-close hooks/barriers/exact data assertions remain. The previous macOS duplicate test-registration repair is retained.

#10552/#10817/#10755 are merged upstream, honoring #10552-first. #13950's checked-context-copy fix, #14885 affinity behavior and #9242 tcgetsid are now in main and retained. #12149 remains open at 88f89fc; embedded prerequisite 03c2195 and its current pure-integration head have identical JumpBuffer.cpp/GuestUnderscoreJumps.cpp. The underscore context repair still avoids guest signal-mask saving/restoring. Writes/accept retain exact #9019 1e6b694 under the maintainer-approved #9019-first order: IoWrite and WithIoDescriptor live inside the shared PosixPwrite_nid_no_patch body, with SCE separate and fixed-size clamps/metadata/offsets preserved.

Ownership lookup uses 64 shards and matching-entry final erasure, avoiding its former global mutex/full-map sweep. Per-descriptor admission and other metadata/mode locks remain; immediate-path cost is unmeasured. Close interrupt/predicate retries back off 1–16 ms and receive completion notifications. A single interrupt still misses the previously demonstrated pre-native-call gap; non-interruptible host calls have no total drain-time bound. Registry retries sleep with backoff instead of yielding in a tight scan. No speed, CPU-use or title-performance claim or paired same-scene trace_digest evidence.

The active-owner Windows callback-drain guard prevents a concrete pop/reinsert cycle, but has not established the cause or resolution of the intermittent Windows 22621 guest_io_context_sigjump hang. Accept stays draft. PR bases and archive #11625 were not changed; no merge/replacement is requested.

Tested

Current-head CI follow-up at 27a82bc, merged by CI onto main 1e65852: the macOS x86-64 relinker job configures/builds successfully, then records 668 passed / 1 timeout out of 669 (354.88 s). guest_none_relocations reaches its unchanged explicit 20 s limit at 20.12 s. The root CMake, entire core/relinker, tools/nid and standalone register-context inputs have no diff from that CI main baseline; the fixture SHA-256 is 762cd52ca4c8528c220a95ec449f4d50c999487a0a056b385b1c8628e8360a66. No active conversion case or cause is established by the failed log. A fresh local macOS arm64/Rosetta x86-64 Release check of the unchanged relinker inputs passes the four relocation neighbors repeated three times under --parallel 4: 12/12 executions, 7.30 s total, guest_none_relocations 2.79/2.30/2.21 s. This is a focused local diagnostic, not a reproduction, CI clearance, full macOS suite or libkernel runtime qualification. No timeout increase, coverage removal or unrelated source workaround was made. Targeted same-head job retry returned HTTP 403: Must have admin rights to Repository; collaborator/admin retry and further timeout diagnosis remain external.

The current-head native Windows job passes on Server 2025/GNU 15.2: 2,789 passed / 981 skipped / 0 failed, 3,770 scheduled, 159.00 s. All 15 accept cases pass, including both installation-failure injections and cancel/jump disposal before cleanup/TSD, with the previously stated handoff-onward leak-measurement limit. guest_udp passes 1.73 s, guest_socket_transfer_progress 2.66 s and the corrected guest_socket_dontwait 5.87 s. The updated throw/counter assertion now has exact-head native execution; the parent Windows assertion failure is superseded by this result. guest_io_context_sigjump passes one 0.02 s sample; the intermittent Windows 22621 hang remains unresolved, and accept remains draft with a COMMENTED review, not approval. Exact-head conventions and the other completed relinker/register-context/write-watch/edge-watch checks pass; the macOS x86-64 timeout keeps the overall build failed. No new source commit or push accompanies this evidence update.

Overlap refresh 2026-11-03 19:43:14 UTC at 27a82bc: 20 compared / 90 uncomparable branches, source links at newly fetched main 086c068. Re-read all 20 compared live heads. The prior 19 pins are unchanged except #15135, and the new compared row #15567 f5dacc4 is manually read: checked pthread-name copies, failure before mutation, unchanged-name/error-order tests and explicit unmeasured Sony name-limit/precedence debt. Preserve those independent copies/tests/debt alongside cancellation and context behavior; it supplies no I/O helper dependency. #15135 is now b83067a: its delta from audited 9244392 changes PassedSocket from unconditional connectStarted=true to the received host socket's getpeername result for streams, plus matching debt and tests. A later composition must retain that received-socket distinction and accepted/socketpair connection state, SCM_RIGHTS ownership, cancellation admission and Native boundaries; this branch was not imported or jointly tested. Prior selected-source audit remains applicable to unchanged pins.

#7192 396137d remains open and unchanged, now uncomparable against main's handler changes; preserve both host fault/read recovery and deferred I/O callback/context retirement in later composition. New uncomparable #7645 63298da was read at the shared CMake helpers and registrations: runtime-DLL staging and NO_RUNTIME_DLL_STAGING opt-outs/isolated output directory must preserve existing I/O test registrations, runtime paths and deliberate no-staging tests. No import, helper dependency, order agreement or joint runtime result is inferred. The 90 uncomparable branches remain uncleared; archive #11625 is untouched. Depends on remains #12149, #12682, #12688, #9019, #12700.

The refreshed existing-main sendto name/NID notice is not an additional implementation to register: current main, this published accept head and their read-only merge each contain exactly one sendto_nid_postfix definition and one canonical declaration; the _sendto alias forwards to it. The stack routes the existing export through IoWrite/WithIoDescriptor and SendTo rather than adding a second export. Main's Udp.cpp has no change since the CI baseline 1e65852. A read-only merge-tree composition with current main 086c068 is clean (tree e545e95213ba43c44ce8fa33379ade4f8af86520), retaining main's adopted-stack bounds refresh and committed-read fault recovery alongside I/O retirement. This is textual composition evidence only, not a build/runtime pass of the newer main. No source push or base retarget accompanies this audit. Existing CI remains tied to its stated head/main pair; macOS x86-64 timeout and Windows 22621 hang remain unresolved, and accept stays draft.

Windows failure follow-up: job 126104433602 selected transport 8957ad0 merged onto main 1e65852. Server 2025/GNU 15.2 recorded 2,389 passed / 981 skipped / 1 failed out of 3,371 (153.89 s). guest_udp passes in 1.72 s including delayed partial-buffer cases; guest_socket_transfer_progress passes in 2.02 s including the new throw/counter and nonblocking controls. Thus those new production paths have now executed on Windows. guest_io_context_sigjump passes one 0.02 s sample, which does not qualify Windows 22621. The single failure is guest_socket_dontwait: its older Windows PEEK|WAITALL assertion still expected EOPNOTSUPP, so the required production throw escaped its worker and terminated the test.

This update changes only GuestSocketDontWait.cpp and the two debt files. The old expectation now calls the unsupported receive on the test thread, asserts the exact throw contract and NotImplemented counter, preserves the untouched-buffer and queued-byte/consumption checks, and retains existing DONTWAIT/nonblocking coverage. Production/runtime library source is unchanged. The prepared debt-list formatting and canonical SSL pointer correction are included. macOS x86-64 syntax checking of the complete fixture passes with existing linkage warnings; an isolated harness using the extracted published Windows Transfer arm plus the updated assertion passes, and reverting that arm to a returned error makes the assertion fail. That harness uses stubbed surroundings, not native sockets or the full library. At publication the updated full fixture still needed fresh native CI; the exact-head Windows result above now supplies that execution. The failed parent-head job itself is not an all-green result or exact-head qualification.

The unrelated unpublished signal-registry/cancellation-request and SyncWrites-exception runtime changes are excluded from this publication and retained on their local branch/refs. Their blocked composed verification remains outstanding. All three publication candidates pass required conventions against isolated origin/main pinned to actual fetched main (only the inherited SSL debt warning), whitespace and read-only main merge checks. Fresh overlap scanning examines 1766 open PRs and fails closed for uncomparable branches; no full overlap or combined-owner-branch clearance is claimed. No performance claim. Existing published history/maintainer commits and prerequisite order remain; accept stays draft and Windows 22621 sigjump remains unresolved. The exact-head checks/review state is updated above; earlier pending statements below describe publication time.

Progress-report audit (1e65852 → 27a82bc): the same seven conditional-helper classifications documented in transport and writes reproduce at exact accept head 27a82bc. In a temporary scanner-only control, replacing only Transfer’s Windows blocking-stream PEEK|WAITALL NotImplemented marker with a generic throw restores exactly the seven done labels. Helper-name propagation does not evaluate platform/flag/send guards; send/sendto/sendfile cannot take the receive branch, and accept passes no such flags. Receive exports retain that explicitly unsupported input alongside normal behavior; none of the seven became an unconditional stub body. The +1 libkernel_sys pwrite entry is inherited from the declared writes/#9019 prerequisite, not an accept-layer reimplementation. The required marker and scanner remain unchanged. This is source-classification evidence, not runtime validation, and it does not qualify the unpublished candidates or resolve Windows 22621 sigjump. The refreshed report retains the same entries/counts; the temporary scanner-only control was repeated at exact current head 27a82bc and restored the same seven labels.

Review-fix verification (new transport 8957ad0b52a6400270f0129e09d2deb7f1a5503e, writes 022410beb3bbf13d1b984a95d25689f2cde6b90b, accept 858e85036f30fad7f0d1006f4f1cd4c925536b16): Ubuntu 24.04.5 x86-64/GCC 13.3 Release through Apple Silicon translation. Rebuilt the relevant production libraries and executables. Transport-only source passes 9/9 focused transport/SSL/native-mode/timeout/UDP/socket-I/O CTests (4.14 s) plus 11/11 libSceNet DONTWAIT/blocking CTests (5.67 s). The final composed accept runtime/test sources pass 660/660 focused CTests (67.96 s), selected by the same 17 executables listed in the historical composed run below. This covers the new delayed partial-buffer UDP assertions, context/read/write/accept cancellation, descriptor ownership, stream close, vectors and AIO. Runtime/test source hashes match the final accept commit; the later debt-link correction changes no runtime source. The lower transport run used 085458a, whose runtime/test sources are identical to final transport. This is not three separate fresh 660-test runs at all layer heads.

GuestUdp now checks delayed fitting/oversized datagrams with blocking and receive-timeout modes, MSG_PEEK retention versus normal discard, idle EAGAIN timeout, and immediate DONTWAIT/nonblocking behavior against a partly inaccessible destination. GuestSocketTransferProgress adds Windows blocking recv/recvfrom PEEK|WAITALL throw checks, NotImplemented counter evidence and nonblocking controls. MinGW GCC 13-posix cross-target syntax-only checks pass for Udp.cpp and both changed fixtures with UCRT declarations (-D_UCRT -D__MSVCRT_VERSION__=0x1400); the first default-MSVCRT attempt stopped on unrelated FileStream CRT declarations and was rerun with those target declarations. These are compile-only checks, not Windows execution or a full Windows link. The new Windows-specific regression cases have not been run natively in this session; fresh exact-head Windows CI/admin validation remains required. Prior-head green CI and macOS failures below are historical, not qualification or failures of these new heads.

All three final candidates pass python3 tools/check_conventions.py --base origin/main --head <head> in an isolated Git context pinned to actual upstream main 1e658521a0a599872612bb91949311e2956b5283: zero errors, only the inherited 7,821-character libSceSsl debt warning. Whitespace checks pass and read-only merge-tree composition with that main is clean. Fresh overlap scans examine 1,746 open PRs at transport and final composed accept; the final scan fails closed with 89 uncomparable branches. No whole-stack overlap or jointly-tested owner-branch clearance is claimed. No speed claim or paired same-machine/scene trace_digest evidence. The reviewer's Linux results and negative control are independent reports in the linked review, not runs reproduced here. Windows 22621 intermittent sigjump remains unresolved; accept stays draft.

Previous-head Windows CI selected 1574087191a4ec15cad31be7df32a521c0561280 and merged it onto main 4f41f4c375f5abb487dbd184fbc150f31994d762: 2,788 passed / 976 skipped / 0 failures, 3,764 scheduled, 162.33 s, Server 2025 (26100)/GNU 15.2 Release. All 15 accept cases pass, including install_reserve_failure, install_map_failure, handoff_cancel, handoff_jump, handoff_pending and handoff_reuse. Deferred-drain passes and one guest_io_context_sigjump sample passes in 0.02 s. This qualifies those cases on Server 2025, not the intermittent Windows 22621 hang; the handoff resource-count controls retain their earlier setup-leak limitations.

Previous-head macOS x86-64 relinker CI selected the same head and main baseline. Configure/build succeeded; CTest recorded 668 passed / 1 timeout out of 669, 367.98 s total. guest_none_relocations reached its explicit 20 s limit at 20.09 s. The root CMake/relinker/tools/nid/register-context inputs inspected have no diff from that CI main baseline. The log gives no active conversion case or established cause. The unchanged-fixture local investigation and passing transport CI control concern the same test source, but are not a fresh local accept-head suite or proof of a timeout cause. Targeted POST to /actions/jobs/126038984163/rerun returned HTTP 403, Must have admin rights to Repository. A collaborator/admin retry is required; no timeout increase, unrelated source workaround or branch push was made.

Current composed accept code at 1574087191a4ec15cad31be7df32a521c0561280: Ubuntu 24.04.5 x86-64/GCC 13.3 Release through Apple Silicon translation. Production libraries and 17 focused executables explicitly rebuild after integration. 660/660 CTests pass (68.29 s), selected by executable: guest_kernel_sys_pwrite_tests, guest_io_write_cancel_tests, guest_io_write_sync_cancel_tests, guest_io_shared_write_cancel_tests, guest_io_context_tests, guest_accept_cancel_tests, guest_io_read_cancel_tests, guest_io_descriptor_access_tests, guest_pthread_cancel_tests, guest_user_context_tests, guest_stream_close_tests, guest_udp_tests, guest_raise_exception_tests, guest_file_vector_tests, guest_file_vector_memory_tests, guest_kernel_sys_aio_tests and guest_aio_tests. This covers checked context copies/nonlocal restoration, read/write/accept cancellation, descriptor ownership, stream close, UDP, vector writes and AIO.

Six additional composition CTests pass 6/6 (1.72 s), selected by guest_sce_net_tests, guest_socket_read_write_tests, guest_shm_open_tests, guest_dup_tests, guest_kernel_fcntl_tests and guest_append_writes_tests after rebuilding. These exercise main's socket forwarding alongside the stack, shared-memory and duplicate/status/append behavior. Production/context/stream-close/accept fixture hashes match the final committed code; the final debt shortening and comparison-ancestry commits change no runtime code. These are composed-stack results, not separate fresh local executions at every lower head.

Public-header audit: 406 libraries / 28,304 exports, unique declarations and umbrella coverage; no full compiler-batch run claimed. All four final heads pass python3 tools/check_conventions.py --base origin/main --head , using an isolated Git context with origin/main pinned to actual upstream 4f41f4c375f5abb487dbd184fbc150f31994d762. Reads has no findings; upper layers retain only the inherited SSL debt-length warning, zero errors. Whitespace checks against current upstream main pass. Fresh overlap scanning covers 1,724 open PRs and fails closed for uncomparable branches; selected source triage is not full overlap or combined-runtime clearance.

The reported workflow-approval failure at the previous reads head b0b8c21 was not reproducible in GitHub: 29 successful / 3 cancelled / 1 skipped check runs, 19 completed success/cancelled suites, 19 upstream workflow runs with no approval-required/failing/pending run, no fork run, no legacy status context, and GraphQL rollup SUCCESS. The actual live blocker was DIRTY main integration on all four PRs; this refresh resolves the conflict while retaining both sides. No unspecified run was approved. Full builds still require collaborator/admin dispatch when not provided by CI; the previous explicit dispatch attempt returned HTTP 403/admin rights. Previous-head Windows evidence and the unresolved macOS x86-64 failure are recorded above. Other successful checks do not supply full macOS libkernel runtime qualification; earlier green checks remain tied to their old heads.

Selected overlap updates: #9938 at db41fa3 already declares reads-first; caller-stack/exit-jump integration must retain I/O retirement before cleanup/TSD and native stack restoration, with no combined run claimed. #13390 at 3992904 adds independent host-log preservation around freopen; keep its declarations/calls with FILE-before-descriptor locking and both stream-close controls. #13730 at 9056177 remains separately owned; shared-provider extraction is retained via #9019, but no combined #13730 runtime pass is claimed. #13953 at 99b413e adds semaphore failure/post-success tests; #15219 at bf4f7b7 merges main into the setter follow-up. Their debt/registration additions supply no helper used by this stack. Other prior compared pins are unchanged; broader branches remain unqualified.

Overlap report updated 2026-11-03 17:19:01 UTC: all 14 compared PR heads are unchanged. Its main source links changed to 1e65852. The uncomparable table adds #8497 at 096bf08 (pending-signal sender codes consumed together with the signal under pending.lock) and #10749 at dae55d9 (siginterrupt provider moved to libSceLibcInternal, direct _sigaction/_sigintr access, declaration/test-link updates). Manual patch review finds no I/O helper required by this stack in either. Later composition must preserve pending-signal lock/wait and checked-copy ordering, the stack's context/cancellation behavior, RegisteredForJumps when removing only RegisterSignalsOnLoad, and both branches' existing signal test registrations. Neither branch was imported or jointly run; no merge-order agreement or whole-branch overlap clearance is inferred. The report still lists 89 uncomparable branches. #14085 is no longer listed; its earlier source audit remains historical, not evidence that it merged. Declared dependencies stay #12149, #12682, #12688, #9019, #12700.

Historical sys-provider misplaced-wrapper and accept leak/late-disposal negative controls remain documented in the write follow-up and accept follow-up. The previous accept native Server 2025 job at selected db09379 merged onto a4eca2a passed 2,651 tests / 957 skipped; its 15 accept cases and one sigjump sample pass. Those results do not qualify this refresh or Windows 22621, exclude earlier setup leaks or identify the four handles in the older failed fixture. Historical runtime totals and contributor AMD reports remain tied to their original head/base/machine, not fresh qualification here.

The Windows 22621 intermittent hang remains unresolved. Windows 22621 diagnosis/validation, the failed macOS x86-64 check, maintainer title-scene bench and admin-only ordered full-build validation remain outstanding. Review remains COMMENTED, not approval. No fresh title/console, GPU, full macOS libkernel runtime or paired same-scene trace_digest qualification is claimed. Unblocks: none is intentional; no title cancellation unblock is claimed.

Checklist

yabanana and others added 30 commits October 21, 2026 11:52
Keep native signals arriving beyond the receive timeout and bound the retained-owner wait. The same fixture rejects a source variant that incorrectly restarts its deadline after EINTR.

AI-assisted: Codex
Read O_NONBLOCK from the native socket for every retained transfer so descriptor aliases and passed sockets do not turn nonblocking I/O into a blocking wait. Keep guest timeout accounting and native query errors intact.

AI-assisted: Codex
Exercise real native descriptor aliases switching both blocking directions and a saturated nonblocking send after the guest descriptor closes, independently of SCM_RIGHTS.

AI-assisted: Codex
@Felipebmaitan

Copy link
Copy Markdown
Contributor Author

Overlap refresh at accept 1574087191a4ec15cad31be7df32a521c0561280: the updated report adds #14085 to the uncomparable table, now 88 branches. Its current source is cd5467cfe3fee99f3ac0034b959339c7d199bbf9.

I read the shared debt edits: libSceSsl narrows the system-roots caller wording to libSceHttp2, matching this stack's source; libc consolidates the 128-bit division entries; libkernel corrects the __progname entry; libkernel_sys relocates the same unknown/inventory entries under one heading. The only executable-source edit in that PR removes an existing comment next to __progname. It supplies no runtime helper used by this stack. A later composition should preserve these corrections alongside the I/O/context/cancellation limitations and #9019's unverified maximum-offset debt; no implementation dependency or new merge-order agreement is inferred.

All 14 compared PR heads still match the previous source audit. No code change, branch push or repeated runtime tests are indicated by this documentation addition; broader uncomparable branches remain unqualified. Archive #11625 is untouched.

Accept remains draft and its Windows 22621 sigjump hang remains unresolved. Separately, prerequisite writes #12700 has a current-head macOS x86-64 guest_none_relocations timeout; its unchanged fixture passes locally, and the targeted retry was denied HTTP 403/admin rights. Failure, evidence and retry requirement. This overlap audit does not resolve that CI failure or establish a fully green stack.

AI-assisted: yes.

@Felipebmaitan

Copy link
Copy Markdown
Contributor Author

Audited the updated overlap report at current accept head 1574087 (still draft). All 14 compared PR heads are unchanged; source links now use main 1e65852. The uncomparable table adds #8497 at 096bf08 and #10749 at dae55d9:

Neither patch supplies an I/O helper required by this stack. No import, dependency addition, merge-order agreement or combined-runtime pass is inferred. Depends on remains #12149, #12682, #12688, #9019, #12700. The report still has 89 uncomparable branches; this manual patch review is not full overlap clearance. #14085 disappeared from the report; the previous audit is historical, not a claim that it merged.

Fresh exact-head evidence: Windows Server 2025/GNU 15.2 CI selected the head above and merged onto main 4f41f4c: 2,788 passed / 976 skipped / 0 failures, 162.33 s. All 15 accept cases pass, including both install-failure injections and handoff cancel/jump/pending/reuse. Deferred drain and a single sigjump sample (0.02 s) pass. The intermittent Windows 22621 hang remains unresolved, and resource counts still measure handoff onward, not earlier setup leaks.

The macOS x86-64 relinker job built successfully but recorded 668 passed / 1 timeout out of 669: guest_none_relocations at 20.09 s against its explicit 20 s limit. Relevant relinker inputs inspected are unchanged from the selected main baseline. The active conversion and cause are not established; the earlier same-fixture local diagnosis did not reproduce the writes timeout and does not resolve this failure. Targeted retry of job 126038984163 was denied HTTP 403: Must have admin rights to Repository; a collaborator/admin retry is needed. No timeout bump, unrelated source workaround or push. The complete PR template now records this evidence. Review remains COMMENTED, not approval; no speed claim or paired same-machine/scene trace is provided.

@Felipebmaitan

Copy link
Copy Markdown
Contributor Author

Propagated the transport review fixes into 858e850, preserving the previous published head as an ancestor. Partial-buffer recvfrom probes now share the receive retry/deadline; Windows blocking stream MSG_PEEK|MSG_WAITALL throws rather than synthesizing EOPNOTSUPP. Unix retained SSL cancellation/close wait limits are explicitly documented, not resolved. Existing write/accept hooks, progress and disposal behavior remain.

Final composed runtime/test sources pass 660/660 focused Linux CTests (67.96 s), following transport 9/9 and libSceNet 11/11 passes. Windows cross-target syntax checks pass; no new native Windows execution is claimed. Conventions pass with only the inherited SSL debt-length warning; whitespace and read-only composition with main 1e65852 pass. Fresh overlap scanning still fails closed for uncomparable branches. Latest remote heads were fetched before atomic fast-forward-only publication, and the full template records exact heads/evidence/limits. Previous-head CI passes/failures do not qualify these heads.

Fresh native Windows/ordered validation is pending: dispatch for 9019 12149 12682 12688 12700 12965 was denied HTTP 403/admin rights. The independent Windows 22621 intermittent sigjump hang remains unresolved; accept stays draft. No performance claim, replacement PR or merge. Incremental comparison and prerequisite order are retained.

@Felipebmaitan

Copy link
Copy Markdown
Contributor Author

Audited the progress report at accept 858e850, against main 1e65852.

The same helper-name classification effect as transport and writes reproduces on this exact head. A temporary scanner-only control changing only Transfer’s NotImplemented marker to a generic throw restores precisely accept/recv/recvfrom/recvmsg/send/sendfile/sendto to done labels. The scanner does not evaluate the Windows + blocking-stream + receive + PEEK|WAITALL guard. Send paths cannot take it; accept passes no peek/waitall flags. The receive exports retain that documented unsupported combination alongside their normal implementations. No unconditional seven-function stub replacement occurred.

The required unsupported-path marker and scanner are unchanged. The +1 libkernel_sys pwrite comes from the declared writes/#9019 prerequisite; accept does not reimplement it. This control is classification evidence, not runtime qualification or proof of unsupported-mode support.

Updated the full template. No source fix or push is warranted by this report. Current-head checks have 18 successful / 2 running / 1 skipped / 1 cancelled and no failure, so are not complete. The PR remains draft, local review-fix candidates remain unpublished pending runtime verification, and the Windows 22621 sigjump hang remains unresolved.

@Felipebmaitan

Copy link
Copy Markdown
Contributor Author

Propagated the transport Windows-test expectation repair into 27a82bc. The parent transport Windows run recorded 2,389 passed / 981 skipped / 1 failed: new delayed partial-buffer guest_udp and guest_socket_transfer_progress fixtures passed, while the older guest_socket_dontwait still expected EOPNOTSUPP instead of the required unsupported throw.

This update changes only that assertion and the two debt files. It retains throw/counter, untouched-buffer, queued-byte and nonblocking checks; production/runtime libraries are unchanged. Syntax and isolated contract/control checks pass, as do required conventions (inherited SSL warning only), whitespace and read-only main composition. Overlap scanning remains fail-closed. Latest heads were fetched before atomic fast-forward-only publication; full templates retain exact heads and incremental comparisons.

Fresh native CI of this corrected fixture remains pending; parent-head evidence is not an all-green or new-head result. The broader unverified local signal/cancellation and SyncWrites-exception changes were excluded from this push and remain unpublished. Accept remains draft; Windows 22621 sigjump remains unresolved. No merge or performance claim.

@Felipebmaitan

Copy link
Copy Markdown
Contributor Author

Audited the 2026-11-03 18:45:03 UTC overlap refresh at 27a82bc: 20 compared / 88 uncomparable branches. All 20 compared heads match the existing selected-source audits.

The newly listed #13468 ed4c0e1, #13582 6d05fb4, #13587 b9727f2, #15508 c87d4dc and #15524 887c319 have the same selected patches already read for transport. The affected Thread.cpp, SignalSets.cpp, ModuleInfo.cpp, AddressConversion.cpp and SSL Export.cpp files are identical between published transport and accept. Preserve their independent checked-copy ordering/test/debt coverage alongside I/O cancellation and context behavior when later composed. Neither new helper dependency nor import is warranted; no joint runtime pass or order agreement is implied.

#14085 returned with its unchanged already-audited head. #10749 remains open; its removed uncomparable row is not an upstream merge. Depends on remains #12149, #12682, #12688, #9019, #12700. This review does not clear 88 uncomparable branches.

Updated the full template. No source change or push warranted by this report. The branch remains draft and mergeable, checks are queued, and fresh Windows validation of the corrected fixture is pending. Windows 22621 sigjump remains unresolved.

@Felipebmaitan

Copy link
Copy Markdown
Contributor Author

Rechecked the refreshed progress report at 27a82bc. Its entries/counts match the previous audit. Repeated the temporary scanner-only control at this exact head: replacing only Transfer’s required unsupported Windows receive marker with a generic throw restores precisely the same seven done labels.

This remains conservative helper-name classification without platform/flag guard evaluation, not unconditional replacement of seven exports with stubs. The +1 libkernel_sys pwrite is inherited from the declared writes/#9019 prerequisite. The production marker and scanner rules are unchanged; no runtime qualification is implied by the control.

Refreshed the existing full-template audit paragraph. No source change or push warranted. Current checks have no failures but are incomplete; accept remains draft and Windows 22621 sigjump remains unresolved.

@Felipebmaitan

Copy link
Copy Markdown
Contributor Author

Investigated the current-head macOS x86-64 failure at 27a82bc, composed onto main 1e65852.

Configure/build succeeds; 668 pass / one guest_none_relocations timeout, 669 scheduled, 354.88 s. That fixture reaches its explicit 20 s limit at 20.12 s, the same test as the older reported macOS failures. Inspected root CMake/core/relinker/tools/nid/register-context inputs match that main baseline. A fresh local macOS/Rosetta x86-64 Release diagnostic repeats four relocation neighbors three times with parallelism four: 12/12 executions pass, 7.30 s total; the timed-out fixture takes 2.79/2.30/2.21 s here. This does not explain the CI timeout or clear its failed check. The log names no active conversion case. No arbitrary timeout bump, removed coverage or source workaround.

Requested the exact failed job again; GitHub rejected /actions/jobs/126136729127/rerun with HTTP 403, “Must have admin rights to Repository.” A collaborator/admin retry and further runner-side diagnosis remain required.

There is also fresh native Windows evidence at this exact head: Server 2025/GNU 15.2, 2,789 passed / 981 skipped / zero failed, 3,770 scheduled, 159.00 s. All 15 accept cases pass, including both descriptor-install failure injections and cancellation/jump handoff disposal before cleanup/TSD. The handoff-onward resource snapshot still cannot exclude earlier setup leaks. The corrected guest_socket_dontwait passes (5.87 s), alongside guest_udp (1.73 s) and guest_socket_transfer_progress (2.66 s). This now executes the repaired unsupported-throw assertion natively; the older failed assertion report is superseded.

@JJenkx One guest_io_context_sigjump sample passes in 0.02 s on this Server 2025 runner. That does not resolve or qualify the intermittent Windows 22621 hang. Accept remains draft; review remains COMMENTED, not approval. Full PR template refreshed with exact heads, checks and limits. No new source push; unpublished runtime candidates remain excluded pending their own verification.

@Felipebmaitan

Copy link
Copy Markdown
Contributor Author

Audited the overlap refresh updated 2026-11-03 19:43:14 UTC, at unchanged accept 27a82bc: 20 compared / 90 uncomparable branches.

Re-read all 20 compared live heads. The previously compared pins are unchanged except #15135 b83067a. Its new commit changes received stream sockets from unconditionally connected to checking the host peer via getpeername, with matching tests/debt. Later composition must preserve that distinction, accepted/socketpair state, SCM_RIGHTS ownership and this stack's cancellation/Native boundaries. No import or joint runtime result is claimed.

New compared #15567 f5dacc4 adds checked pthread-name copies, failure-before-mutation and unchanged-name/error-order tests, and debt for its unmeasured Sony name limit/precedence. It supplies no helper accept requires. Preserve its independent coverage/debt alongside I/O cancellation when composed.

#7192 remains open at unchanged 396137d, now uncomparable against main's handler changes. Newly uncomparable #7645 63298da changes shared test runtime-DLL staging and no-staging opt-outs/output directories; read those shared CMake patches. Later composition must retain deliberate loader-test isolation and existing I/O test paths/registrations. Neither is cleared as a whole branch or a new implementation dependency. All 90 uncomparable branches remain uncleared; archive #11625 stays untouched.

Fetched current main 086c068. Read-only merge-tree composition with this accept head is clean and retains its adopted-stack bounds refresh and committed-read fault recovery alongside I/O retirement; no build/runtime qualification of the newer main is inferred. Udp.cpp is unchanged from CI's main baseline. The existing-main sendto notice does not establish duplicate registration: main, accept and the composed tree each have one sendto definition and canonical declaration; _sendto forwards to it, while this stack wraps the existing export in cancellation/descriptor admission.

Full-template audit updated. Depends on remains #12149, #12682, #12688, #9019, #12700; no new order agreement, source push or base change. Exact-head CI limits remain as recorded: Windows passes, macOS x86-64 timeout needs an admin retry/further diagnosis, Windows 22621 sigjump remains unresolved. Accept remains draft and review COMMENTED.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants