Closed Bug 1298567 Opened 8 years ago Closed 8 years ago

Pushing fails if i18n is enabled

Categories

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

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: akihiko.odaki, Unassigned)

Details

Attachments

(1 file)

User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:48.0) Gecko/20100101 Firefox/48.0
Build ID: 20160823070410

Steps to reproduce:

Run `hg push' with mercurial i18n enabled


Actual results:

Pushing fails emitting the following log:
** 非同梱のエクステンション reviewboard に起因する例外が発生しました。
** 当該エクステンションのサポート対象 Mercurial の版: 3.6
** エクステンション reviewboard を無効化してから、再度同じ処理を実行してください。
** 問題が改善された場合、 障害の発生を https://bugzilla.mozilla.org/enter_bug.cgi?product=MozReview&component=Integration%3A%20Mercurial に報告してください。
** Python 2.7.12 (default, Jun 28 2016, 08:31:05) [GCC 6.1.1 20160602]
Mercurial - 分散構成管理ツール (バージョン 3.9)
** Extensions loaded: strip, mq, color, pager, histedit, rebase, blackbox, firefoxtree, reviewboard, push-to-try
Traceback (most recent call last):
  File "/usr/bin/hg", line 45, in <module>
    mercurial.dispatch.run()
  File "/usr/lib/python2.7/site-packages/mercurial/dispatch.py", line 59, in run
    sys.exit((dispatch(request(sys.argv[1:])) or 0) & 255)
  File "/usr/lib/python2.7/site-packages/mercurial/dispatch.py", line 125, in dispatch
    ret = _runcatch(req)
  File "/usr/lib/python2.7/site-packages/mercurial/dispatch.py", line 204, in _runcatch
    return _dispatch(req)
  File "/usr/lib/python2.7/site-packages/mercurial/dispatch.py", line 880, in _dispatch
    cmdpats, cmdoptions)
  File "/usr/lib/python2.7/site-packages/mercurial/dispatch.py", line 637, in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/usr/lib/python2.7/site-packages/mercurial/extensions.py", line 210, in closure
    return func(*(args + a), **kw)
  File "/usr/lib/python2.7/site-packages/hgext/pager.py", line 160, in pagecmd
    return orig(ui, options, cmd, cmdfunc)
  File "/usr/lib/python2.7/site-packages/mercurial/extensions.py", line 210, in closure
    return func(*(args + a), **kw)
  File "/usr/lib/python2.7/site-packages/hgext/color.py", line 503, in colorcmd
    return orig(ui_, opts, cmd, cmdfunc)
  File "/usr/lib/python2.7/site-packages/mercurial/dispatch.py", line 1010, in _runcommand
    return checkargs()
  File "/usr/lib/python2.7/site-packages/mercurial/dispatch.py", line 971, in checkargs
    return cmdfunc()
  File "/usr/lib/python2.7/site-packages/mercurial/dispatch.py", line 877, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
  File "/usr/lib/python2.7/site-packages/mercurial/util.py", line 1036, in check
    return func(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/mercurial/extensions.py", line 210, in closure
    return func(*(args + a), **kw)
  File "/usr/lib/python2.7/site-packages/mercurial/util.py", line 1036, in check
    return func(*args, **kwargs)
  File "/home/root3/.mozbuild/version-control-tools/hgext/reviewboard/client.py", line 177, in pushcommand
    return orig(ui, repo, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/mercurial/util.py", line 1036, in check
    return func(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/mercurial/extensions.py", line 210, in closure
    return func(*(args + a), **kw)
  File "/usr/lib/python2.7/site-packages/mercurial/util.py", line 1036, in check
    return func(*args, **kwargs)
  File "/home/root3/.mozbuild/version-control-tools/hgext/firefoxtree/__init__.py", line 487, in pushcommand
    return orig(ui, repo, dest=dest, **opts)
  File "/usr/lib/python2.7/site-packages/mercurial/util.py", line 1036, in check
    return func(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/mercurial/extensions.py", line 210, in closure
    return func(*(args + a), **kw)
  File "/usr/lib/python2.7/site-packages/mercurial/util.py", line 1036, in check
    return func(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/hgext/mq.py", line 3539, in mqcommand
    return orig(ui, repo, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/mercurial/util.py", line 1036, in check
    return func(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/mercurial/commands.py", line 5972, in push
    opargs=opts.get('opargs'))
  File "/usr/lib/python2.7/site-packages/mercurial/extensions.py", line 210, in closure
    return func(*(args + a), **kw)
  File "/home/root3/.mozbuild/version-control-tools/hgext/reviewboard/client.py", line 254, in wrappedpush
    newbranch=False, **kwargs)
  File "/home/root3/.mozbuild/version-control-tools/hgext/reviewboard/client.py", line 301, in wrappedpush
    **kwargs)
  File "/usr/lib/python2.7/site-packages/mercurial/extensions.py", line 210, in closure
    return func(*(args + a), **kw)
  File "/home/root3/.mozbuild/version-control-tools/hgext/firefoxtree/__init__.py", line 290, in push
    **kwargs)
  File "/usr/lib/python2.7/site-packages/mercurial/exchange.py", line 455, in push
    pushop.trmanager.close()
  File "/usr/lib/python2.7/site-packages/mercurial/exchange.py", line 1135, in close
    self._tr.close()
  File "/usr/lib/python2.7/site-packages/mercurial/transaction.py", line 43, in _active
    return func(self, *args, **kwds)
  File "/usr/lib/python2.7/site-packages/mercurial/transaction.py", line 490, in close
    self._postclosecallback[cat](self)
  File "/home/root3/.mozbuild/version-control-tools/hgext/reviewboard/client.py", line 470, in ontrclose
    doreview(pushop.repo, pushop.ui, pushop.remote, pushop.reviewnodes)
  File "/home/root3/.mozbuild/version-control-tools/hgext/reviewboard/client.py", line 667, in doreview
    publishreviewrequests(ui, remote, bzauth, [newparentid])
  File "/home/root3/.mozbuild/version-control-tools/hgext/reviewboard/client.py", line 684, in publishreviewrequests
    ui.status(_('(published review request %s)\n') % item['rrid'])
  File "/usr/lib/python2.7/site-packages/mercurial/ui.py", line 969, in status
    self.write(*msg, **opts)
  File "/home/root3/.mozbuild/version-control-tools/hgext/reviewboard/client.py", line 285, in write
    if not filterwrite(args):
  File "/home/root3/.mozbuild/version-control-tools/hgext/reviewboard/client.py", line 267, in filterwrite
    if messages[0].startswith('%sREVIEWBOARD' % _('remote: ')):
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)


Expected results:

Pushing succeeds.
Sorry for messing. I identified the issue and made a review request.

Bug 1298567 - Encode UI outputs. r=gps | Review Request | Review Board
https://reviewboard.mozilla.org/r/74696/
Comment on attachment 8785525 [details]
Bug 1298567 - Encode UI outputs.

https://reviewboard.mozilla.org/r/74696/#review72902

This is the correct place to fix the problem. Aside from a potential UnicodeEncodeError, this is good.

::: hgext/reviewboard/client.py:690
(Diff revision 28)
> +                      item['rrid'].encode(encoding.encoding))
>          elif 'error' in item:
>              errored = True
>              ui.warn(_('error publishing review request %s: %s\n') %
> -                    (item['rrid'], item['error']))
> +                    (item['rrid'].encode(encoding.encoding),
> +                     item['error'].encode(encoding.encoding)))

The error string originates on the server and will be decoded from UTF-8. There is a slight chance it may consist of code points that don't encode in the current encoding. So, this should be:

  .encode(encoding.encoding, 'replace')
Attachment #8785525 - Flags: review?(gps)
Comment on attachment 8785525 [details]
Bug 1298567 - Encode UI outputs.

https://reviewboard.mozilla.org/r/74696/#review73048

I'll land this for you.
Attachment #8785525 - Flags: review?(gps) → review+
Pushed by gszorc@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/4e3776c0e713
Encode UI outputs. r=gps
Status: UNCONFIRMED → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: