[Xen-devel] hg 0.7 released

Matt Mackall mpm at selenic.com
Tue Sep 20 20:14:37 CDT 2005

On Tue, Sep 20, 2005 at 06:07:34PM -0700, Kip Macy wrote:
> nifty - but 0.7 is not backward compatible with 0.6b:
> %hg clone http://xenbits.xensource.com/xen-unstable.hg 
> requesting all changes
> adding changesets
> adding manifests
> adding file changes
> added 6917 changesets with 0 changes to 0 files
> ** unknown exception encountered, details follow
> ** report bug details to mercurial at selenic.com

Not so hasty. The bug is in fact that xenbits is sometimes running out
of memory. Other times it works just fine. Here are the relevant bits
from my diagnosis this morning:


And then I added exception handling to the pull code, so that it now
does this:

abort: premature EOF reading chunk (got 75478 bytes, expected

That expected number says there's probably something else in the
stream. Firing up Ethereal and tracing a connection shows:

<!-- The above is a description of an error in a Python program,
     for a Web browser because the 'cgitb' module was enabled.  In
     case you
     are not reading this in a Web browser, here is the original

Traceback (most recent call last):
  File "/var/www/html/xen-unstable.hg", line 9, in ?
  File "/usr/local/hg-0.6c/lib/python/mercurial/hgweb.py", line 701,
  in run
    chunk = f.read(4096)
  File "/usr/local/hg-0.6c/lib/python/mercurial/hg.py", line 1442, in
    self.buf += self.g.next()
  File "/usr/local/hg-0.6c/lib/python/mercurial/hg.py", line 1469, in
    for y in self.manifest.group(linkmap): yield y
  File "/usr/local/hg-0.6c/lib/python/mercurial/revlog.py", line 433,
  in group
    chunks[r] = decompress(data[pos: pos + l])
  File "/usr/local/hg-0.6c/lib/python/mercurial/revlog.py", line 33,
  in decompress
    if t == 'x': return zlib.decompress(bin)


So the server ran out of memory trying to decompress a manifest.

Mathematics is the supreme nostalgia of our time.

More information about the Mercurial mailing list