[Bug 6853] New: cannot call command tns_heads: method of same name not available on peer when pulling with chg

mercurial-bugs at mercurial-scm.org mercurial-bugs at mercurial-scm.org
Wed Nov 22 11:50:33 UTC 2023


https://bz.mercurial-scm.org/show_bug.cgi?id=6853

            Bug ID: 6853
           Summary: cannot call command tns_heads: method of same name not
                    available on peer when pulling with chg
           Product: Mercurial
           Version: 6.6rc0
          Hardware: PC
                OS: Linux
            Status: UNCONFIRMED
          Severity: bug
          Priority: wish
         Component: evolution
          Assignee: bugzilla at mercurial-scm.org
          Reporter: phil at philpep.org
                CC: mercurial-devel at mercurial-scm.org,
                    pierre-yves.david at ens-lyon.org
    Python Version: ---

Hi,

I just upgraded my servers to mercurial 6.6 and hg-evolve 11.1.0.

Both server and client config have evolve and topic enabled:

[extensions]
evolve =
topic =

(I changed evolve.serveronly to evolve as documented on the server in evolve
changelog).

I pull a repo using ssh and chg and get traceback bellow (on client side, no
related errors on server side). I noticed that:

* disabling topic extension on client side doesn't trigger the bug
* using python hg instead of chg on client side doesn't trigger the bug

Thanks!


** Unknown exception encountered with possibly-broken third-party extension
"evolve" 11.1.0
** which supports versions 6.5 of Mercurial.
** Please disable "evolve" and try your action again.
** If that fixes the bug please report it to https://bz.mercurial-scm.org/
** Python 3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0]
** Mercurial Distributed SCM (version 6.6)
** Extensions loaded: absorb, evolve 11.1.0, histedit, pager, patchbomb,
phabricator, purge, rebase, record, schemes, show, strip, topic 1.1.0
** ProgrammingError: cannot call command tns_heads: method of same name not
available on peer
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/mercurial/commandserver.py", line 490,
in _serverequest
    sv.serve()
  File "/usr/lib/python3/dist-packages/mercurial/commandserver.py", line 394,
in serve
    while self.serveone():
          ^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/mercurial/commandserver.py", line 368,
in serveone
    handler(self)
  File "/usr/lib/python3/dist-packages/mercurial/chgserver.py", line 570, in
runcommand
    return super(chgcmdserver, self).runcommand()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/mercurial/commandserver.py", line 349,
in runcommand
    ret = self._dispatchcommand(req) & 255
          ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/mercurial/commandserver.py", line 288,
in _dispatchcommand
    return dispatch.dispatch(req)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/mercurial/dispatch.py", line 231, in
dispatch
    status = _rundispatch(req)
             ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/mercurial/dispatch.py", line 275, in
_rundispatch
    ret = _runcatch(req) or 0
          ^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/mercurial/dispatch.py", line 456, in
_runcatch
    return _callcatch(ui, _runcatchfunc)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/mercurial/dispatch.py", line 466, in
_callcatch
    return scmutil.callcatch(ui, func)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/mercurial/scmutil.py", line 152, in
callcatch
    return func()
           ^^^^^^
  File "/usr/lib/python3/dist-packages/mercurial/dispatch.py", line 446, in
_runcatchfunc
    return _dispatch(req)
           ^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/mercurial/dispatch.py", line 1271, in
_dispatch
    return runcommand(
           ^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/mercurial/dispatch.py", line 904, in
runcommand
    ret = _runcommand(ui, options, cmd, d)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/hgext/pager.py", line 77, in pagecmd
    return orig(ui, options, cmd, cmdfunc)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/mercurial/dispatch.py", line 1283, in
_runcommand
    return cmdfunc()
           ^^^^^^^^^
  File "/usr/lib/python3/dist-packages/mercurial/dispatch.py", line 1269, in
<lambda>
    d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/mercurial/util.py", line 1878, in check
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/mercurial/util.py", line 1878, in check
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/hgext3rd/evolve/__init__.py", line 565,
in wrapmayobsoletewc
    res = origfn(ui, repo, *args, **opts)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/mercurial/util.py", line 1878, in check
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/mercurial/util.py", line 1878, in check
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/hgext/rebase.py", line 2174, in
pullrebase
    ret = orig(ui, repo, *args, **opts)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/mercurial/util.py", line 1878, in check
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/mercurial/commands.py", line 5529, in
pull
    modheads = exchange.pull(
               ^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/mercurial/exchange.py", line 1711, in
pull
    _pulldiscovery(pullop)
  File "/usr/lib/python3/dist-packages/mercurial/exchange.py", line 1758, in
_pulldiscovery
    step(pullop)
  File "/usr/lib/python3/dist-packages/mercurial/exchange.py", line 1783, in
_pulldiscoverychangegroup
    tmp = discovery.findcommonincoming(
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/mercurial/discovery.py", line 61, in
findcommonincoming
    res = setdiscovery.findcommonheads(
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/mercurial/setdiscovery.py", line 381, in
findcommonheads
    fheads = e.callcommand(b'heads', {})
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/hgext3rd/topic/server.py", line 152, in
callcommand
    return s.callcommand(command, args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/mercurial/wireprotov1peer.py", line 139,
in callcommand
    raise error.ProgrammingError(
mercurial.error.ProgrammingError: cannot call command tns_heads: method of same
name not available on peer

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Mercurial-devel mailing list