Skip to content

fix: complete manifest readiness, timed batching and shared-memory shutdown - #674

Merged
SunSi12138 merged 5 commits into
devfrom
fix/dynamic-call-shapes-manifest-readiness
Sep 12, 2026
Merged

SunSi12138 merged 5 commits into
devfrom
fix/dynamic-call-shapes-manifest-readiness

Conversation

@SunSi12138

@SunSi12138 SunSi12138 commented Sep 12, 2026 •

Copy link
Copy Markdown
Owner

Release validation exposed three correctness gaps: dynamic-module tests could request a proxy before the remote manifest arrived, a delayed send-pump wake could flush a timed batch early, and Windows shared-memory shutdown could exhaust its cleanup budget while disposing a mapped view.

The changes wait for manifest readiness, recheck the queue and original flush deadline after a wake, and close transient mapping views without the accessor’s unnecessary explicit file flush. The Windows failure-dump helper now captures the failing process with the installed diagnostic tool and waits for capture before final cleanup.

Validation:

  • Full local unit suite: Passed: 1819, Failed: 0, Skipped: 0. Full local integration suite: Passed: 451, Failed: 0, Skipped: 0.
  • Two deterministic timed-batching cases fail with the old send-pump logic and pass with the correction.
  • Two mapping lifecycle cases cover closing either peer first, preserved shared bytes, invalidated closed-side memory, idempotent cleanup, and final file removal.
  • Windows diagnostic comparison: baseline recorded 1,270 mapped-view disposals over 100 ms, up to 3,469 ms. Corrected disposal passed three 300-second restart workloads with zero measured cleanup stages over 100 ms, zero unexpected failures, and zero unobserved task exceptions. Diagnostic instrumentation remains on its separate branch.
  • The accessor publication/stop stress test retains all 100,000 rounds and assertions, with a two-minute worker budget so hosted macOS scheduling does not cancel the test at its previous 30-second bound. Focused verification: Passed: 1, Failed: 0, Skipped: 0.
  • Focused whitespace validation passed. The updated candidate is running Release Gate before merge.

The change preserves the existing cleanup budget and still joins and releases owned resources. It adds no per-RPC state or allocation. Idle send-pump BenchmarkDotNet results remain 2.589 → 2.579 µs and 536 B/op; the manual-clock timed-batch measurement was inconclusive and is not claimed as a pass. The final-main package ABA comparison remains a separate prerequisite for publication.

@SunSi12138 SunSi12138 changed the title test: wait for dynamic call-shape contract publication fix: preserve timed batching and release failure diagnostics Sep 12, 2026
@SunSi12138 SunSi12138 changed the title fix: preserve timed batching and release failure diagnostics fix: complete manifest readiness, timed batching and shared-memory shutdown Sep 12, 2026
@SunSi12138
SunSi12138 merged commit 3905c91 into dev Sep 12, 2026
56 of 77 checks passed
@SunSi12138
SunSi12138 deleted the fix/dynamic-call-shapes-manifest-readiness branch September 12, 2026 21:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant