Contract-suite queue-depth rows (task suite-queue-depth-rows): the job-handle validity predicate row (in-window heartbeat/ack landing, late-heartbeat/post-lapse-ack/retry/fail refusals past a 1 s stamp with the row untouched, ack_batch per-id predicate live-1/lapsed-0/nonexistent-0, fail(None)→"failed" and retry-at-budget→"max attempts exceeded"), the ADR-010 depth row (reclaim consumes an attempt with claimed_at/deadline refreshed and the original holder refusing, reclaim-exhaustion dead-lettering with the pre-claim sweep — get_job-visible "max attempts exceeded"+died_at, cancel unconditional delete with the not-an-interrupt refusal shape plus pending/dead/missing arms), and the no-stranded-rows sweep row (both states move with "expired", unexpired/never-expiring untouched, retention TTL enforcing with the moved+deleted sum, None=forever) — each version-stamped per the suite convention (ADR-010 §1–§5, ADR-019 §3, ADR-008 §5), wired into both engines' suite targets (SQLite tokio tests, pg harness_row!s). M-1's retention-failure pin dispositioned engine-side per the task's honest call: the storage-level DELETE failure is not injectable through the contract surface, so it lands in the SQLite substrate's trigger seam (sweep_rolls_back_the_retention_half_with_the_move — the move half rolls back with the retention half), with the pg twin verified structurally (both halves inside in_tx's frame) and the disposition recorded in the task Notes. Verified: sqlite suite 13/13, pg suite 13/13 vs harness twice (postgres/poc@:15432), substrate sweep-rollback tests 4/4, workspace build/test green, clippy -D warnings, fmt clean
This commit is contained in:
1 parent
250511d480
commit
5c9ae6a7fc
6 files changed
+746
-15
No files matched your search
@@ -165,8 +165,9 @@ mod rows {
|
||||
use alkstore_contract_suite::properties::{
|
||||
drop_rollback_leaves_no_ghosts, duration_refusal_on_non_positive_ttl,
|
||||
enqueue_opts_resolution, extent_clamp_semantics, in_tx_reads_see_own_writes,
|
||||
name_validation_rejects_empty_and_reserved, payload_round_trip_stores_exact_encoding,
|
||||
payload_too_large_produced_on_pg, receiver_close_and_save_arms,
|
||||
job_handle_validity_predicate, name_validation_rejects_empty_and_reserved,
|
||||
payload_round_trip_stores_exact_encoding, payload_too_large_produced_on_pg,
|
||||
queue_depth_reclaim_and_dead_letter, receiver_close_and_save_arms, sweep_no_stranded_rows,
|
||||
};
|
||||
|
||||
use super::PgFactory;
|
||||
@@ -232,6 +233,21 @@ mod rows {
|
||||
receiver_close_and_save_arms,
|
||||
"row-receiver-arms"
|
||||
);
|
||||
harness_row!(
|
||||
row_job_handle_validity_predicate,
|
||||
job_handle_validity_predicate,
|
||||
"row-handle-predicate"
|
||||
);
|
||||
harness_row!(
|
||||
row_queue_depth_reclaim_and_dead_letter,
|
||||
queue_depth_reclaim_and_dead_letter,
|
||||
"row-queue-depth"
|
||||
);
|
||||
harness_row!(
|
||||
row_sweep_no_stranded_rows,
|
||||
sweep_no_stranded_rows,
|
||||
"row-sweep-stranded"
|
||||
);
|
||||
}
|
||||
|
||||
mod factory_shape {
|
||||
|
||||
Reference in new issue
Block a user