summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/monkey9p.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/test/monkey9p.py b/test/monkey9p.py
index ee0b0ebc..7ab6cb0c 100644
--- a/test/monkey9p.py
+++ b/test/monkey9p.py
@@ -1514,7 +1514,11 @@ def one_failure_rule(ctx, res):
if not lo <= len(errs) <= hi:
return (f'{len(failed)} failed write(s) logged {len(errs)} err record(s) '
f'(allowed {lo}..{hi}); failed={[(w[0], w[1], w[3]) for w in failed]} window={res.window}')
- if failed and msgs:
+ # A msg is a failed write's only when no Twrite of the op succeeded: a
+ # 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']
+ 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