Closed
Bug 1164249
Opened 10 years ago
Closed 6 years ago
Pushes colliding with review-ids from closed requests fail badly
Categories
(MozReview Graveyard :: General, defect, P2)
Tracking
(Not tracked)
RESOLVED
INVALID
People
(Reporter: dustin, Unassigned)
Details
When pushing a single draft change, for which I have not ever created a request (I just created it with hg commit --amend),
dustin@euclid ~/code/moz/t/m-c $ hg push -r . review
pushing to ssh://reviewboard-hg.mozilla.org/gecko
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 0 changes to 10 files (+1 heads)
remote: Trying to insert into pushlog.
remote: Inserted into the pushlog db successfully.
submitting 1 changesets for review
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.3.3+5-612ed41ae359)
remote: ** Extensions loaded: hgwebjson, pushlog-feed, buglink, pushlog, serverlog, rbserver
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 863, in _dispatch
remote: cmdpats, cmdoptions)
remote: File "/usr/lib64/python2.6/site-packages/mercurial/dispatch.py", line 624, in runcommand
remote: ret = _runcommand(ui, options, cmd, d)
remote: File "/usr/lib64/python2.6/site-packages/mercurial/dispatch.py", line 954, in _runcommand
remote: return checkargs()
remote: File "/usr/lib64/python2.6/site-packages/mercurial/dispatch.py", line 925, in checkargs
remote: return cmdfunc()
remote: File "/usr/lib64/python2.6/site-packages/mercurial/dispatch.py", line 860, in <lambda>
remote: d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
remote: File "/usr/lib64/python2.6/site-packages/mercurial/util.py", line 711, in check
remote: return func(*args, **kwargs)
remote: File "/usr/lib64/python2.6/site-packages/mercurial/commands.py", line 5534, in serve
remote: s.serve_forever()
remote: File "/repo/hg/version-control-tools/hgext/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/version-control-tools/hgext/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/version-control-tools/hgext/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 509, in dispatch
remote: return func(repo, proto, *args)
remote: File "/repo/hg/version-control-tools/hgext/reviewboard/hgrb/proto.py", line 271, in reviewboard
remote: cookie=bzcookie)
remote: File "/repo/hg/version-control-tools/hgext/reviewboard/hgrb/proto.py", line 53, in post_reviews
remote: return pr(*args, **kwargs)
remote: File "/repo/hg/version-control-tools/pylib/reviewboardmods/reviewboardmods/pushhooks.py", line 124, in post_reviews
remote: return _post_reviews(root, repoid, identifier, commits)
remote: File "/repo/hg/version-control-tools/pylib/reviewboardmods/reviewboardmods/pushhooks.py", line 151, in _post_reviews
remote: "repository": repoid,
remote: File "/usr/lib/python2.6/site-packages/rbtools/api/resource.py", line 130, in <lambda>
remote: meth(resource, **kwargs)))
remote: File "/usr/lib/python2.6/site-packages/rbtools/api/decorators.py", line 24, in request_method
remote: *args, **kwargs)
remote: File "/usr/lib/python2.6/site-packages/rbtools/api/transport/sync.py", line 61, in execute_request_method
remote: return self._execute_request(request)
remote: File "/usr/lib/python2.6/site-packages/rbtools/api/transport/sync.py", line 70, in _execute_request
remote: rsp = self.server.make_request(request)
remote: File "/usr/lib/python2.6/site-packages/rbtools/api/request.py", line 484, in make_request
remote: self.process_error(e.code, e.read())
remote: File "/usr/lib/python2.6/site-packages/rbtools/api/request.py", line 457, in process_error
remote: rsp['err']['msg'])
remote: rbtools.api.errors.APIError: The commit ID specified has already been used. (HTTP 409, API Error 204)
abort: unexpected response: empty string
Not sure why hgwebjson's getting blamed, nor which commit ID it's complaining about.
Comment 1•10 years ago
|
||
I'm pretty sure the changesets being posted were https://reviewboard-hg.mozilla.org/gecko/rev/42fc8ee42e46 and https://reviewboard-hg.mozilla.org/gecko/rev/e2861e958ae6.
Component: Extensions: MozReview → MozReview
Product: bugzilla.mozilla.org → Developer Services
Comment 2•10 years ago
|
||
Assuming Greg is correct about which changesets were being posted, this is happening because you're colliding with the request you made previously[1]. You are limited to a single parent review request per bug, per repository atm.
[1] https://reviewboard.mozilla.org/r/8147/
Reporter | ||
Comment 3•10 years ago
|
||
Oh, indeed.
So, how do I make more changes on the same bug?
Comment 4•10 years ago
|
||
(In reply to Dustin J. Mitchell [:dustin] from comment #3)
> Oh, indeed.
>
> So, how do I make more changes on the same bug?
You should re-open the review request I linked and continue updating it for new work. This will not delete any of your old review comments etc. but it will possibly move things around making them harder to find.
The other option is just make a new (maybe dependent or blocking) bug and do the work in there.
Both these options are pretty crappy and improvements are in the works.
Comment 5•10 years ago
|
||
We should really be displaying a better error message (or maybe doing something intelligent like re-opening the review request) when this case is hit.
Fixing this would mean adding a 'status=all' argument to our search for existent requests matching the review-id[1]. This should make the API also return closed requests matching our query. We should then check if the request we get back is closed and act accordingly.
[1] https://hg.mozilla.org/hgcustom/version-control-tools/file/35943d03d552/pylib/reviewboardmods/reviewboardmods/pushhooks.py#l138
Priority: -- → P2
Summary: Pushes to gecko review fail → Pushes colliding with review-ids from closed requests fail badly
Assignee | ||
Updated•9 years ago
|
Product: Developer Services → MozReview
Comment 6•6 years ago
|
||
MozReview is now obsolete. Please use Phabricator instead. Closing this bug.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → INVALID
You need to log in
before you can comment on or make changes to this bug.
Description
•