[issue2337] Corruption using parentdelta

Dan Villiom Podlaski Christiansen bugs at mercurial.selenic.com
Wed Aug 18 10:30:48 UTC 2010


New submission from Dan Villiom Podlaski Christiansen <danchr at gmail.com>:

I just wanted to try out the new parentdelta support on a conversion using 
hgsubversion that resulted in a rather huge repository. (I tried it on the 
result of a previous conversion: The regular result was about 2GB and went 
down to about 400MB after using the shrink extension on some large files. A 
parentdelta clone of it was ~200MB.)

Unfortunately, the conversion died about halfway through :( To reproduce, 
install hgsubversion, download and unarchive the tarball at [1] and run the 
following commands:

$ hg tip
abort: Invalid argument
$ hg rollback
rolling back to revision 41336 (undo commit)
$ hg svn rebuildmeta
$ hg pull
pulling from http://svn.python.org/projects/python/
[r46973] jackilyn.hoxworth: Created folder remotely
[r46974] jackilyn.hoxworth: made a copy                                         
[r46976] jackilyn.hoxworth: Added a file remotely                               
transaction abort!                                                              
rollback completed                                                              
abort: Invalid argument
$ hg tip --traceback
Traceback (most recent call last):
<snip>
  File "/opt/python/lib/python2.7/site-packages/mercurial/revlog.py", line 
1090, in revision
    self._loadindex(base, rev + 1)
  File "/opt/python/lib/python2.7/site-packages/mercurial/revlog.py", line 
508, in _loadindex
    self.index.p.loadindex(start, end)
  File "/opt/python/lib/python2.7/site-packages/mercurial/revlog.py", line 
266, in loadindex
    self.loadblock(blockstart, blocksize)
  File "/opt/python/lib/python2.7/site-packages/mercurial/revlog.py", line 
181, in loadblock
    self.dataf.seek(blockstart)
IOError: [Errno 22] Invalid argument
abort: Invalid argument

I investigated a bit, and it turns out that this is failing because 
‘blockstart’ ends up being a negative value.

[1] <http://dl.dropbox.com/u/6706818/python-parentdelta-corrupt.tar> ~100MB

----------
messages: 13382
nosy: danchr, in3xes
priority: bug
status: unread
title: Corruption using parentdelta

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


More information about the Mercurial-devel mailing list