Closed Bug 1131075 Opened 9 years ago Closed 9 years ago

big long traceback when trying to push on a closed tree

Categories

(Developer Services :: Mercurial: hg.mozilla.org, defect)

x86_64
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: bhearsum, Unassigned)

Details

I tried to push to a closed tree today, and I got rightly rejected. However, there was a big honkin' traceback that seemed out of place:
  hg push -r 259479 ssh://hg.mozilla.org/integration/mozilla-inbound
pushing to ssh://hg.mozilla.org/integration/mozilla-inbound
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 4 changes to 4 files
remote: Tree mozilla-inbound is CLOSED! (https://treestatus.mozilla.org/mozilla-inbound?format=json) - bustage
remote: 
remote: 
remote: ************************** ERROR ****************************
remote: To push despite the closed tree, include "CLOSED TREE" in your push comment
remote: *************************************************************
remote: 
remote: 
remote: transaction abort!
remote: rollback completed
remote: abort: pretxnchangegroup.a_treeclosure hook failed
remote: ** Unknown exception encountered with possibly-broken third-party extension hgwebjson
remote: ** which supports versions unknown of Mercurial.
remote: ** Please disable hgwebjson and try your action again.
remote: ** If that fixes the bug please report it to the extension author.
remote: ** Python 2.6.6 (r266:84292, Nov 21 2013, 10:50:32) [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]
remote: ** Mercurial Distributed SCM (version 3.2.3)
remote: ** Extensions loaded: blackbox, hgwebjson, pushlog-feed, pushlog, buglink, serverlog
remote: Traceback (most recent call last):
remote:   File "/usr/bin/hg", line 43, in <module>
remote:     mercurial.dispatch.run()
remote:   File "/usr/lib64/python2.6/site-packages/mercurial/dispatch.py", line 28, in run
remote:     sys.exit((dispatch(request(sys.argv[1:])) or 0) & 255)
remote:   File "/usr/lib64/python2.6/site-packages/mercurial/dispatch.py", line 71, in dispatch
remote:     ret = _runcatch(req)
remote:   File "/usr/lib64/python2.6/site-packages/mercurial/dispatch.py", line 140, in _runcatch
remote:     return _dispatch(req)
remote:   File "/usr/lib64/python2.6/site-packages/mercurial/dispatch.py", line 850, in _dispatch
remote:     cmdpats, cmdoptions)
remote:   File "/usr/lib64/python2.6/site-packages/mercurial/dispatch.py", line 611, in runcommand
remote:     ret = _runcommand(ui, options, cmd, d)
remote:   File "/usr/lib64/python2.6/site-packages/mercurial/dispatch.py", line 941, in _runcommand
remote:     return checkargs()
remote:   File "/usr/lib64/python2.6/site-packages/mercurial/dispatch.py", line 912, in checkargs
remote:     return cmdfunc()
remote:   File "/usr/lib64/python2.6/site-packages/mercurial/dispatch.py", line 847, in <lambda>
remote:     d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
remote:   File "/usr/lib64/python2.6/site-packages/mercurial/util.py", line 677, in check
remote:     return func(*args, **kwargs)
remote:   File "/usr/lib64/python2.6/site-packages/mercurial/commands.py", line 5536, in serve
remote:     s.serve_forever()
remote:   File "/repo/hg/extensions/serverlog/__init__.py", line 332, in serve_forever
remote:     return super(sshserverwrapped, self).serve_forever()
remote:   File "/usr/lib64/python2.6/site-packages/mercurial/sshserver.py", line 94, in serve_forever
remote:     while self.serve_one():
remote:   File "/repo/hg/extensions/serverlog/__init__.py", line 361, in serve_one
remote:     return super(sshserverwrapped, self).serve_one()
remote:   File "/usr/lib64/python2.6/site-packages/mercurial/sshserver.py", line 112, in serve_one
remote:     rsp = wireproto.dispatch(self.repo, self, cmd)
remote:   File "/repo/hg/extensions/serverlog/__init__.py", line 353, in dispatch
remote:     return origdispatch(repo, proto, cmd)
remote:   File "/usr/lib64/python2.6/site-packages/mercurial/wireproto.py", line 505, in dispatch
remote:     return func(repo, proto, *args)
remote:   File "/usr/lib64/python2.6/site-packages/mercurial/wireproto.py", line 570, in branchmap
remote:     branchmap = repo.branchmap()
remote:   File "/usr/lib64/python2.6/site-packages/mercurial/localrepo.py", line 707, in branchmap
remote:     branchmap.updatecache(self)
remote:   File "/usr/lib64/python2.6/site-packages/mercurial/branchmap.py", line 90, in updatecache
remote:     partial = subset.branchmap().copy()
remote:   File "/usr/lib64/python2.6/site-packages/mercurial/localrepo.py", line 707, in branchmap
remote:     branchmap.updatecache(self)
remote:   File "/usr/lib64/python2.6/site-packages/mercurial/branchmap.py", line 90, in updatecache
remote:     partial = subset.branchmap().copy()
remote:   File "/usr/lib64/python2.6/site-packages/mercurial/localrepo.py", line 707, in branchmap
remote:     branchmap.updatecache(self)
remote:   File "/usr/lib64/python2.6/site-packages/mercurial/branchmap.py", line 95, in updatecache
remote:     partial.update(repo, revs)
remote:   File "/usr/lib64/python2.6/site-packages/mercurial/branchmap.py", line 238, in update
remote:     branch, closesbranch = getbranchinfo(r)
remote:   File "/usr/lib64/python2.6/site-packages/mercurial/changelog.py", line 357, in branchinfo
remote:     extra = self.read(rev)[5]
remote:   File "/usr/lib64/python2.6/site-packages/mercurial/changelog.py", line 290, in read
remote:     text = self.revision(node)
remote:   File "/usr/lib64/python2.6/site-packages/mercurial/revlog.py", line 1033, in revision
remote:     text = mdiff.patches(text, bins)
remote: mpatch.mpatchError: patch cannot be 


My patch only included new files, so perhaps there's an edge case somewhere around that?
Woah!

This should not happen. My immediate inclination is either a Mercurial bug or repository corruption.

I just ran `hg verify` on the server and verified the server isn't corrupt. I'd appreciate you doing the same for your repo.
(In reply to Gregory Szorc [:gps] from comment #1)
> Woah!
> 
> This should not happen. My immediate inclination is either a Mercurial bug
> or repository corruption.
> 
> I just ran `hg verify` on the server and verified the server isn't corrupt.
> I'd appreciate you doing the same for your repo.

Looks fine over here:
➜  gecko  hg verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
194578 files, 259626 changesets, 1345797 total revisions

After I filed this bug I was able to push to mozilla-inbound and mozilla-aurora from this repo, for what it's worth.
I'm going to chalk this up to one-off wonkiness.
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.