Skip to content

fix(storage): stop failed partition consumption before releasing capacity - #1500

Merged
DecisionNerd merged 1 commit into
mainfrom
fix/1499-partition-consume-stop
Sep 19, 2026
Merged

DecisionNerd merged 1 commit into
mainfrom
fix/1499-partition-consume-stop

Conversation

@DecisionNerd

@DecisionNerd DecisionNerd commented Sep 19, 2026 •

Copy link
Copy Markdown
Contributor

Description

A failed partition-consume callback released its dispatch slot before its error reached the coordinator stop path. With three workers, failure at partition 1 could therefore admit partition 4 and produce three abandoned loads instead of the valid maximum of two.

Propagate consume failure before releasing capacity or waking workers. Successful consumption retains the existing window behavior; ordered primary errors, stop signaling, and joining remain unchanged. The private release helper makes this ordering invariant directly testable without relying on thread timing.

This is the verified validation blocker for #1416, originating in #1459. It does not include timestamp semantics or the other session's partition-cap work.

Validation

  • The new deterministic regression fails with the original ordering (released=1, expected 0, in 0.00s) and passes with the fix. The existing threaded abandonment assertion remains unchanged.
  • cargo test --release -p graphforge-storage --lib: 1,213 passed, no failures, six existing ignored tests.
  • Strict storage library Clippy, formatting, make pre-push-fast, and make gate-registry-check: passed.
  • Independent review confirmed the failure-before-release ordering and unchanged stop/join/error behavior. CodeRabbit's limited review quota is reserved for the canonical timestamp-semantics change; CLI review remains unavailable in this environment.

Closes #1499


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

@coderabbitai

coderabbitai Bot commented Sep 19, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository: CurateLabs/graphforge/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: dd4d833d-d019-484c-9d67-5dda90b2bc15

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Warning

Billing warning: we have not been able to collect payment for this subscription for more than 72 hours. Please update the payment method or pay any pending invoices in Billing to avoid service interruption.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added the core Core source code changes label Sep 19, 2026
@DecisionNerd
DecisionNerd added this pull request to the merge queue Sep 19, 2026
Merged via the queue into main with commit 697d790 Sep 19, 2026
21 checks passed
@DecisionNerd
DecisionNerd deleted the fix/1499-partition-consume-stop branch September 19, 2026 23:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core Core source code changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(storage): stop failed partition consumption before releasing dispatch capacity

1 participant