Skip to content

feat(server-ng): harden listener, auth, shutdown, and disk-poll paths - #3774

Open
numinnex wants to merge 3 commits into
masterfrom
cleanup_fixes
Open

feat(server-ng): harden listener, auth, shutdown, and disk-poll paths#3774
numinnex wants to merge 3 commits into
masterfrom
cleanup_fixes

Conversation

@numinnex

@numinnex numinnex commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Silent failure modes become loud or typed: listeners no longer set
SO_REUSEPORT, so a stale process holding a port fails the bind instead
of splitting the accept queue (UDP/QUIC drops SO_REUSEADDR too, which
alone lets a second socket steal datagrams); a disk poll that cannot
resolve its partition dir mid-rotation now fails closed instead of
letting the journal-forward skip disk-resident offsets; rejected logins
get a typed Eviction frame with the real reason instead of an empty
reply; a wedged shard is abandoned at a configurable join deadline
instead of blocking process exit forever.

Cluster operability: a verify-only acceptance window for the retiring
PSK (cluster.auth.previous_shared_secret) makes key rotation a rolling
three-step instead of a coordinated restart, and replica TLS names are
keyed by replica id rather than roster position so sparse ids from
dynamic join cannot verify against another peer's name.

Also removes a stale rustdoc pointer to the already-landed resumable
TLS pump framing.

@github-actions github-actions Bot added the S-waiting-on-review PR is waiting on a reviewer label Jul 29, 2026
@codecov

codecov Bot commented Jul 29, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 69.35484% with 95 lines in your changes missing coverage. Please review.
✅ Project coverage is 61.15%. Comparing base (0fa657a) to head (29a2678).

Files with missing lines Patch % Lines
core/server-ng/src/bootstrap.rs 0.00% 56 Missing ⚠️
core/partitions/src/iggy_partition.rs 71.69% 13 Missing and 2 partials ⚠️
core/server-ng/src/auth.rs 76.47% 8 Missing ⚠️
core/server-ng/src/dispatch.rs 0.00% 8 Missing ⚠️
core/server-ng/src/server_error.rs 0.00% 7 Missing ⚠️
core/partitions/src/poll_plan.rs 83.33% 1 Missing ⚠️
Additional details and impacted files
@@              Coverage Diff              @@
##             master    #3774       +/-   ##
=============================================
- Coverage     75.12%   61.15%   -13.97%     
  Complexity      969      969               
=============================================
  Files          1307     1306        -1     
  Lines        152751   140486    -12265     
  Branches     128184   115991    -12193     
=============================================
- Hits         114756    85920    -28836     
- Misses        34465    50964    +16499     
- Partials       3530     3602       +72     
Components Coverage Δ
Rust Core 58.55% <69.35%> (-16.99%) ⬇️
Java SDK 62.71% <ø> (ø)
C# SDK 71.13% <ø> (-1.14%) ⬇️
Python SDK 92.27% <ø> (ø)
PHP SDK 84.52% <ø> (ø)
Node SDK 92.20% <ø> (-0.05%) ⬇️
Go SDK 43.08% <ø> (ø)
Files with missing lines Coverage Δ
core/configs/src/server_ng_config/cluster.rs 97.73% <100.00%> (+0.08%) ⬆️
core/configs/src/server_ng_config/sharding.rs 95.81% <100.00%> (+1.21%) ⬆️
core/message_bus/src/client_listener/mod.rs 73.07% <ø> (ø)
core/message_bus/src/client_listener/quic.rs 78.43% <ø> (+1.23%) ⬆️
core/message_bus/src/framing.rs 78.31% <ø> (ø)
core/message_bus/src/installer/replica.rs 85.97% <100.00%> (ø)
core/message_bus/src/replica/auth.rs 95.70% <100.00%> (+1.14%) ⬆️
core/message_bus/src/replica/handshake.rs 79.25% <ø> (ø)
core/message_bus/src/socket_opts.rs 91.30% <100.00%> (+8.95%) ⬆️
core/partitions/src/poll_plan.rs 64.45% <83.33%> (+0.69%) ⬆️
... and 5 more

... and 265 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

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

Labels

S-waiting-on-review PR is waiting on a reviewer

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant