Tracking issue for the unaddressed findings from the c10k hardening review
(tmp/C10K-HARDENING-REVIEW.md, 30 findings, 2026-07-30). Every 🔴 Critical and
🟠 High finding has now merged; what remains here is all 🟡 Medium / ⚪ Low.
Landed (for context)
Remaining
Cluster D — park-design robustness
- 🟡 D4 (routing F7) — Migration races the pipelined batch tail. Gate checked mid-batch, migration executes at batch end with no re-check;
MigratedConnectionState carries no command_queue/in_multi/subs/tracking. […GETs, MULTI, SET] → migrates with in_multi=true, queued txn discarded, tail SUBSCRIBE orphaned. Fix: re-evaluate the gate at the migration point.
Cluster F — lifecycle / shutdown / invariant hygiene
- 🟡 F1 (conn#8) — Graceful shutdown doesn't drain: shard returns from
run, drops the runtime, every pending conn task dropped; clients see truncated replies, not clean FIN. Fix: bounded drain phase + shutdown arm on the stage-1/2 read parks.
- ⚪ F2 (conn#9 / sec L1) —
kill_clients fd-liveness invariant no longer literally holds for parked conns (drop order = capture order). Not exploitable today; one refactor (F1's drain) from a shutdown(2)-on-reused-fd. Fix: wrap {guard,stream} with a hand-written guard-first Drop.
- ⚪ F3 (routing F10) — Central-accept loop head-of-line blocks on one wedged shard's full 4096-conn channel. Central-accept only (non-Linux/TLS/tests). Fix:
try_send + round-robin next shard.
- ⚪ F4 (routing F12) — Migration fd lifecycle: raw
i32 payload with no Drop leaks the fd on shutdown/undelivered; resumed-parked conns permanently can_migrate:false.
- ⚪ F5 (sec L3) — Migrated
ConnectionContext carries requirepass:None (inert today, loaded gun for future auth re-derivation).
- ⚪ F6 (sec L2) — Unauthenticated conns are parkable with no auth deadline (park a maxclients-worth of silent conns at 3.3 KB each).
- ⚪ conn-secondary —
kept_registration miss-arm counter-leak (fail-open); is_sweep_cancel matches bare errno 125 (non-sweep ECANCELED misread).
Test hygiene (found while validating #441)
Notes
- No Critical/High remains; these are defense-in-depth + correctness-under-saturation.
- Suggested next wave: D4 → F1/F2 (F1 and F2 interact — the drain refactor is what makes F2 exploitable, so land them together) → F3–F6 + conn-secondary.
- Full detail + line refs in
tmp/C10K-HARDENING-REVIEW.md.
Tracking issue for the unaddressed findings from the c10k hardening review
(
tmp/C10K-HARDENING-REVIEW.md, 30 findings, 2026-07-30). Every 🔴 Critical and🟠 High finding has now merged; what remains here is all 🟡 Medium / ⚪ Low.
Landed (for context)
timeout Nfrom silently disabling the c1M connection park (c10k D1) #427 · D2: fix(conn): one byte no longer hides a connection from the idle sweep (c10k D2) #434 · E2: fix(shard): FLUSHALL inside MULTI/EXEC clears every shard, not just one (c10k E2) #437Remaining
Cluster D — park-design robustness
MigratedConnectionStatecarries nocommand_queue/in_multi/subs/tracking.[…GETs, MULTI, SET]→ migrates within_multi=true, queued txn discarded, tail SUBSCRIBE orphaned. Fix: re-evaluate the gate at the migration point.Cluster F — lifecycle / shutdown / invariant hygiene
run, drops the runtime, every pending conn task dropped; clients see truncated replies, not clean FIN. Fix: bounded drain phase + shutdown arm on the stage-1/2 read parks.kill_clientsfd-liveness invariant no longer literally holds for parked conns (drop order = capture order). Not exploitable today; one refactor (F1's drain) from a shutdown(2)-on-reused-fd. Fix: wrap {guard,stream} with a hand-written guard-first Drop.try_send+ round-robin next shard.i32payload with no Drop leaks the fd on shutdown/undelivered; resumed-parked conns permanentlycan_migrate:false.ConnectionContextcarriesrequirepass:None(inert today, loaded gun for future auth re-derivation).kept_registrationmiss-arm counter-leak (fail-open);is_sweep_cancelmatches bare errno 125 (non-sweep ECANCELED misread).Test hygiene (found while validating #441)
--dirnames race themoon.lockinstance lock under parallel cargo-test. Fixed in pubsub_kv_ordering + pubsub_multi_channel_acl (fix(shard): bounded cross-shard fan-out + reply awaits (c10k E1/E3/E4), lazy rehydrated buffers (D3) #441); same pattern remains in info_memory_allocator_pagecache, vector_exact_rerank, vector_db_isolation, memory_doctor_response, memory_prometheus_kinds, tls_park_keyupdate.Notes
tmp/C10K-HARDENING-REVIEW.md.