D8094: tags: show how hg behaves if a tags cache entry is truncated
valentin.gatienbaron (Valentin Gatien-Baron)
phabricator at mercurial-scm.org
Fri Feb 7 21:35:15 UTC 2020
valentin.gatienbaron created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
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.
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D8094
AFFECTED FILES
tests/test-tags.t
CHANGE DETAILS
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 @@
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 at 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
To: valentin.gatienbaron, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list