Commit 6bb45df
fix(chaos): expect a permission-denied skip on unix in noaccess-file (#229)
Closes #218. The v2.5.0 tag's Chaos run failed on `noaccess-file` on
BOTH ubuntu and macOS with:
```
scenario errored: exactly one local.io_error (the unreadable file); got 0
```
## Why
#195 deliberately reclassified unix permission-denied opens:
EACCES/EPERM now produce a graceful SKIP carrying
`local.permission_denied` (a WARN, not counted in the cycle's error
total) instead of failing as `local.io_error`. That was the point - on
macOS a TCC denial is the common case, and "Driven hit a disk error"
sent users to check a healthy disk. Windows keeps ERROR_ACCESS_DENIED as
`local.io_error`, because elevation can genuinely read around some ACL
denials.
`posix-mode-000` was updated in #195. This sibling row was missed.
## Why it went unnoticed
CI runs the chaos jobs on Windows, where the row still passes. So the
suite was green while the row was broken for every unix contributor -
and it only surfaced when the `v*` tag fired the full matrix. That is
exactly the failure mode #192 fixed for the append-only-log flake: a row
nobody can get green locally is a row everyone learns to ignore.
## The fix
Both the run-time assertion and the declared `ExpectedOutcome` are now
per-platform. They had to move together: the harness compares the
declared outcome against the codes the run actually observed, so fixing
only the assertion left it failing with `expected graceful failure with
local.io_error but observed codes: [LocalPermissionDenied]`.
## Evidence
- The row passes 5/5 consecutive runs on macOS.
- Full hermetic suite locally: **63 PASS / 31 SKIP / 0 FAIL** - the
first clean local chaos run on this machine.
- **Negative control:** restoring the old `io_errors == 1` expectation
makes it fail again, so the new assertion is load-bearing rather than
self-confirming.
Note this does not change any product behaviour - only what the harness
expects. The skip-and-report path it now pins is the one #195 shipped
and that the GUI release gate confirmed end to end (a chmod 000 file
produced `reason=Denied code=local.permission_denied` and raised the
Full Disk Access banner).
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>1 parent 6dd0cf9 commit 6bb45df
1 file changed
Lines changed: 58 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
52 | 52 | | |
53 | 53 | | |
54 | 54 | | |
55 | | - | |
| 55 | + | |
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
| |||
539 | 539 | | |
540 | 540 | | |
541 | 541 | | |
542 | | - | |
543 | | - | |
544 | | - | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
545 | 548 | | |
546 | 549 | | |
547 | 550 | | |
| |||
551 | 554 | | |
552 | 555 | | |
553 | 556 | | |
554 | | - | |
| 557 | + | |
555 | 558 | | |
556 | 559 | | |
557 | 560 | | |
| |||
604 | 607 | | |
605 | 608 | | |
606 | 609 | | |
| 610 | + | |
607 | 611 | | |
608 | 612 | | |
609 | 613 | | |
| |||
615 | 619 | | |
616 | 620 | | |
617 | 621 | | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
618 | 631 | | |
619 | 632 | | |
620 | 633 | | |
| |||
623 | 636 | | |
624 | 637 | | |
625 | 638 | | |
626 | | - | |
| 639 | + | |
627 | 640 | | |
| 641 | + | |
628 | 642 | | |
629 | | - | |
630 | | - | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
631 | 650 | | |
632 | 651 | | |
633 | 652 | | |
| |||
657 | 676 | | |
658 | 677 | | |
659 | 678 | | |
660 | | - | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
661 | 684 | | |
662 | 685 | | |
663 | 686 | | |
664 | 687 | | |
665 | | - | |
| 688 | + | |
| 689 | + | |
666 | 690 | | |
667 | 691 | | |
668 | 692 | | |
| |||
674 | 698 | | |
675 | 699 | | |
676 | 700 | | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
677 | 707 | | |
678 | | - | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
| 711 | + | |
| 712 | + | |
679 | 713 | | |
680 | 714 | | |
681 | 715 | | |
| |||
1115 | 1149 | | |
1116 | 1150 | | |
1117 | 1151 | | |
| 1152 | + | |
| 1153 | + | |
| 1154 | + | |
| 1155 | + | |
| 1156 | + | |
| 1157 | + | |
1118 | 1158 | | |
1119 | 1159 | | |
1120 | 1160 | | |
1121 | 1161 | | |
1122 | 1162 | | |
1123 | 1163 | | |
| 1164 | + | |
| 1165 | + | |
| 1166 | + | |
| 1167 | + | |
| 1168 | + | |
| 1169 | + | |
| 1170 | + | |
1124 | 1171 | | |
1125 | 1172 | | |
1126 | 1173 | | |
| |||
0 commit comments