[issue3123] Push fails with no details if the server-side cache is corrupted

Martin Geisler bugs at mercurial.selenic.com
Tue Nov 22 12:13:23 CST 2011


New submission from Martin Geisler <mg at lazybytes.net>:

While pushing a large repository to a server, we somehow ended up with
corrupt files in the ~/.cache/largefiles folder on the server.

We're unsure how that happened, but it might have been triggered by a full
disk. We'll try to reproduce it later.

This bug report is about the message given to a client that pushes to such a
repository. It would be nice if we could tell a client that the server is in
trouble, or if there would be something about it in the server log file:

  $ echo "[extensions]" >> $HGRCPATH
  $ echo "largefiles =" >> $HGRCPATH

Create repositories:

  $ hg init test
  $ cd test
  $ echo foo > foo
  $ hg add --large foo
  $ hg commit -m foo

Corrupt the largefile in ~/.cache/largefiles:

  $ echo foobar > ~/.cache/largefiles/f1d2d2f924e986ac86fdf7b36c94bcdf32beec15

Serve an empty repository and try pushing into it:

  $ hg init ../empty
  $ hg serve -R ../empty -p $HGPORT -d --pid-file=hg.pid -E errors.log \
  >   --config 'web.allow_push=*' --config web.push_ssl=False
  $ cat hg.pid >> $DAEMON_PIDS

Try pushing:

  $ hg push http://localhost:$HGPORT/
  pushing to http://localhost:$HGPORT/
  searching for changes
  abort: remotestore: could not put
$TESTTMP/test/.hg/largefiles/f1d2d2f924e986ac86fdf7b36c94bcdf32beec15 to
remote store http://localhost:$HGPORT/
  [255]

Error log:

  $ cat errors.log

----------
messages: 18149
nosy: gward, kevingessner, mg, natosha
priority: bug
status: unread
title: Push fails with no details if the server-side cache is corrupted
topic: largefiles

____________________________________________________
Mercurial issue tracker <bugs at mercurial.selenic.com>
<http://mercurial.selenic.com/bts/issue3123>
____________________________________________________


More information about the Mercurial-devel mailing list