Page MenuHomePhabricator

transaction abort! when push a lot of changes with mercurial
Closed, DuplicatePublic

Description

I can't push a merged repository.

I have come with a merge of two unrelated repositories (by company needs) and now when I try to put the result of merging the two repositories into one of them in Phabricator it give me the following output:

hg push --new-branch 
pushing to ssh://vcs-user@phabricator.javieralfonso.com:2222/diffusion/WS/wps
searching for changes
remote: adding changesets
remote: transaction abort!
remote: rollback completed

I tried creating an empty repo, merged two simple repos and uploaded them without problems. So maybe the problem isn't the two origins stuff but the number of commits that are sent.

I have mercurial 3.8.3 in both sides (the server and my local machine).
phabricator 03403ca8b077015928d1b08afe929f9c45526edb (Fri, Jun 3)
arcanist 0249f90a9a4aa42da0823673a6ac8c620251d82a (Sat, May 21)
phutil 00c08511c862f2020efe96cce1b0c5a43491ac32 (Fri, Jun 3)

This is the output with --debug --traceback option:

pushing to ssh://vcs-user@phabricator.javieralfonso.com:2222/diffusion/NW/nueva-web/
running ssh vcs-user@phabricator.javieralfonso.com -p 2222 'hg -R diffusion/NW/nueva-web/ serve --stdio'
sending hello command
sending between command
remote: 345
remote: capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch stream bundle2=HG20%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024
remote: 1
query 1; heads
sending batch command
searching for changes
all remote heads known locally
preparing listkeys for "phases"
sending listkeys command
received listkey for "phases": 15 bytes
checking for updated bookmarks
preparing listkeys for "bookmarks"
sending listkeys command
received listkey for "bookmarks": 0 bytes
sending branchmap command
sending branchmap command
preparing listkeys for "bookmarks"
sending listkeys command
received listkey for "bookmarks": 0 bytes
2565 changesets found
list of changesets:
b75e2fbd190790bc5207d350bf89a5aaef69e617
...
33c60d7ae15f0967d3705c91e34320fbb6062349
sending unbundle command
bundle2-output-bundle: "HG20", 4 parts total
bundle2-output-part: "replycaps" 155 bytes payload
bundle2-output-part: "check:heads" streamed payload
bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
remote: adding changesets
remote: transaction abort!
remote: rollback completed
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 204, in _runcatch
    return _dispatch(req)
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 887, in _dispatch
    cmdpats, cmdoptions)
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 632, in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 1017, in _runcommand
    return checkargs()
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 978, in checkargs
    return cmdfunc()
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 884, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
  File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 1005, in check
    return func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/mercurial/extensions.py", line 204, in closure
    return func(*(args + a), **kw)
  File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 1005, in check
    return func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/hgext/mq.py", line 3519, in mqcommand
    return orig(ui, repo, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 1005, in check
    return func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/mercurial/commands.py", line 5944, in push
    opargs=opts.get('opargs'))
  File "/usr/lib/python2.7/dist-packages/mercurial/exchange.py", line 445, in push
    _pushbundle2(pushop)
  File "/usr/lib/python2.7/dist-packages/mercurial/exchange.py", line 858, in _pushbundle2
    reply = pushop.remote.unbundle(stream, ['force'], 'push')
  File "/usr/lib/python2.7/dist-packages/mercurial/wireproto.py", line 431, in unbundle
    stream = self._calltwowaystream('unbundle', cg, heads=heads)
  File "/usr/lib/python2.7/dist-packages/mercurial/sshpeer.py", line 315, in _calltwowaystream
    self._send(d)
  File "/usr/lib/python2.7/dist-packages/mercurial/sshpeer.py", line 335, in _send
    self.pipeo.write("%d\n" % len(data))
  File "/usr/lib/python2.7/dist-packages/mercurial/sshpeer.py", line 91, in write
    return self._call('write', data)
  File "/usr/lib/python2.7/dist-packages/mercurial/sshpeer.py", line 115, in _call
    return meth(data)
IOError: [Errno 32] Broken pipe
bundle2-generatorexit

Event Timeline

See https://secure.phabricator.com/T10382. I've mitigated by downgrading to 3.4.2 (some other version will probably work too, this just was the first one I tried)