Closed
Bug 1338171
Opened 8 years ago
Closed 8 years ago
Fail gracefully when a push includes a commit with a bad MozReview ID
Categories
(MozReview Graveyard :: Integration: Mercurial, defect)
MozReview Graveyard
Integration: Mercurial
Tracking
(Not tracked)
RESOLVED
WONTFIX
People
(Reporter: Sylvestre, Unassigned)
References
Details
Working on a 37 patches review: https://reviewboard.mozilla.org/r/111124/#issue-summary
I fixed all the comments and tried to push but it is failing:
$ hg push -r 341639:tip review
pushing to https://reviewboard-hg.mozilla.org/autoreview
searching for appropriate review repository
redirecting push to https://reviewboard-hg.mozilla.org/gecko
(adding commit id to 1 changesets)
saved backup bundle to /tmp/mozilla-central/.hg/strip-backup/709c22e52baf-cd322769-addcommitid.hg
warning: ignoring unknown working parent 709c22e52baf!
abort: 00changelog.i@e9ae9486d463: no node!
In case it was a local issue, I cloned a new repo, hg export/import all the 37 patches but experienced exactly the same issue.
Using mercurial 4.0-1 from Debian repo.
Reporter | ||
Comment 1•8 years ago
|
||
More: some patches are lost in the process (about 6). I have to restore them with
hg unbundle -u /tmp/mozilla-central/.hg/strip-backup/709c22e52baf-cd322769-addcommitid.hg
Reporter | ||
Comment 2•8 years ago
|
||
$ hg push --debug --traceback -r 341639::341675 review
automatically setting Bugzilla API Key auth https://reviewboard-hg.mozilla.org
pushing to https://reviewboard-hg.mozilla.org/autoreview
using https://reviewboard-hg.mozilla.org/autoreview
sending capabilities command
using auth.autobmoapikey0.* for authentication
searching for appropriate review repository
sending listreviewrepos command
using auth.autobmoapikey0.* for authentication
redirecting push to https://reviewboard-hg.mozilla.org/gecko
sending capabilities command
using auth.autobmoapikey0.* for authentication
capabilities: streamreqs=generaldelta,revlogv1 changegroupsubset bundle2=HG20%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps unbundlehash pullreviews batch mozreviewrequires=bzapikeys,commitid,jsonproto,listreviewdata,listreviewrepos,proto1 httpheader=1024 lookup pushlog pushkey known unbundle=HG10GZ,HG10BZ,HG10UN branchmap getbundle mozreview=publish,publishhttp,pullreviews,pushreview,submithttp reviewboard
(adding commit id to 1 changesets)
committing files:
layout/style/nsCSSRuleProcessor.cpp
committing manifest
committing changelog
committing files:
js/src/perf/pm_linux.cpp
js/xpconnect/loader/mozJSSubScriptLoader.cpp
js/xpconnect/wrappers/XrayWrapper.cpp
committing manifest
committing changelog
committing files:
js/src/perf/pm_linux.cpp
js/xpconnect/loader/mozJSSubScriptLoader.cpp
js/xpconnect/wrappers/XrayWrapper.cpp
committing manifest
committing changelog
committing files:
widget/xremoteclient/XRemoteClient.cpp
committing manifest
committing changelog
committing files:
widget/xremoteclient/XRemoteClient.cpp
committing manifest
committing changelog
committing files:
dom/media/fmp4/MP4Demuxer.cpp
committing manifest
committing changelog
committing files:
dom/media/fmp4/MP4Demuxer.cpp
committing manifest
committing changelog
committing files:
dom/base/nsContentUtils.cpp
dom/base/nsDOMWindowUtils.cpp
dom/base/nsFrameMessageManager.cpp
dom/base/nsGlobalWindow.cpp
dom/base/nsImageLoadingContent.cpp
dom/base/nsObjectLoadingContent.cpp
committing manifest
committing changelog
committing files:
dom/base/nsContentUtils.cpp
dom/base/nsDOMWindowUtils.cpp
dom/base/nsFrameMessageManager.cpp
dom/base/nsGlobalWindow.cpp
dom/base/nsImageLoadingContent.cpp
dom/base/nsObjectLoadingContent.cpp
committing manifest
committing changelog
committing files:
media/webrtc/signaling/src/jsep/JsepSessionImpl.cpp
media/webrtc/signaling/src/media-conduit/AudioConduit.cpp
media/webrtc/signaling/src/media-conduit/VideoConduit.cpp
media/webrtc/signaling/src/mediapipeline/MediaPipelineFilter.cpp
media/webrtc/signaling/src/peerconnection/WebrtcGlobalInformation.cpp
media/webrtc/signaling/src/sdp/sipcc/sdp_access.c
media/webrtc/signaling/src/sdp/sipcc/sdp_attr.c
media/webrtc/signaling/src/sdp/sipcc/sdp_attr_access.c
media/webrtc/signaling/src/sdp/sipcc/sdp_main.c
media/webrtc/signaling/src/sdp/sipcc/sdp_token.c
media/webrtc/signaling/src/sdp/sipcc/sdp_utils.c
committing manifest
committing changelog
committing files:
media/webrtc/signaling/src/jsep/JsepSessionImpl.cpp
media/webrtc/signaling/src/media-conduit/AudioConduit.cpp
media/webrtc/signaling/src/media-conduit/VideoConduit.cpp
media/webrtc/signaling/src/mediapipeline/MediaPipelineFilter.cpp
media/webrtc/signaling/src/peerconnection/WebrtcGlobalInformation.cpp
media/webrtc/signaling/src/sdp/sipcc/sdp_access.c
media/webrtc/signaling/src/sdp/sipcc/sdp_attr.c
media/webrtc/signaling/src/sdp/sipcc/sdp_attr_access.c
media/webrtc/signaling/src/sdp/sipcc/sdp_main.c
media/webrtc/signaling/src/sdp/sipcc/sdp_token.c
media/webrtc/signaling/src/sdp/sipcc/sdp_utils.c
committing manifest
committing changelog
resolving manifests
branchmerge: False, force: True, partial: False
ancestor: 709c22e52baf+, local: 709c22e52baf+, remote: 709c22e52baf
6 changesets found
list of changesets:
e9ae9486d4635101fe5c2efb7b4f94f0ee61dd69
3fd0ee9281e3cb1c868388aaa8b0542346ab635f
7a8555edef75d3d08d9447f2d945865d4b2baed3
255e0a0bfb0f5eb739e06157e6792aeea217e4ca
ea5456f3c2b0779b8b524ab5570448e1b64f051e
709c22e52baf700c5c52d093370ee597e283970b
bundle2-output-bundle: "HG20", (1 params) 1 parts total
bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
saved backup bundle to /tmp/mozilla-central/.hg/strip-backup/709c22e52baf-cd322769-addcommitid.hg
invalid branchheads cache (served): tip differs
warning: ignoring unknown working parent 709c22e52baf!
truncating cache/rbc-revs-v1 to 2733360
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 205, in _runcatchfunc
return _dispatch(req)
File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 901, in _dispatch
cmdpats, cmdoptions)
File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 650, in runcommand
ret = _runcommand(ui, options, cmd, d)
File "/usr/lib/python2.7/dist-packages/mercurial/extensions.py", line 220, in closure
return func(*(args + a), **kw)
File "/usr/lib/python2.7/dist-packages/hgext/pager.py", line 160, in pagecmd
return orig(ui, options, cmd, cmdfunc)
File "/usr/lib/python2.7/dist-packages/mercurial/extensions.py", line 220, in closure
return func(*(args + a), **kw)
File "/usr/lib/python2.7/dist-packages/hgext/color.py", line 521, in colorcmd
return orig(ui_, opts, cmd, cmdfunc)
File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 909, in _runcommand
return cmdfunc()
File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 898, in <lambda>
d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 1039, in check
return func(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/mercurial/extensions.py", line 220, in closure
return func(*(args + a), **kw)
File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 1039, in check
return func(*args, **kwargs)
File "/home/sylvestre/.mozbuild/version-control-tools/hgext/firefoxtree/__init__.py", line 487, in pushcommand
return orig(ui, repo, dest=dest, **opts)
File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 1039, in check
return func(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/mercurial/extensions.py", line 220, in closure
return func(*(args + a), **kw)
File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 1039, in check
return func(*args, **kwargs)
File "/home/sylvestre/.mozbuild/version-control-tools/hgext/reviewboard/client.py", line 178, in pushcommand
return orig(ui, repo, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 1039, in check
return func(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/mercurial/extensions.py", line 220, in closure
return func(*(args + a), **kw)
File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 1039, in check
return func(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/hgext/mq.py", line 3540, in mqcommand
return orig(ui, repo, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 1039, in check
return func(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/mercurial/commands.py", line 6043, in push
opargs=opts.get('opargs'))
File "/usr/lib/python2.7/dist-packages/mercurial/extensions.py", line 220, in closure
return func(*(args + a), **kw)
File "/home/sylvestre/.mozbuild/version-control-tools/hgext/firefoxtree/__init__.py", line 290, in push
**kwargs)
File "/usr/lib/python2.7/dist-packages/mercurial/extensions.py", line 220, in closure
return func(*(args + a), **kw)
File "/home/sylvestre/.mozbuild/version-control-tools/hgext/reviewboard/client.py", line 255, in wrappedpush
newbranch=False, **kwargs)
File "/home/sylvestre/.mozbuild/version-control-tools/hgext/reviewboard/client.py", line 304, in wrappedpush
**kwargs)
File "/usr/lib/python2.7/dist-packages/mercurial/exchange.py", line 471, in push
_pushdiscovery(pushop)
File "/usr/lib/python2.7/dist-packages/mercurial/extensions.py", line 220, in closure
return func(*(args + a), **kw)
File "/home/sylvestre/.mozbuild/version-control-tools/hgext/reviewboard/client.py", line 452, in wrappedpushdiscovery
impactedrevs = list(repo.revs('%ln::', nodes))
File "/usr/lib/python2.7/dist-packages/mercurial/localrepo.py", line 576, in revs
return m(self)
File "/usr/lib/python2.7/dist-packages/mercurial/revset.py", line 2749, in mfunc
result = getset(repo, subset, tree)
File "/usr/lib/python2.7/dist-packages/mercurial/revset.py", line 335, in getset
s = methods[x[0]](repo, subset, *x[1:])
File "/usr/lib/python2.7/dist-packages/mercurial/revset.py", line 443, in func
return fn(repo, subset, b)
File "/usr/lib/python2.7/dist-packages/mercurial/revset.py", line 847, in descendants
return _descendants(repo, subset, x)
File "/usr/lib/python2.7/dist-packages/mercurial/revset.py", line 825, in _descendants
roots = getset(repo, fullreposet(repo), x)
File "/usr/lib/python2.7/dist-packages/mercurial/revset.py", line 335, in getset
s = methods[x[0]](repo, subset, *x[1:])
File "/usr/lib/python2.7/dist-packages/mercurial/revset.py", line 442, in func
return fn(repo, subset, b, order)
File "/usr/lib/python2.7/dist-packages/mercurial/revset.py", line 2338, in _hexlist
return _orderedhexlist(repo, subset, x)
File "/usr/lib/python2.7/dist-packages/mercurial/revset.py", line 2327, in _orderedhexlist
ls = [cl.rev(node.bin(r)) for r in s.split('\0')]
File "/usr/lib/python2.7/dist-packages/mercurial/changelog.py", line 335, in rev
r = super(changelog, self).rev(node)
File "/usr/lib/python2.7/dist-packages/mercurial/revlog.py", line 367, in rev
raise LookupError(node, self.indexfile, _('no node'))
LookupError: 00changelog.i@e9ae9486d463: no node
abort: 00changelog.i@e9ae9486d463: no node!
Reporter | ||
Comment 3•8 years ago
|
||
So, I tried with evolve.
I had a different issue (probably caused by the same thing)
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 205, in _runcatchfunc
return _dispatch(req)
File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 901, in _dispatch
cmdpats, cmdoptions)
File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 650, in runcommand
ret = _runcommand(ui, options, cmd, d)
File "/usr/lib/python2.7/dist-packages/mercurial/extensions.py", line 220, in closure
return func(*(args + a), **kw)
File "/usr/lib/python2.7/dist-packages/hgext/pager.py", line 160, in pagecmd
return orig(ui, options, cmd, cmdfunc)
File "/usr/lib/python2.7/dist-packages/mercurial/extensions.py", line 220, in closure
return func(*(args + a), **kw)
File "/usr/lib/python2.7/dist-packages/hgext/color.py", line 521, in colorcmd
return orig(ui_, opts, cmd, cmdfunc)
File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 909, in _runcommand
return cmdfunc()
File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 898, in <lambda>
d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 1039, in check
return func(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/mercurial/extensions.py", line 220, in closure
return func(*(args + a), **kw)
File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 1039, in check
return func(*args, **kwargs)
File "/home/sylvestre/.mozbuild/version-control-tools/hgext/firefoxtree/__init__.py", line 491, in pushcommand
return orig(ui, repo, dest=dest, **opts)
File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 1039, in check
return func(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/mercurial/extensions.py", line 220, in closure
return func(*(args + a), **kw)
File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 1039, in check
return func(*args, **kwargs)
File "/home/sylvestre/.mozbuild/version-control-tools/hgext/reviewboard/client.py", line 178, in pushcommand
return orig(ui, repo, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 1039, in check
return func(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/mercurial/extensions.py", line 220, in closure
return func(*(args + a), **kw)
File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 1039, in check
return func(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/hgext/mq.py", line 3540, in mqcommand
return orig(ui, repo, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 1039, in check
return func(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/mercurial/extensions.py", line 220, in closure
return func(*(args + a), **kw)
File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 1039, in check
return func(*args, **kwargs)
File "/home/sylvestre/dev/mozilla/evolve/hgext/evolve.py", line 732, in warnobserrors
ret = orig(ui, repo, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 1039, in check
return func(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/mercurial/commands.py", line 6043, in push
opargs=opts.get('opargs'))
File "/usr/lib/python2.7/dist-packages/mercurial/extensions.py", line 220, in closure
return func(*(args + a), **kw)
File "/home/sylvestre/.mozbuild/version-control-tools/hgext/firefoxtree/__init__.py", line 294, in push
**kwargs)
File "/usr/lib/python2.7/dist-packages/mercurial/extensions.py", line 220, in closure
return func(*(args + a), **kw)
File "/home/sylvestre/.mozbuild/version-control-tools/hgext/reviewboard/client.py", line 255, in wrappedpush
newbranch=False, **kwargs)
File "/home/sylvestre/.mozbuild/version-control-tools/hgext/reviewboard/client.py", line 304, in wrappedpush
**kwargs)
File "/usr/lib/python2.7/dist-packages/mercurial/extensions.py", line 220, in closure
return func(*(args + a), **kw)
File "/home/sylvestre/dev/mozilla/evolve/hgext/evolve.py", line 755, in push
return orig(repo, *args, **opts)
File "/usr/lib/python2.7/dist-packages/mercurial/exchange.py", line 471, in push
_pushdiscovery(pushop)
File "/usr/lib/python2.7/dist-packages/mercurial/extensions.py", line 220, in closure
return func(*(args + a), **kw)
File "/home/sylvestre/.mozbuild/version-control-tools/hgext/reviewboard/client.py", line 433, in wrappedpushdiscovery
backuptopic='addcommitid')
File "/home/sylvestre/.mozbuild/version-control-tools/pylib/mozhg/mozhg/rewrite.py", line 288, in replacechangesets
obsolete.createmarkers(repo, markers)
File "/usr/lib/python2.7/dist-packages/mercurial/obsolete.py", line 1247, in createmarkers
% prec)
Abort: changeset e85764d30144 cannot obsolete itself
Thanks to the help of Julien Cristau, we discovered that the commit id was the following:
MozReview-Commit-ID: 9s4z7bYXisU *** modif haycam
which was the source of the issue.
Mercurial should probably
Reporter | ||
Comment 4•8 years ago
|
||
Finishing my sentence:
Mercurial should probably detect when "MozReview-Commit-ID:" is badly formatted and display a proper error message
Comment 5•8 years ago
|
||
This bug is entirely just about the MozReview-Commit-ID being badly formatted, correct?
Summary: hg push review fails with "abort: 00changelog.i@e9ae9486d463: no node!" → Fail gracefully when a push includes a commit with a bad MozReview ID
Reporter | ||
Comment 6•8 years ago
|
||
Yeah, sorry, I should have retitled it!
Updated•8 years ago
|
Flags: needinfo?(gps)
Comment 7•8 years ago
|
||
I set needinfo with the intent of looking at this.
Given the uncertain future of this code since it is MozReview specific, this bug is possibly a WONTFIX at this stage. I'm not sure what we're doing with the open bugs. Whatever is happening, it is low priority for me. The bug is likely in pylib/mozhg/mozhg/rewrite.py or in the code that calls it.
Flags: needinfo?(gps)
Reporter | ||
Comment 8•8 years ago
|
||
Agreed!
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → WONTFIX
You need to log in
before you can comment on or make changes to this bug.
Description
•