| Comment: | fix(sync): send the clone reply and cluster igots in place (#401)
page_xfer writes the clone batch, its catalog, clone_seqno and push card at the clone card and the req-clusters igots at the pragma, so any later reset discards them (sync-protocol-01 Section 10.1). They were sent after the card loop and survived a bad command or refused push. The clone snapshot cookie is now read ahead of the loop. Tracked in #389. |
|---|---|
| Timelines: | family | ancestors | descendants | both | main | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
65783dbd3e0008353c0385e8438ba998 |
| User & Date: | [email protected] on 2026-10-13 06:42:32.000 |
| Other Links: | branch diff | manifest | tags |
|
2026-10-13
| ||
| 07:12 |
fix(sync): end card processing when a pushed file fails its handler (#402)
* fix(sync): end card processing when a pushed file fails its handler sync-protocol-01 Section 5.2 has a file or cfile handler failure reset the reply, send the error and stop parsing, as fossil's xfer_accept_file path does. A wrong hash, a bad HASH or DELTASRC and a storage failure now break the card loop; a file delta with a held basis is verified before it is stored (Section 7.5). Tracked in #390. * fix(sync): model a bad file name in the clone-fatal probe Tracked in #390. check-in: c36a69e366 user: [email protected] tags: main, trunk | |
| 06:42 |
fix(sync): send the clone reply and cluster igots in place (#401)
page_xfer writes the clone batch, its catalog, clone_seqno and push card at the clone card and the req-clusters igots at the pragma, so any later reset discards them (sync-protocol-01 Section 10.1). They were sent after the card loop and survived a bad command or refused push. The clone snapshot cookie is now read ahead of the loop. Tracked in #389. check-in: 65783dbd3e user: [email protected] tags: main, trunk | |
| 06:34 |
fix(sync): apply ci-lock and ci-unlock for any requester (#400)
sync-protocol-01 Section 9.4 applies both pragmas with no Write test, as fossil's page_xfer does. The leaf sweep before each lock write bounds the lock table. nobody's lock row stores a null login; ci-lock-fail fossilizes LOGIN and names a login-less holder nobody. lock-timeout is read as db_get_int reads it. Tracked in #392. check-in: e44a484403 user: [email protected] tags: main, trunk | |