Artifact 5547531c4ba75432e747aa516fee544546360fa2341520359e74eb5a47202782:
- File
src/sync.zig
-
2026-08-01 12:06:56
— part of check-in
[879b867bb1]
on branch issue22-diagnostics
— sync: drop the O(store) asserts from the clone answer path
Under runtime_safety (ReleaseSafe -- the shipped build) emitCloneReply reconstructed every served artifact and its delta basis just to assert a declared size. That pushed a clone round past serve's 5s per-connection deadline, which cancels mid-answer; the in-flight pread then failed and the peer got HTTP 500 on a healthy store. Issue #22.
zit verify checks the same properties on demand, which is where O(store) verification belongs.
Also names the failure server-side: serve collapses every AnswerError into a bare 500, so serveAnswer now logs which one.
Reclone verified green: wapp 1038, althttpd 1695, pikchr 2842, libfossil 17218 (18 rounds). test 2327/2327, gate, e2e 671/671, dst 6x1000. (user: dmestas, size: 342380) [annotate] [blame] [check-ins using]
-
2026-08-01 14:46:29
— part of check-in
[94bebf57f1]
on branch trunk
— merge issue22-diagnostics: reclone got HTTP 500 on a healthy store
ReleaseSafe asserts made the clone answer O(store), and serve's 5s deadline raced read + answer + write as one unit -- so a slow answer was cancelled mid-flight and the dead pread surfaced as error.Storage.
Asserts gone (zit verify covers them); the deadline now races read and write separately. Not scale-dependent -- machine speed vs a wall clock.
Stalled peer still cut at 5.0s. test/gate/e2e/dst green. (user: dmestas, size: 342380) [annotate] [blame] [check-ins using]
-
2026-08-01 12:06:56
— part of check-in
[879b867bb1]
on branch issue22-diagnostics
— sync: drop the O(store) asserts from the clone answer path