(no subject)

Mark Williamson maw48 at hermes.cam.ac.uk
Tue Nov 8 21:55:51 UTC 2005


Hi all,

It turns out that my Xen development repository is almost impossible to 
clone but I've no idea what I've done to upset things.  I can take a look 
at what might be causing it, but I hoped someone here might have some 
pointers...

Symptoms:
Cloning over HTTP fails usually (not always).  hg verify doesn't complain 
about anything on the original, nor on the clone (when it succeeds).  My 
private copy of the repository can be cloned locally, and can push happily 
to the Xenbits hosting server over SSH.  The only problem comes when other 
people try to do a clone from that server.

The repository is at http://xenbits.xensource.com/maw/xenfs.hg for anyone 
who wants to try for themselves.  That server runs hg 0.7.  I'm running 
today's tip on my local box.

TIA,
Mark

Shown below is the output from three successive clones over HTTP:

[mwilli2 at equilibrium hg]$ hg clone http://xenbits.xensource.com/maw/xenfs.hg xenfs-test.hg
requesting all changes
adding changesets
adding manifests
adding file changes
added 6971 changesets with 70163 changes to 7211 files

# OK, this time it worked.  This repo hg verify'ed OK.  But then...

[mwilli2 at equilibrium hg]$ hg clone http://xenbits.xensource.com/maw/xenfs.hg xenfs-test2.hg
requesting all changes
adding changesets
Segmentation fault

# I've seen that a couple of times.  But then...

[mwilli2 at equilibrium hg]$ hg clone http://xenbits.xensource.com/maw/xenfs.hg xenfs-test3.hg
requesting all changes
adding changesets
** unknown exception encountered, details follow
** report bug details to mercurial at selenic.com
Traceback (most recent call last):
   File "/usr/bin/hg", line 13, in ?
     commands.run()
   File "/usr/lib/python2.4/site-packages/mercurial/commands.py", line 
2397, in run
     sys.exit(dispatch(sys.argv[1:]))
   File "/usr/lib/python2.4/site-packages/mercurial/commands.py", line 
2568, in dispatch
     return d()
   File "/usr/lib/python2.4/site-packages/mercurial/commands.py", line 
2555, in <lambda>
     d = lambda: func(u, *args, **cmdoptions)
   File "/usr/lib/python2.4/site-packages/mercurial/commands.py", line 733, 
in clone
     repo.pull(other, heads = revs)
   File "/usr/lib/python2.4/site-packages/mercurial/localrepo.py", line 
898, in pull
     return self.addchangegroup(cg)
   File "/usr/lib/python2.4/site-packages/mercurial/localrepo.py", line 
1284, in addchangegroup
     cn = self.changelog.addgroup(getgroup(), csmap, tr, 1) # unique
   File "/usr/lib/python2.4/site-packages/mercurial/revlog.py", line 811, 
in addgroup
     text = self.patches(text, [delta])
   File "/usr/lib/python2.4/site-packages/mercurial/revlog.py", line 462, 
in patches
     return mdiff.patches(t, pl)
MemoryError
transaction abort!
rollback completed
[mwilli2 at equilibrium hg]$

# Oh dear!

----------------------------------

"Boing!  Init 0" said Zebedee




More information about the Mercurial mailing list