Skip to content

client_tracking_invalidation: multikey DEL/MSET second-key invalidation push intermittently not delivered (~25-40%/run) #448

Description

@TinDang97

Split out of the #446 gate runs (2026-08-07) so the flake has an owner instead of living in test-rerun folklore.

Symptom. On the Linux VM (monoio release-fast), tests/client_tracking_invalidation.rs fails intermittently — observed across 7 runs at roughly 25–40%:

  • multikey_del_invalidates_every_key: BOTH deleted keys must be invalidated, not just the first (a=true, b=false, got: ">2\r\n$10\r\ninvalidate\r\n*1\r\n$4\r\nct:a\r\n") — the push for the SECOND deleted key never arrives.
  • mset_invalidates_every_second_arg_key: tracking client of ct:m2 must be invalidated by MSET (got: "") — no push at all for the second MSET key.
  • nontracking_writer_invalidates_cross_connection has failed with the same shape.

Not a #446 regression. Merge-base A/B on the same VM: unmodified main (2bf488f) failed 1/3 runs, the F3–F6 branch 2/3, same signature — pre-existing. Related history: the 4-shard variant of this class is documented as "push lands ~75%/attempt" (PR #247 era), where the then-fix was to assert a majority rather than all-N. These single-run asserts are about per-KEY completeness on one connection, which SHOULD be deliverable — a real RESP3 tracking client would equally miss the second key's invalidation, so this smells like a delivery race in the multikey write→tracking-table fan-out rather than a test problem.

Where to look. Multikey write paths' tracked-key fan-out (TrackedWriteKeys through the dispatch legs), and the tracking push channel's delivery when two invalidation pushes race one park/read cycle on the subscriber conn.

Repro. orb run -m moon-devCARGO_TARGET_DIR=target-linux MOON_BIN=$PWD/target-linux/release-fast/moon cargo test --profile release-fast --test client_tracking_invalidation — fails within ~3 runs under sibling-suite load; less often solo.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions