Make the full adversarial runner prepare late dedup checks #272

Closed
opened 2026-09-27 21:10:20 +00:00 by kayg · 4 comments
Owner

Evidence

The standard tests/adversarial/run.sh invocation ran attack2.py without filtering to the dedup section. The shell only coordinates restart barriers 4, 5, and 6 when ADVERSARIAL_DEDUP_ONLY=1, but the full attack2.py run reaches dedup and waits for those barriers.

This full run reported “server restart coordinator did not resume the probe” for barrier 4 and the dedup crash and garbage-collection restart checks. The long run also left the A-D bearer fixtures expired by the dedup section, which then returned 401 and produced follow-on fixture, overwrite, and scrub assertions. Those late dedup results are inconclusive.

Please make the full runner coordinate the barriers required by the sections it runs, or skip those dedicated crash probes in full mode. Refresh all required test sessions before late phases and fail early if fixtures are no longer authenticated.

## Evidence The standard tests/adversarial/run.sh invocation ran attack2.py without filtering to the dedup section. The shell only coordinates restart barriers 4, 5, and 6 when ADVERSARIAL_DEDUP_ONLY=1, but the full attack2.py run reaches dedup and waits for those barriers. This full run reported “server restart coordinator did not resume the probe” for barrier 4 and the dedup crash and garbage-collection restart checks. The long run also left the A-D bearer fixtures expired by the dedup section, which then returned 401 and produced follow-on fixture, overwrite, and scrub assertions. Those late dedup results are inconclusive. Please make the full runner coordinate the barriers required by the sections it runs, or skip those dedicated crash probes in full mode. Refresh all required test sessions before late phases and fail early if fixtures are no longer authenticated.
Author
Owner

Additional evidence from the full tests/adversarial/run.sh round: attack2.py runs deletion_probes() at line 2696 before the dedup section at line 3902. The deletion section archives/purges/transfers Users B, C and D, then the late dedup section still uses the A–D bearer tokens. This run logged 401 for all three dedup folder setup calls, all B–D upload/download attempts and member scrub authorization checks; the dependent hardlink/link-count and overwrite-isolation assertions then failed. This matches the expired/revoked-fixture follow-ons described here, so these results are inconclusive for dedup behavior. The Files upload/rename/listing contention assertion produced no finding.

Additional evidence from the full `tests/adversarial/run.sh` round: `attack2.py` runs `deletion_probes()` at line 2696 before the `dedup` section at line 3902. The deletion section archives/purges/transfers Users B, C and D, then the late dedup section still uses the A–D bearer tokens. This run logged 401 for all three dedup folder setup calls, all B–D upload/download attempts and member scrub authorization checks; the dependent hardlink/link-count and overwrite-isolation assertions then failed. This matches the expired/revoked-fixture follow-ons described here, so these results are inconclusive for dedup behavior. The Files upload/rename/listing contention assertion produced no finding.
Author
Owner

The same run reached the later restart probes and confirmed the missing coordinator: barrier 4 reported server restart coordinator did not resume the probe; the interrupted upload was then fully visible and could not be resumed. The garbage-collection probe also reported that the restart coordinator did not resume, then observed scrub phase: attention with all four affected User A paths marked repaired: true. This makes the late crash/restart assertions inconclusive in the full-run invocation, as described in this issue. The normal Files contention assertion remained clean.

The same run reached the later restart probes and confirmed the missing coordinator: barrier 4 reported `server restart coordinator did not resume the probe`; the interrupted upload was then fully visible and could not be resumed. The garbage-collection probe also reported that the restart coordinator did not resume, then observed scrub `phase: attention` with all four affected User A paths marked `repaired: true`. This makes the late crash/restart assertions inconclusive in the full-run invocation, as described in this issue. The normal Files contention assertion remained clean.
Author
Owner

The full runner now prepares the dedup phase after deletion: it restarts the server to reset the login limiter, reauthenticates the Owner, and creates three fresh member Users with new installation sessions. The corrected dedicated dedup campaign returned server alive at end: True and ==== ROUND 2 FINDINGS 0. I also moved dedup crash barriers to 5–7 because search chaos uses barrier 4 in the full run.

The full runner now prepares the dedup phase after deletion: it restarts the server to reset the login limiter, reauthenticates the Owner, and creates three fresh member Users with new installation sessions. The corrected dedicated dedup campaign returned `server alive at end: True` and `==== ROUND 2 FINDINGS 0`. I also moved dedup crash barriers to 5–7 because search chaos uses barrier 4 in the full run.
Author
Owner

Completed with #285 on job/adv-harness, final HEAD 781b14c13f64e41ff59ba3562a9a889f2701d45e.

The full runner now prepares a fresh late dedup roster and sessions, and coordinates dedup crash barriers separately from Search chaos. The corrected dedup-only campaign ended with ROUND 2 FINDINGS 0, timing ratio 1.34, and a live server. There are no remaining dedup findings. The full broad-round non-dedup evidence and gate output are in the final #285 report. Rust and web gates passed; the branch is pushed.

Completed with #285 on `job/adv-harness`, final HEAD `781b14c13f64e41ff59ba3562a9a889f2701d45e`. The full runner now prepares a fresh late dedup roster and sessions, and coordinates dedup crash barriers separately from Search chaos. The corrected dedup-only campaign ended with `ROUND 2 FINDINGS 0`, timing ratio 1.34, and a live server. There are no remaining dedup findings. The full broad-round non-dedup evidence and gate output are in the final #285 report. Rust and web gates passed; the branch is pushed.
kayg closed this issue 2026-09-28 11:05:53 +00:00
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
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#272
No description provided.