fix(zset): mark a rebuild chunk's push as a step so a panicking push is counted (improvise-bw4p.5)
Also renames the MemTrace clone-panic test to what it asserts. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
This commit is contained in:
committed by
Edward Langley
parent
b2445fed97
commit
8b0b715213
@@ -215,3 +215,9 @@ A job whose first chunk failed inside the transaction resumed without that chunk
|
||||
### f3_begin_on_a_circuit_poisoned_outside_a_txn_is_poisoned
|
||||
|
||||
`begin` is `ZS_ERR_POISONED`; `commit` and `rollback` are `ZS_ERR_TRANSACTION`.
|
||||
|
||||
### f5_a_chunk_whose_push_overflows_in_a_txn_then_rollback_is_interrupted
|
||||
|
||||
The same path through the ABI: `zs_rebuild_step` returns `ZS_ERR_OVERFLOW` from the chunk's
|
||||
push, `zs_circuit_rollback` succeeds, and the next `zs_rebuild_step` was a silent success; it is
|
||||
now `ZS_ERR_INTERRUPTED`. Rival: the mark before the push removed fails `[f5]`.
|
||||
|
||||
@@ -566,7 +566,7 @@ key is only visible when it is touched again (a rival that mutated `DistinctStat
|
||||
cloning its entry survived the first version). Rivals, each failing it: `add_logged`,
|
||||
`DistinctState::step` and `Undoable::apply` each mutating before cloning the entry.
|
||||
|
||||
### c2_memtrace_value_clone_panic_leaves_an_empty_group
|
||||
### a_panicking_value_clone_leaves_a_memtrace_unchanged
|
||||
|
||||
`MemTrace::apply` inserted an empty group before cloning the value. Rival: that order restored
|
||||
fails `[c2]`.
|
||||
@@ -589,3 +589,10 @@ split the tick inside the transaction and never reached the save).
|
||||
Pins the limit `zset.md` states: a first continued piece in a transaction clones the edge's
|
||||
whole value, growing with the state.
|
||||
|
||||
|
||||
### p1_a_chunk_whose_push_panics_in_a_txn_is_counted
|
||||
|
||||
Delta review of #355 at b2445fed. `Rebuild::step` takes the chunk from its iterator and pushes
|
||||
it before stepping; a push that overflows the pending delta panicked with no step run, so
|
||||
`undone` was not bumped and the resumed job silently dropped the chunk (key 1's `+1`). The step
|
||||
is now marked before the push. Rival: that mark removed fails `[p1]`.
|
||||
|
||||
Reference in New Issue
Block a user