transaction abort on clone command

430 views
Skip to first unread message

Thomas Porschberg

unread,
May 25, 2010, 1:56:35 AM5/25/10
to merc...@selenic.com
Hi,

I'm new to mercurial.
I have Linux and installed
Mercurial Distributed SCM (version 1.5.1)

When I try to do a

hg --verbose --traceback clone <my-project-URL>

I get:
requesting all changes
adding changesets
adding manifests
adding file changes
transaction abort!
rollback completed
Traceback (most recent call last):
File "/usr/lib/python2.5/site-packages/mercurial/dispatch.py", line
47, in _ru ncatch
return _dispatch(ui, args)
File "/usr/lib/python2.5/site-packages/mercurial/dispatch.py", line
467, in _d ispatch
return runcommand(lui, repo, cmd, fullargs, ui, options, d)
File "/usr/lib/python2.5/site-packages/mercurial/dispatch.py", line
337, in ru ncommand
ret = _runcommand(ui, options, cmd, d)
File "/usr/lib/python2.5/site-packages/mercurial/dispatch.py", line
518, in _r uncommand
return checkargs()
File "/usr/lib/python2.5/site-packages/mercurial/dispatch.py", line
472, in ch eckargs
return cmdfunc()
File "/usr/lib/python2.5/site-packages/mercurial/dispatch.py", line
466, in <l
ambda>
d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
File "/usr/lib/python2.5/site-packages/mercurial/util.py", line 401,
in check return func(*args, **kwargs)
File "/usr/lib/python2.5/site-packages/mercurial/commands.py", line
681, in cl one
branch=opts.get('branch'))
File "/usr/lib/python2.5/site-packages/mercurial/hg.py", line 315, in
clone dest_repo.clone(src_repo, heads=revs, stream=stream)
File "/usr/lib/python2.5/site-packages/mercurial/localrepo.py", line
2201, in clone
return self.pull(remote, heads)
File "/usr/lib/python2.5/site-packages/mercurial/localrepo.py", line
1475, in pull
return self.addchangegroup(cg, 'pull', remote.url())
File "/usr/lib/python2.5/site-packages/mercurial/localrepo.py", line
2072, in addchangegroup
if fl.addgroup(chunkiter, revmap, trp) is None:
File "/usr/lib/python2.5/site-packages/mercurial/revlog.py", line
1230, in add group
for chunk in revs:
File "/usr/lib/python2.5/site-packages/mercurial/changegroup.py",
line 31, in chunkiter
c = getchunk(source)
File "/usr/lib/python2.5/site-packages/mercurial/changegroup.py",
line 24, in getchunk
% (len(d), l - 4))
Abort: premature EOF reading chunk (got 79792 bytes, expected 95136)
abort: premature EOF reading chunk (got 79792 bytes, expected 95136)


This error is reproducible and seems independent from a specific
version.
Should I create a special mercurial group or something similar?

Best regards
Thomas


--
_____________________________________________________

Thomas Porschberg
Otto Group · GroupTechnologyPartner - Dresden (GTP)
Softwareentwickler · Lokale Logistik · FI-IS-LL

GroupTechnologyPartner - Dresden GmbH · Freiberger Straße 35 · 01067
Dresden Telefon +49 (0) 351 497 23 158 · Fax +49 (0) 351 497 23 119
porsc...@osp-dd.de · www.ottogroup.com <http://www.ottogroup.com/>
_____________________________________________________
AG Dresden, HRB 2475
Geschäftsführer: Dr. Thomas Tribius, Martin Mildner
_______________________________________________
Mercurial mailing list
Merc...@selenic.com
http://selenic.com/mailman/listinfo/mercurial

--
You received this message because you are subscribed to the Google Groups "mercurial" group.
To post to this group, send email to mercuria...@googlegroups.com.
To unsubscribe from this group, send email to mercurial_gene...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/mercurial_general?hl=en.

Matt Mackall

unread,
May 25, 2010, 2:04:13 PM5/25/10
to Thomas Porschberg, merc...@selenic.com
On Tue, 2010-05-25 at 07:56 +0200, Thomas Porschberg wrote:
> Hi,
>
> I'm new to mercurial.
> I have Linux and installed
> Mercurial Distributed SCM (version 1.5.1)
>
> When I try to do a
>
> hg --verbose --traceback clone <my-project-URL>
...

> abort: premature EOF reading chunk (got 79792 bytes, expected 95136)

It aborted because the server hung up in the middle. In other words, the
problem is on your server. Check your logs and check for timeouts and
resource limits.

--
Mathematics is the supreme nostalgia of our time.

Thomas Porschberg

