Skip to content

Bound notification readers before authorization and dispatch - #207

Merged
PLN merged 1 commit into
mainfrom
fix/bounded-notification-readers
Sep 13, 2026
Merged

PLN merged 1 commit into
mainfrom
fix/bounded-notification-readers

Conversation

@PLN

@PLN PLN commented Sep 13, 2026

Copy link
Copy Markdown
Owner

Allowed idle notification clients could create an unbounded reader goroutine per connection. Each unit listener now reserves one of 64 connection slots before PID authorization or reader creation. Excess connections close without an acceptance banner, and a slot remains held through reader/close completion. Existing notification authorization still applies to admitted connections.

Portable and real Windows-pipe regressions fail on the old implementation when the 65th client is accepted. The final tests also prove 65 denied clients do not leak slots, admitted native clients have the expected process identity, overload does not perform authorization, releasing one slot permits READY delivery, and cancellation joins saturated readers. Twenty complete notification-package repetitions passed (3.026s); full uncached race tests passed (manager 59.559s, journal 40.720s, notify 1.766s), plus vet, Windows/Linux staticcheck and complete diff/privacy/link review. The documented session-map bound is corrected to the existing 4096-entry implementation.

Exact source 4855ce8c90fc2676f608ef778371592fd6a117e5 passed all Windows/Linux lanes in CI 34769236108. Consolidated native qualification passed all 61 manager/journal/timer/notification cases three times per SYSTEM and headless standard-user identity, with no skips. Four binary hashes, source/module identity and final process/profile/linger cleanup were verified and retained privately. The existing broker and real pilot remained unchanged. R2 acceptance remains open pending final audit/evidence publication.

@PLN
PLN merged commit 741575d into main Sep 13, 2026
3 checks passed
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