Skip to content

fix(gasoline): bound dead-workflow backfill reads - #5707

Open
brittianwarner wants to merge 1 commit into
rivet-dev:mainfrom
brittianwarner:codex/rivet-backfill-upstream
Open

fix(gasoline): bound dead-workflow backfill reads#5707
brittianwarner wants to merge 1 commit into
rivet-dev:mainfrom
brittianwarner:codex/rivet-backfill-upstream

Conversation

@brittianwarner

Copy link
Copy Markdown
  • Prevent the dead-workflow backfill from materializing the remaining workflow-data range before its batch cutoff. Discover workflows with key-only seeks and read only classification metadata, skipping input, state, and output payloads.
  • Preserve existing activity inputs, cursor serialization, classification rules, and transaction deadlines. Track classification reads and the output range so concurrent completion cannot produce a stale dead-workflow index entry.
  • Add a real-RocksDB regression covering large payloads, exclusion markers, legacy cursors, and replay. The original implementation reads 4,333,448 bytes in the first-page fixture; the patched first-page and cumulative fixture reads remain below 64 KiB.
  • Synchronize stale local workspace versions in Cargo.lock with 2.3.17 so locked builds succeed. No third-party dependency, RocksDB version, storage schema, or protocol changes.
  • Validation on the identical 2.3.17 patch: all 23 gasoline library tests passed; the exact regression also passed in the Linux amd64 release image. Image smoke passed health, authentication, protocol v8, dashboard assets, and namespace persistence across restart. The PR is based on current main; its runtime, test, and lockfile changes are byte-for-byte identical, and locked metadata validation passed.
  • Live development validation on an existing upgraded volume: all 66 backfill chunks finished and the durable completion marker was confirmed. Engine memory peaked at approximately 1.02 GB, compared with the previous 22.7 GB sample, with zero OOM events in the new container. An existing actor read through the API passed in 61 ms. This is initial recovery evidence, not a sustained-load qualification.

Closes #5701.

@the-company-company the-company-company Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found

Reviewed commit e68d740.

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.

RocksDB: dead-workflow backfill materializes unbounded range before batch cutoff

1 participant