feat(server-ng): harden configuration surface - #3756
Merged
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #3756 +/- ##
=============================================
- Coverage 74.78% 60.94% -13.85%
Complexity 969 969
=============================================
Files 1306 1306
Lines 151353 139787 -11566
Branches 126785 115293 -11492
=============================================
- Hits 113196 85194 -28002
- Misses 34644 50995 +16351
- Partials 3513 3598 +85
🚀 New features to boost your workflow:
|
Make VSR timing and capacity tunables configurable and close the config-audit findings on the configuration plane: reject configs that cannot work at runtime (zero rebalancing and heartbeat durations, zero or panic-prone WebSocket size pairs, out-of-bounds repair_chunk_max on a single node), warn on parsed-but-inert knobs and annotate them in the shipped config, and move live WebSocket frame tuning to [websocket]. Old [message_bus] ws_* keys are ignored; cluster roster websocket ports now bind the actual listener; listener backlog follows SOMAXCONN and the HTTP TLS handshake budget tracks handshake_grace.
hubcio
force-pushed
the
feat/server-ng-config-hardening
branch
from
July 28, 2026 09:52
66fd320 to
eb4c262
Compare
numinnex
approved these changes
Jul 28, 2026
krishvishal
approved these changes
Jul 28, 2026
numinnex
added a commit
that referenced
this pull request
Jul 28, 2026
Master's clients_table_max knob (#3756) calls set_capacity after install_client_table, but WAL-replay recovery repopulates the table before bootstrap reaches either call, so every restart with a registered client tripped the "set_capacity must run before any client registers" assert and the node refused to boot. Order the capacity set before the install, build the recovered table at the configured capacity instead of the compile-time default, and plumb the same knob into the shard's state-transfer decode so an installed table never falls back to the default either. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Make VSR timing and capacity tunables configurable and close the
config-audit findings on the configuration plane: reject configs that
cannot work at runtime (zero rebalancing and heartbeat durations, zero
or panic-prone WebSocket size pairs, out-of-bounds repair_chunk_max on
a single node), warn on parsed-but-inert knobs and annotate them in
the shipped config, and move live WebSocket frame tuning to
[websocket].
Old [message_bus] ws_* keys are ignored; cluster roster websocket
ports now bind the actual listener; listener backlog follows SOMAXCONN
and the HTTP TLS handshake budget tracks handshake_grace.