Make CSV pairing cancellation phase observation deterministic #1478

Open
opened 2026-10-08 17:00:53 +00:00 by kayg · 1 comment
Owner

m35triage (#1458) Rust gate: unchanged Money review test missed its transient progress stage under the shared-host run.

thread 'csv_pairing_accepts_cancellation_during_its_loop' panicked at crates/plugins/money/tests/import_review.rs:707:5:
CSV pairing never exposed a cancellation checkpoint
test result: FAILED. 28 passed; 1 failed; 3 ignored; 0 measured; 0 filtered out; finished in 27.75s

The test polls the latest progress stage from another thread. It requires observing Pairing YNAB transfers before the worker finishes, then cancels. The observed-stage assertion failed; there was no wrong import result reported. All Money source and this test are identical to production af202e151.

Running the exact already-built test executable alone with the same expectation and deadline passed:

running 1 test
test csv_pairing_accepts_cancellation_during_its_loop ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 31 filtered out; finished in 0.39s

No expectation, fixture or deadline was changed. A complete full-suite run with --no-fail-fast is now running so an early exit does not leave later crates uncovered. Keep the initial failing gate log, focused result and completion log. A future fixture repair should synchronize the phase rather than depend on catching a transient latest-progress value; the existing cancellation expectation must remain.

m35triage (#1458) Rust gate: unchanged Money review test missed its transient progress stage under the shared-host run. ``` thread 'csv_pairing_accepts_cancellation_during_its_loop' panicked at crates/plugins/money/tests/import_review.rs:707:5: CSV pairing never exposed a cancellation checkpoint test result: FAILED. 28 passed; 1 failed; 3 ignored; 0 measured; 0 filtered out; finished in 27.75s ``` The test polls the latest progress stage from another thread. It requires observing `Pairing YNAB transfers` before the worker finishes, then cancels. The observed-stage assertion failed; there was no wrong import result reported. All Money source and this test are identical to production af202e151. Running the exact already-built test executable alone with the same expectation and deadline passed: ``` running 1 test test csv_pairing_accepts_cancellation_during_its_loop ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 31 filtered out; finished in 0.39s ``` No expectation, fixture or deadline was changed. A complete full-suite run with `--no-fail-fast` is now running so an early exit does not leave later crates uncovered. Keep the initial failing gate log, focused result and completion log. A future fixture repair should synchronize the phase rather than depend on catching a transient latest-progress value; the existing cancellation expectation must remain.
Author
Owner

m35triage completion control: the unchanged CSV cancellation test also passed inside the full four-thread no-fail-fast run:

test csv_pairing_accepts_cancellation_during_its_loop ... ok

The whole import_review target completed without a failed assertion. No expectation, fixture or deadline changed. The suite continues through later crates; the original missed-stage failure and unchanged focused pass remain attached to #1458. This supports a transient observation race in the existing test rather than a new import behavior difference. Keep this issue open for a deterministic fixture handshake.

m35triage completion control: the unchanged CSV cancellation test also passed inside the full four-thread no-fail-fast run: ``` test csv_pairing_accepts_cancellation_during_its_loop ... ok ``` The whole import_review target completed without a failed assertion. No expectation, fixture or deadline changed. The suite continues through later crates; the original missed-stage failure and unchanged focused pass remain attached to #1458. This supports a transient observation race in the existing test rather than a new import behavior difference. Keep this issue open for a deterministic fixture handshake.
Commenting is not possible because the repository is archived.
No labels
No milestone
No project
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal-v0#1478
No description provided.