Commit e6bd625
fix(chaos): drain due pending-ops + document Windows atomic-replace non-detection
Second round of CI-speed-independence for two s3.6 soak rows that still failed
on the slower GH runners:
- rename-storm hit the s6.3 no-pending-ops-leak check: a rename racing the final
pre-stop cycle enqueues a re-queued create op at scheduled_for == now == 0 on
the soak harness's FROZEN FakeClock (an immediate retry, no backoff). A
`files_done==0 && trashes_done==0`-only drain stop left that due op behind and
flagged it as a leak. drain_to_steady_state now also drains while any DUE
pending op remains (cap raised 16 -> 24), so a cycle that only drains such an
op is not mistaken for steady state.
- replace-via-atomic-rename saw NO detection code on Windows CI. Detection there
is genuinely INFEASIBLE: fstat_identity reports inode 0 on stable Rust (no
file-index syscall), AND a rename OVER a file the executor holds open keeps
that open handle bound to the original file object, so neither the inode-swap
check nor the post-upload (size, ctime) check on the handle sees any delta -
the replace lands as an ordinary edit on the next scan. That is correct, safe
behaviour; the s8 property that actually protects the user ("no false/corrupt
synced commit; committed bytes == current local bytes") is still enforced by
the no-data-loss invariant. So require detection on Unix (real inode identity)
and DOCUMENT the no-detection outcome on Windows rather than fail it. The
mutator body also grows monotonically so any landed replacement is a
guaranteed size delta where the size/ctime path CAN fire.
Both verified locally 5x; run-all stays 51 PASS / 34 SKIP / 0 FAIL.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J8meqeTo8bcZ3zjgKjBnJ41 parent 2a42070 commit e6bd625
1 file changed
Lines changed: 61 additions & 12 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
427 | 427 | | |
428 | 428 | | |
429 | 429 | | |
430 | | - | |
431 | | - | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
432 | 442 | | |
433 | | - | |
| 443 | + | |
434 | 444 | | |
435 | 445 | | |
436 | | - | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
437 | 456 | | |
438 | 457 | | |
439 | 458 | | |
| |||
1243 | 1262 | | |
1244 | 1263 | | |
1245 | 1264 | | |
1246 | | - | |
| 1265 | + | |
| 1266 | + | |
| 1267 | + | |
| 1268 | + | |
| 1269 | + | |
| 1270 | + | |
| 1271 | + | |
| 1272 | + | |
| 1273 | + | |
| 1274 | + | |
| 1275 | + | |
| 1276 | + | |
| 1277 | + | |
| 1278 | + | |
| 1279 | + | |
| 1280 | + | |
| 1281 | + | |
| 1282 | + | |
| 1283 | + | |
| 1284 | + | |
| 1285 | + | |
| 1286 | + | |
| 1287 | + | |
| 1288 | + | |
| 1289 | + | |
| 1290 | + | |
1247 | 1291 | | |
1248 | | - | |
1249 | | - | |
1250 | | - | |
| 1292 | + | |
| 1293 | + | |
| 1294 | + | |
1251 | 1295 | | |
1252 | 1296 | | |
1253 | 1297 | | |
1254 | | - | |
1255 | | - | |
1256 | | - | |
| 1298 | + | |
| 1299 | + | |
| 1300 | + | |
1257 | 1301 | | |
1258 | 1302 | | |
1259 | 1303 | | |
1260 | 1304 | | |
1261 | 1305 | | |
1262 | 1306 | | |
1263 | | - | |
| 1307 | + | |
1264 | 1308 | | |
1265 | 1309 | | |
| 1310 | + | |
| 1311 | + | |
| 1312 | + | |
| 1313 | + | |
| 1314 | + | |
1266 | 1315 | | |
1267 | 1316 | | |
1268 | 1317 | | |
| |||
0 commit comments