TAP version 13 # Subtest: renewal keeps ownership, never shortens a lease, and does not create a new attempt ok 1 - renewal keeps ownership, never shortens a lease, and does not create a new attempt --- duration_ms: 5.1509 type: 'test' ... # Subtest: expired renewal cannot revive ownership before or after a replacement claims ok 2 - expired renewal cannot revive ownership before or after a replacement claims --- duration_ms: 2.2494 type: 'test' ... # Subtest: an event-write failure rolls the state transition back ok 3 - an event-write failure rolls the state transition back --- duration_ms: 2.4174 type: 'test' ... # Subtest: uncertain side effects stay quarantined until an explicit requeue ok 4 - uncertain side effects stay quarantined until an explicit requeue --- duration_ms: 2.8692 type: 'test' ... # Subtest: permanent handler failure is quarantined on its first attempt ok 5 - permanent handler failure is quarantined on its first attempt --- duration_ms: 1.6501 type: 'test' ... # Subtest: worker retries a normal error and passes the original idempotency key on each attempt ok 6 - worker retries a normal error and passes the original idempotency key on each attempt --- duration_ms: 2.1724 type: 'test' ... # Subtest: heartbeat renews a running async handler and completion retains its result ok 7 - heartbeat renews a running async handler and completion retains its result --- duration_ms: 99.8178 type: 'test' ... # Subtest: a successful handler that lost its lease cannot acknowledge its replacement ok 8 - a successful handler that lost its lease cannot acknowledge its replacement --- duration_ms: 6.406 type: 'test' ... # Subtest: cooperative shutdown aborts the handler and records a retry, not completion ok 9 - cooperative shutdown aborts the handler and records a retry, not completion --- duration_ms: 6.4574 type: 'test' ... # Subtest: a pre-aborted worker never claims a job ok 10 - a pre-aborted worker never claims a job --- duration_ms: 3.467 type: 'test' ... # Subtest: falsy thrown values remain failures and invalid retry options cannot claim work ok 11 - falsy thrown values remain failures and invalid retry options cannot claim work --- duration_ms: 3.1282 type: 'test' ... # Subtest: unsupported payload values cannot silently collide with an idempotency key ok 12 - unsupported payload values cannot silently collide with an idempotency key --- duration_ms: 2.6167 type: 'test' ... # Subtest: opening unrelated SQLite data never adopts or changes its schema ok 13 - opening unrelated SQLite data never adopts or changes its schema --- duration_ms: 35.7512 type: 'test' ... # Subtest: online backup restores completed work and quarantines every unfinished job in a NEW file ok 14 - online backup restores completed work and quarantines every unfinished job in a NEW file --- duration_ms: 154.9218 type: 'test' ... # Subtest: backup and restore refuse existing destinations and orphaned sidecars without overwriting ok 15 - backup and restore refuse existing destinations and orphaned sidecars without overwriting --- duration_ms: 22.7244 type: 'test' ... # Subtest: corrupt and unrelated backups cannot create a restored queue ok 16 - corrupt and unrelated backups cannot create a restored queue --- duration_ms: 20.1579 type: 'test' ... # Subtest: replayed enqueue returns one job with original schedule and normalized object keys ok 17 - replayed enqueue returns one job with original schedule and normalized object keys --- duration_ms: 4.7184 type: 'test' ... # Subtest: changed payload or retry limit cannot reuse an idempotency key ok 18 - changed payload or retry limit cannot reuse an idempotency key --- duration_ms: 1.5406 type: 'test' ... # Subtest: future jobs are not claimed early and due jobs follow availability order ok 19 - future jobs are not claimed early and due jobs follow availability order --- duration_ms: 1.4742 type: 'test' ... # Subtest: an active lease excludes a second worker and acknowledgment completes the job ok 20 - an active lease excludes a second worker and acknowledgment completes the job --- duration_ms: 1.6252 type: 'test' ... # Subtest: failure uses bounded exponential retry delays then moves to dead letters ok 21 - failure uses bounded exponential retry delays then moves to dead letters --- duration_ms: 3.6557 type: 'test' ... # Subtest: manual dead-letter requeue resets attempts and uses a fresh lease token ok 22 - manual dead-letter requeue resets attempts and uses a fresh lease token --- duration_ms: 2.6456 type: 'test' ... # Subtest: expired worker is fenced when another worker recovers its job ok 23 - expired worker is fenced when another worker recovers its job --- duration_ms: 2.1495 type: 'test' ... # Subtest: expiry is enforced even before a recovery claim runs ok 24 - expiry is enforced even before a recovery claim runs --- duration_ms: 1.3447 type: 'test' ... # Subtest: the final abandoned attempt goes to dead letters without another delivery ok 25 - the final abandoned attempt goes to dead letters without another delivery --- duration_ms: 1.166 type: 'test' ... # Subtest: only dead-letter jobs can be manually requeued ok 26 - only dead-letter jobs can be manually requeued --- duration_ms: 1.1239 type: 'test' ... # Subtest: invalid timing and JSON payloads do not create jobs ok 27 - invalid timing and JSON payloads do not create jobs --- duration_ms: 0.8804 type: 'test' ... # Subtest: jobs and abandoned leases survive closing and reopening the database ok 28 - jobs and abandoned leases survive closing and reopening the database --- duration_ms: 67.8462 type: 'test' ... # Subtest: four separate processes racing for one job produce exactly one lease ok 29 - four separate processes racing for one job produce exactly one lease --- duration_ms: 252.9492 type: 'test' ... 1..29 # tests 29 # suites 0 # pass 29 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 510.989