You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit dfd29ac
Browse filesBrowse the repository at this point in the historyBrowse files
Replace retained transaction strategies with compact cleanup records for
each preparation attempt. Records contain buffer identities, acquired ALT
reservations, and the uniqueness nonce used by that attempt. Keep them in
the execution report before entering cancellable preparation futures.
Release executable tasks and their account payloads after use. Recovery
helpers now update remaining work without cloning tasks or returning dummy
strategies for cleanup. Rename commit_stage_task to buffer_task to reflect
its buffer preparation and closure role.
Record ALT acquisitions inside TableMania as they occur, including partial
failure and cancellation. Separate attempts retain separate reservations
even when their keys match, so cleanup cannot under-release repeated
reservations or release a key that an attempt never acquired.
Close each recorded buffer at most once after successful intent execution,
using its recorded nonce. Failed execution still releases ALT reservations
without closing buffers that another attempt could reuse. Cleanup no longer
rescans executable tasks to recover resource identities.
Adapt the existing lifecycle, nonce-recovery, and cleanup tests. Extend the
recovery regression to exercise real TableMania reference counts across
repeated reservations, partial failure, and cancellation while preserving
another intent's reservation. Check buffer closure and nonce association
through the cleanup handle.
Validation: make fmt; make ci-fmt; cargo check for the committor and TableMania
packages with --tests; the recovery_preserves_progress_and_resources test;
cargo clippy --workspace --all-targets -- -D warnings; cargo test --workspace
(nextest is unavailable locally); git diff --check.
Closes#1842.
0 commit comments