From ebcb870ac8ea962fd705068c7aaff935c5a5c15b Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Wed, 30 Sep 2026 12:56:58 -0300 Subject: The 9P monkey does not count a file watch's notice as a failed write's msg Seed 121 flagged a refused write to pane 2's dirty file because a `msg 3 deleted on disk (Save writes it again)` arrived in the same window. That notice was from an earlier host rm of pane 3's file, said whenever the watch noticed it. It did not reproduce on replay, since it depends on when the watch fires. The one-failure rule now leaves out the watch's deleted-on-disk and changed-on-disk notices. Any other msg with a failed write still fails the rule. Co-Authored-By: Claude Opus 5.5 --- test/monkey9p.py | 3 +++ 1 file changed, 3 insertions(+) (limited to 'test/monkey9p.py') diff --git a/test/monkey9p.py b/test/monkey9p.py index 7ab6cb0c..4d190bbc 100644 --- a/test/monkey9p.py +++ b/test/monkey9p.py @@ -1518,6 +1518,9 @@ def one_failure_rule(ctx, res): # line cut across Twrites runs a piece a Twrite, and a piece that ran # (a Save) says so while a later one is refused. succeeded = [w for w in writes if w[2] is True and w[0] == 'write'] + # A file watch's notice (` deleted on disk ...`, `changed on + # disk`) is the host's news, said whenever it arrives: no write's. + msgs = [m for m in msgs if ' deleted on disk (' not in m and ' changed on disk (' not in m] if failed and msgs and not succeeded: return f'a failed write also logged msg: {msgs}; failed={[(w[1], w[3]) for w in failed]}' return None -- cgit v1.3