# HG changeset patch # User Valentin Gatien-Baron # Date 2020-02-07 20:55:26 # Node ID 89d44cfcdeeb6c7a9e68a043488e63f812fb293b # Parent d8b53385b1bcae3b2d8db2a0bb777b0dd1b1e4ad tags: show how hg behaves if a tags cache entry is truncated I'm seeing an error of this form in production on the order of once a month. I'm not sure how it happens, but I suspect interrupting a pull might result in half written cache entries. Differential Revision: https://phab.mercurial-scm.org/D8094 diff --git a/tests/test-tags.t b/tests/test-tags.t --- a/tests/test-tags.t +++ b/tests/test-tags.t @@ -371,6 +371,26 @@ Extra junk data at the end should get ov 1970/01/01 00:00:00 bob @8dbfe60eff306a54259cfe007db9e330e7ecf866 (5000)> tags exited 0 after * seconds (glob) 1970/01/01 00:00:00 bob @8dbfe60eff306a54259cfe007db9e330e7ecf866 (5000)> blackbox -l 6 +Junk data + missing cache entries results in hg further corrupting the +cache, then failing. + + $ rm -f .hg/cache/tags2-visible + $ truncate .hg/cache/hgtagsfnodes1 -s -10 + $ hg debugtagscache | tail -2 + 4 0c192d7d5e6b78a714de54a2e9627952a877e25a 0c04f2a8af31de17fab7422878ee5a2dadbc943d + 5 8dbfe60eff306a54259cfe007db9e330e7ecf866 0c04f2a8af31de17fab7ffffffffffffffffffff + $ hg tags + abort: data/.hgtags.i@0c04f2a8af31: no match found! + [255] + $ hg debugtagscache | tail -2 + 4 0c192d7d5e6b78a714de54a2e9627952a877e25a 0c04f2a8af31de17fab7422878ee5a2dadbc943d + 5 8dbfe60eff306a54259cfe007db9e330e7ecf866 0c04f2a8af31de17fab7ffffffffffffffffffff +# fix up the cache + $ rm .hg/cache/hgtagsfnodes1 + $ hg tags -q + tip + bar + #if unix-permissions no-root Errors writing to .hgtags fnodes cache are silently ignored