diff -r 9aeb9e2d28a7 -r 3a333a582d7b tests/test-remotefilelog-corrupt-cache.t --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-remotefilelog-corrupt-cache.t Thu Sep 27 13:03:19 2018 -0400 @@ -0,0 +1,73 @@ + $ PYTHONPATH=$TESTDIR/..:$PYTHONPATH + $ export PYTHONPATH + + $ . "$TESTDIR/remotefilelog-library.sh" + + $ hginit master + $ cd master + $ cat >> .hg/hgrc < [remotefilelog] + > server=True + > EOF + $ echo x > x + $ echo y > y + $ echo z > z + $ hg commit -qAm xy + + $ cd .. + + $ hgcloneshallow ssh://user@dummy/master shallow -q + 3 files fetched over 1 fetches - (3 misses, 0.00% hit ratio) over *s (glob) + $ cd shallow + +Verify corrupt cache handling repairs by default + + $ hg up -q null + $ chmod u+w $CACHEDIR/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/1406e74118627694268417491f018a4a883152f0 + $ echo x > $CACHEDIR/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/1406e74118627694268417491f018a4a883152f0 + $ hg up tip + 3 files updated, 0 files merged, 0 files removed, 0 files unresolved + 1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob) + +Verify corrupt cache error message + + $ hg up -q null + $ cat >> .hg/hgrc < [remotefilelog] + > validatecache=off + > EOF + $ chmod u+w $CACHEDIR/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/1406e74118627694268417491f018a4a883152f0 + $ echo x > $CACHEDIR/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/1406e74118627694268417491f018a4a883152f0 + $ hg up tip 2>&1 | egrep "^RuntimeError" + RuntimeError: unexpected remotefilelog header: illegal format + +Verify detection and remediation when remotefilelog.validatecachelog is set + + $ cat >> .hg/hgrc < [remotefilelog] + > validatecachelog=$PWD/.hg/remotefilelog_cache.log + > validatecache=strict + > EOF + $ chmod u+w $CACHEDIR/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/1406e74118627694268417491f018a4a883152f0 + $ echo x > $CACHEDIR/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/1406e74118627694268417491f018a4a883152f0 + $ hg up tip + 3 files updated, 0 files merged, 0 files removed, 0 files unresolved + 1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob) + $ cat .hg/remotefilelog_cache.log + corrupt $TESTTMP/hgcache/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/1406e74118627694268417491f018a4a883152f0 during contains + +Verify handling of corrupt server cache + + $ rm -f ../master/.hg/remotefilelogcache/y/076f5e2225b3ff0400b98c92aa6cdf403ee24cca + $ touch ../master/.hg/remotefilelogcache/y/076f5e2225b3ff0400b98c92aa6cdf403ee24cca + $ clearcache + $ hg prefetch -r . + 3 files fetched over 1 fetches - (3 misses, 0.00% hit ratio) over *s (glob) + $ test -s ../master/.hg/remotefilelogcache/y/076f5e2225b3ff0400b98c92aa6cdf403ee24cca + $ hg debugremotefilelog $CACHEDIR/master/95/cb0bfd2977c761298d9624e4b4d4c72a39974a/076f5e2225b3ff0400b98c92aa6cdf403ee24cca + size: 2 bytes + path: $TESTTMP/hgcache/master/95/cb0bfd2977c761298d9624e4b4d4c72a39974a/076f5e2225b3ff0400b98c92aa6cdf403ee24cca + key: 076f5e2225b3 + + node => p1 p2 linknode copyfrom + 076f5e2225b3 => 000000000000 000000000000 f3d0bb0d1e48