[issue1644] stresstest over the wire with dispatch leads to corrupted repository

Arne Babenhauserheide mercurial-bugs at selenic.com
Fri May 1 03:12:49 CDT 2009


New submission from Arne Babenhauserheide <arne_bab at web.de>:

The heavy test done with the distributed_hg_burner lead to a corrupted
repository. 

The repository was served via "hg serve" and many clients pulled, merged,
pushed and committed via mercurial.dispatch.dispatch(["command"]). The
corruption occured in reiserfs as well as in tmpfs. 

To test it yourself, you can run the test script locally: 

Set up an empty repo and share it with "hg serve -p 6666". 

$ hg clone http://bitbucket.org/ArneBab/distributed_hg_burner/
$ cd distributed_hg_burner
# for as many clients as you want to use, run (CLIENT = some id of the client)
$ python burn.py --url "http://127.0.0.1:6666" --target-dir "/tmp/repo-CLIENT"

And do put the server and the client onto a tmpfs (ramdisk). In GNU/Linux you
get a tmpfs via 
sudo mount -t tmpfs -o size=400M,mode=0666 tmpfs TARGET_DIR

(just included to make it unecessary for people to read this up, if they don't
have the command at hand right now)


Note: The test burn_simple.py which uses actual calls to hg instead of dispatch
didn't yet lead to a corruption. It is considerably slower, though. 

burn_simple.py is available in the same repo as burn.py and takes the same
options.

----------
files: corrupted-repo-dispatch-serve.tar
messages: 9240
nosy: ArneBab
priority: bug
status: unread
title: stresstest over the wire with dispatch leads to corrupted repository

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


More information about the Mercurial-devel mailing list