Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
f0rr0
marked this pull request as ready for review
September 7, 2026 21:58
36 tasks
65 tasks
13 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.
Latest update — 41c74d8 (2026-09-08)
Not merge-ready. The Windows/MSVC exception-recovery blocker remains. The new execution-stack guard is a tested review candidate, not enabled in consumer packages.
This update pushes the completed resource-budget cleanup and the actual stack-safety candidate code:
Candidate evidence, not exact-head release qualification
repo:docs-policy sdk-contracts:allpassed (9 tasks, 5 cached), profile-budget test passed, both pq_flush ABI tests passed, regression-probe Rust formatting passed, all four candidate patches passedgit apply --check, and staged whitespace checks passed.Before activation: settle/consume the upstream VM/API contract (coordinate Wasmer #6913), qualify recovery margins and error cleanup across supported targets, resolve the Windows/browser contract, then integrate pins/imports/artifact invalidation together. No release build or exhaustive qualification was rerun merely to publish this review update.
Summary
Previously published checkpoint: 0f4a996. Not merge-ready: Windows/MSVC Wasm exception recovery is blocked in the consumed Wasmer runtime. The known formatting and Postmaster source-root fixes are pushed. No Windows target/test is removed or waived, and the repeat optimization remains held outside this PR.
Consolidate the completed patch-correctness work on current main, without importing the research harness, historical result archives, old binaries or producer trees.
llvm-opta-ro_ftablethroughout production, caches, manifests and all eight carriers; reject incompatible legacy overrides and artifacts.This is intentionally a substantial correctness integration, not a small isolated performance patch: guest/host ABI and Native process ownership must land together. It excludes optional compiler/runtime experiments and the obsolete pre-N-API Node filesystem path.
Follow-up implemented at 51789da
fsync=ondefault instead of silently adding-F; explicitfsync=offremains available. Fresh Linux ICU direct and installed-broker checks verify both settings, identity/login policy, session reset and nondefault-database settings.Additional follow-up at 8e45be7
Hosted failure fixes prepared at 94d674d
Final focused validation
Initial 34f173f validation
Strict PostgreSQL 18.4 patch replay: 22 Native / 30 WASIX / 7 Postmaster, no fuzz or rejected hunks.
Fresh Linux standard Native library: ABI conformance, configured identity/login policy, six startup rejection cases, signal/mask/timer ownership, cancellation and COPY timeout/backpressure, five cwd cases and broad C smoke passed.
Rust WASIX: 215 unit tests, 5 doctests, 7 public API tests passed.
Browser TypeScript: 343 tests / 36 files and typecheck passed; six pinned-host source-contract tests passed.
Real isolated Chrome: memory and IndexedDB both passed repeated syntax/division error recovery, PL/pgSQL exception catch, set-based INSERT, 1 MB COPY callback abort/drain/reuse; IndexedDB close/reopen preserved all 1,000 rows.
Fresh portable guest/support/initdb built; standard and ICU seed initialization/profile probes passed. Strict AOT compiled, packaged and passed artifact validation; all eight actual generated carrier identities were checked.
Shared protocol schema/generated views, compiled C bridge ABI, 64 MiB aggregate tool-output policy, SJLJ artifact guard, patch-review freshness, Postmaster source lock, focused libc/runtime checks, Rust formatting and documentation policy passed.
assets verify-committedpassed using the existing core-only build flag; full extension catalog validation remains the default outside that explicitly scoped path.Fresh Rust WASIX on the new portable guest and strict AOT: 18/18 runtime-smoke and 7/7 PostgreSQL regression tests passed. These exercise memory/directory storage, sync/async callback error and panic recovery/reuse, prepared parameters, INSERT/savepoints, rollback/cancellation, directory ownership/reopen, backup/restore and recovery after an abruptly killed child. These are focused cases, not exhaustive crash qualification. Rust COPY-specific coverage was not available in these suites; actual browser COPY coverage is listed above.
Boundaries and follow-up
Windows/MSVC is a merge blocker. Job 101905963703 reaches an explicit panic in wasmer-vm 7.2.1's MSVC
throw()implementation duringsavepoints_error_recovery_and_indexed_updates, exit0xe06d7363. Official v7.4.0 and current upstream main still contain the unsupported MSVC exception stubs; an ordinary dependency upgrade is not a fix. Genuine engine exception support or a separately qualified compatible guest is required. Skipping tests, catching the panic or silently falling back to Native would not preserve the guest recovery/isolation contract.The retained repeat experiment is held, not promoted: 184 correctness/settings-checked children show wide temporary INSERT 41.5% / 33.5% faster and logged wide 29.0% / 20.7% faster (memory/directory). A separate 72-child targeted+A/A recheck resolved the preconstructed-directory warning but retained a prepared-directory warning of approximately 6–7% against both baseline controls, predominantly in transaction body. Shared-host interference remains a limitation. Exact candidate artifacts and original baselines remain retained; no experimental framework is staged, and neither durability nor fill-chunk tuning is a demonstrated remedy for the warning.
SQL statement_timeout is not a reliable CPU-bound deadline in current Rust WASIX. Actual baseline/candidate probes expose inherited libc timer-field and Rust unit/one-shot/delivery gaps. Native timeout/reuse and injected interrupt tests do not prove Wasm delivery. Public Rust/usage docs now explicitly distinguish accepting the GUC or timing out a caller future from stopping guest execution; issue Follow up patch consolidation: signal semantics, performance profiling, and qualification #201 records the coordinated remedy.
No release-ready or blanket non-regression claim. The initial 324-child strict-profile comparison and final 220-child identity screen are separate evidence sets; the later one does not erase the earlier warnings. All accepted directory reports actually verify fsync/synchronous_commit/full_page_writes=on. No Native durability-change timing is inferred from the WASIX screen.
Inherited Postmaster POSIX signal masks are not implemented. Pinned pthread_sigmask returns success/no-op, sigpending returns EINVAL, and handler sa_mask is ignored. The capability inventory now says unsupported. The macro fix does not repair delivery masking; correct remediation needs coordinated Wasmer/libc mask/pending delivery semantics and PostgreSQL stress tests. This is a high-priority known limitation, not an observed corruption or new-regression claim.
Four completed prior/final ABBA profile captures collected 45,283 samples on unchanged strict guest/AOT payloads, using existing public Wasmer function extents for diagnostic address maps. The wide workload's
repeat(chr(...),96)makes 96 one-byte copies per row; imported-copy self samples account for 24–27%, while direct statistics-counter samples are about 0.45%. This supports a bounded general repeat experiment, not causal attribution of the +5.1% warning. No new optimization is promoted. The user-authorized temporary profiling setting was restored to its originalperf_event_paranoid=4immediately after capture; no persistent setting changed.Hosted Native builds and the portable WASIX, Postmaster and iOS-extension producers passed at parent 51789da. The later 8e45be7 head also passed Native/extension and portable WASIX producers plus Linux/macOS AOT, but exposed the known formatting/root failures and Windows exception blocker. That parent run was cancelled by the push only after material producers finished, with app/E2E work remaining. 0f4a996 must qualify in its own run 34177975360; parent results are not relabelled as final-head results.
Native now preserves
fsync=onby default; durable-write latency can increase. Functional reopen tests still do not establish crash durability. No WASIX durability relaxation is introduced.Guest and hosts/AOT must be rebuilt together. Old profile manifests cannot be relabelled; terminal guest failures cannot be treated as recoverable SQL errors.
Browser host runtime code was built before mail-header normalization. Every patch diff is byte-identical before/after that metadata-only step; the original build marker is retained and a local before/after equivalence receipt records both identities. This is not labelled an exact-release artifact.
Local Moon affected-project resolution, SDK contracts and graph unit tests pass with the repository-pinned toolchain.
Broad platform/ICU, extension, hostile-extension/resource, crash and release qualification remain separate work.
The complete prioritized remainder is issue #201: inherited Postmaster signal-mask semantics, a profile-supported repeat experiment and unresolved wide-INSERT warning, remaining platform/runtime qualification and upstream review. Optional compiler/ICU/ownership ideas are conditional research, not mandatory features. Rejected CRC/lazy-globals/unsafe shortcuts are not automatically revived.
See
docs/internal/PATCH_CONSOLIDATION_20260907.mdfor the consumer implications and explicit retirement table. The original research state is preserved in a separate local recovery commit and is not staged here.