unread,
May 26, 2010, 2:55:19 AM5/26/10
to merc...@selenic.com
Am Tue, 25 May 2010 13:04:13 -0500
schrieb Matt Mackall <m...@selenic.com>:

> On Tue, 2010-05-25 at 07:56 +0200, Thomas Porschberg wrote:
> > Hi,
> >
> > I'm new to mercurial.
> > I have Linux and installed
> > Mercurial Distributed SCM (version 1.5.1)
> >
> > When I try to do a
> >
> > hg --verbose --traceback clone <my-project-URL>
> ...
> > abort: premature EOF reading chunk (got 79792 bytes, expected 95136)
>
> It aborted because the server hung up in the middle. In other words,
> the problem is on your server. Check your logs and check for timeouts
> and resource limits.
>

Thank you. I checked the server error-log and found a MemoryError.

>snip

172.29.101.158 - - [26/May/2010 08:47:37] Exception happened during
processing request '/cobra.dev?bases=0000000000000000000000000000000000
000000&cmd=changegroupsubset&heads=50f9c49b4602a548298ed9380257fb2a259da20e+b955b1f8114ff33305cd3ade13ea8c5b8eee6578+dac2f1a64979ef2346b47e
c661384fbd279bf536+2a6b3eee0620d6bca08ce41098dd971289fd403a+5b58bb2f0e5ddcd70cc457ef31cb79f7eae947fe+821c7347ed8ca563bb23aefc050b6e514ea361
6d': Traceback (most recent call last):
File "/home/cobra/lib/python/mercurial/hgweb/server.py", line 67, in
do_POST self.do_write()
File "/home/cobra/lib/python/mercurial/hgweb/server.py", line 60, in
do_write self.do_hgweb()
File "/home/cobra/lib/python/mercurial/hgweb/server.py", line 124, in
do_hgweb for chunk in self.server.application(env,
self._start_response): File
"/home/cobra/lib/python/mercurial/hgweb/protocol.py", line 104, in
changegroupsubset chunk = f.read(4096) File
"/home/cobra/lib/python/mercurial/util.py", line 925, in read for chunk
in self.iter: File "/home/cobra/lib/python/mercurial/localrepo.py",
line 1997, in gengroup for chnk in filerevlog.group(nodeiter, lookup):
File "/home/cobra/lib/python/mercurial/revlog.py", line 1161, in group
d = self.revision(nb)
File "/home/cobra/lib/python/mercurial/revlog.py", line 996, in
revision text = self._chunk(base)
File "/home/cobra/lib/python/mercurial/revlog.py", line 958, in _chunk
return decompress(self._chunkraw(rev, rev))
File "/home/cobra/lib/python/mercurial/revlog.py", line 108, in
decompress return _decompress(bin)
MemoryError

>snip

What should I do?
The error is reproducible for me but other users can execute a
clone-command successful. How is it possible? If it is a server problem
then it should affect *all* clients, right?

Best regards
Thomas

--
_____________________________________________________

Thomas Porschberg
Otto Group · GroupTechnologyPartner - Dresden (GTP)
Softwareentwickler · Lokale Logistik · FI-IS-LL

GroupTechnologyPartner - Dresden GmbH · Freiberger Straße 35 · 01067
Dresden Telefon +49 (0) 351 497 23 158 · Fax +49 (0) 351 497 23 119
porsc...@osp-dd.de · www.ottogroup.com <http://www.ottogroup.com/>
_____________________________________________________
AG Dresden, HRB 2475
Geschäftsführer: Dr. Thomas Tribius, Martin Mildner

Thomas Porschberg

unread,
May 27, 2010, 2:27:35 AM5/27/10
to merc...@selenic.com
Am Wed, 26 May 2010 08:55:19 +0200
schrieb Thomas Porschberg <porsc...@osp-dd.de>:

I have to correct myself. The error is reproducible for *all* clients.
Still the question: What can I do to analyze and avoid it?

Thomas Porschberg

unread,
May 28, 2010, 1:53:18 AM5/28/10
to merc...@selenic.com
Am Thu, 27 May 2010 08:27:35 +0200
schrieb Thomas Porschberg <porsc...@osp-dd.de>:

A clone via ssh works:

hg clone --remotecmd=/home/myproject/bin/hg.sh
ssh://myproject@machine//opt/myproject/programs/current myproject

So the memory problem stems from

/usr/bin/python /home/myproject/bin/hg serve -d
-A /home/myproject/lib/mercurial/standard.out
-E /home/myproject/lib/mercurial/error.out -p

Python 2.5.1
Mercurial Distributed SCM (version 1.3.1)

Still I would like to see a working http-clone.

Reply all
Reply to author
Forward
0 new messages