Skip to content

fix: publish RamTier failure before completion - #368

Merged
ketor merged 1 commit into
mainfrom
fix/ram-tier-terminal-order
Aug 31, 2026
Merged

fix: publish RamTier failure before completion#368
ketor merged 1 commit into
mainfrom
fix/ram-tier-terminal-order

Conversation

@ketor

@ketor ketor commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Problem

Final-main CI run 33398128478 exposed a real completion-order race in RamTier.InflightDuplicateSharesTerminalLeaderFailure: both PutCommitted waiters could return kIOError before the terminal flush path published healthy=false and dropped the failed entry.

The failed assertion observed rt.healthy()==true after both waiters joined.

Fix

Capture the shared completion, publish all terminal side effects under the shard lock, then wake leader/follower waiters with CompletePut(false).

This preserves the contract that a completed terminal failure is fully visible when PutCommitted returns.

Verification

  • full ram_tier_test: 36/36 passed
  • failing test repeated 100 times with --gtest_break_on_failure: 100/100 passed

@ketor
ketor added this pull request to the merge queue Aug 31, 2026
Merged via the queue into main with commit 72f3d35 Aug 31, 2026
8 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