Job try-88395a6ce362b6fff2f90fdfe9133e545077f094-debian10-system-python3-0

Repo:try
Node:88395a6ce362b6fff2f90fdfe9133e545077f094
Name:debian10-system-python3
Scheduled At:2022-03-03T01:41:38
Started At:2022-03-03T01:41:46
Finished At:2022-03-03T01:49:38

Failed Tests

test-acl.t

--- /hgwork/src/tests/test-acl.t
+++ /hgwork/src/tests/test-acl.t.err
@@ -362,7 +362,86 @@
   transaction abort!
   rollback completed
   truncating cache/rbc-revs-v1 to 8
-  abort: acl: user "fred" not allowed on "foo/file.txt" (changeset "ef1ea85a6374")
+  ** Unknown exception encountered with possibly-broken third-party extension "posixgetuser" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "posixgetuser" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: acl, posixgetuser
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 116, in pythonhook
+      r = obj(ui=ui, repo=repo, hooktype=htype, **pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 487, in _txnhook
+      % (user, f, ctx)
+  mercurial.error.Abort: acl: user "fred" not allowed on "foo/file.txt" (changeset "ef1ea85a6374")
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
   no rollback information available
   0:6675d58eff77
   
@@ -436,7 +515,86 @@
   bundle2-input-bundle: 5 parts total
   transaction abort!
   rollback completed
-  abort: acl: user "fred" not allowed on "quux/file.py" (changeset "911600dab2ae")
+  ** Unknown exception encountered with possibly-broken third-party extension "posixgetuser" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "posixgetuser" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: acl, posixgetuser
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 116, in pythonhook
+      r = obj(ui=ui, repo=repo, hooktype=htype, **pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 487, in _txnhook
+      % (user, f, ctx)
+  mercurial.error.Abort: acl: user "fred" not allowed on "quux/file.py" (changeset "911600dab2ae")
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
   no rollback information available
   0:6675d58eff77
   
@@ -507,7 +665,86 @@
   bundle2-input-bundle: 5 parts total
   transaction abort!
   rollback completed
-  abort: acl: user "barney" not allowed on "foo/file.txt" (changeset "ef1ea85a6374")
+  ** Unknown exception encountered with possibly-broken third-party extension "posixgetuser" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "posixgetuser" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: acl, posixgetuser
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 116, in pythonhook
+      r = obj(ui=ui, repo=repo, hooktype=htype, **pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 487, in _txnhook
+      % (user, f, ctx)
+  mercurial.error.Abort: acl: user "barney" not allowed on "foo/file.txt" (changeset "ef1ea85a6374")
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
   no rollback information available
   0:6675d58eff77
   
@@ -583,7 +820,86 @@
   bundle2-input-bundle: 5 parts total
   transaction abort!
   rollback completed
-  abort: acl: user "fred" not allowed on "quux/file.py" (changeset "911600dab2ae")
+  ** Unknown exception encountered with possibly-broken third-party extension "posixgetuser" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "posixgetuser" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: acl, posixgetuser
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 116, in pythonhook
+      r = obj(ui=ui, repo=repo, hooktype=htype, **pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 487, in _txnhook
+      % (user, f, ctx)
+  mercurial.error.Abort: acl: user "fred" not allowed on "quux/file.py" (changeset "911600dab2ae")
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
   no rollback information available
   0:6675d58eff77
   
@@ -658,7 +974,86 @@
   bundle2-input-bundle: 5 parts total
   transaction abort!
   rollback completed
-  abort: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8")
+  ** Unknown exception encountered with possibly-broken third-party extension "posixgetuser" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "posixgetuser" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: acl, posixgetuser
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 116, in pythonhook
+      r = obj(ui=ui, repo=repo, hooktype=htype, **pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 479, in _txnhook
+      % (user, f, ctx)
+  mercurial.error.Abort: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8")
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
   no rollback information available
   0:6675d58eff77
   
@@ -730,7 +1125,86 @@
   bundle2-input-bundle: 5 parts total
   transaction abort!
   rollback completed
-  abort: acl: user "barney" not allowed on "foo/file.txt" (changeset "ef1ea85a6374")
+  ** Unknown exception encountered with possibly-broken third-party extension "posixgetuser" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "posixgetuser" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: acl, posixgetuser
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 116, in pythonhook
+      r = obj(ui=ui, repo=repo, hooktype=htype, **pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 487, in _txnhook
+      % (user, f, ctx)
+  mercurial.error.Abort: acl: user "barney" not allowed on "foo/file.txt" (changeset "ef1ea85a6374")
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
   no rollback information available
   0:6675d58eff77
   
@@ -901,7 +1375,82 @@
   transaction abort!
   rollback completed
   truncating cache/rbc-revs-v1 to 8
-  abort: acl: user "fred" denied on bookmark "moving-bookmark" (changeset "ef1ea85a6374b77d6da9dcda9541f498f2d17df7")
+  ** Unknown exception encountered with possibly-broken third-party extension "posixgetuser" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "posixgetuser" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: acl, posixgetuser
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2398, in handlebookmark
+      b'prepushkey', throw=True, **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 116, in pythonhook
+      r = obj(ui=ui, repo=repo, hooktype=htype, **pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 401, in hook
+      _pkhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 419, in _pkhook
+      % (user, bookmark, ctx)
+  mercurial.error.Abort: acl: user "fred" denied on bookmark "moving-bookmark" (changeset "ef1ea85a6374b77d6da9dcda9541f498f2d17df7")
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
   no rollback information available
   0:6675d58eff77
   
@@ -1074,7 +1623,86 @@
   transaction abort!
   rollback completed
   truncating cache/rbc-revs-v1 to 8
-  abort: acl: user "wilma" not allowed on "quux/file.py" (changeset "911600dab2ae")
+  ** Unknown exception encountered with possibly-broken third-party extension "posixgetuser" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "posixgetuser" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: acl, posixgetuser
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 116, in pythonhook
+      r = obj(ui=ui, repo=repo, hooktype=htype, **pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 487, in _txnhook
+      % (user, f, ctx)
+  mercurial.error.Abort: acl: user "wilma" not allowed on "quux/file.py" (changeset "911600dab2ae")
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
   no rollback information available
   0:6675d58eff77
   
@@ -1148,7 +1776,90 @@
   bundle2-input-bundle: 5 parts total
   transaction abort!
   rollback completed
-  abort: $ENOENT$: '../acl.config'
+  ** Unknown exception encountered with possibly-broken third-party extension "posixgetuser" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "posixgetuser" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: acl, posixgetuser
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 116, in pythonhook
+      r = obj(ui=ui, repo=repo, hooktype=htype, **pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 446, in _txnhook
+      b'acl.deny',
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/ui.py", line 458, in readconfig
+      fp = open(filename, 'rb')
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 324, in open
+      return builtins.open(name, sysstr(mode), buffering, encoding)
+  FileNotFoundError: [Errno 2] $ENOENT$: b'../acl.config'
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
   no rollback information available
   0:6675d58eff77
   
@@ -1235,7 +1946,86 @@
   bundle2-input-bundle: 5 parts total
   transaction abort!
   rollback completed
-  abort: acl: user "betty" not allowed on "quux/file.py" (changeset "911600dab2ae")
+  ** Unknown exception encountered with possibly-broken third-party extension "posixgetuser" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "posixgetuser" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: acl, posixgetuser
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 116, in pythonhook
+      r = obj(ui=ui, repo=repo, hooktype=htype, **pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 487, in _txnhook
+      % (user, f, ctx)
+  mercurial.error.Abort: acl: user "betty" not allowed on "quux/file.py" (changeset "911600dab2ae")
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
   no rollback information available
   0:6675d58eff77
   
@@ -1500,7 +2290,86 @@
   transaction abort!
   rollback completed
   truncating cache/rbc-revs-v1 to 8
-  abort: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8")
+  ** Unknown exception encountered with possibly-broken third-party extension "f" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "f" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: acl, f, posixgetuser
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 116, in pythonhook
+      r = obj(ui=ui, repo=repo, hooktype=htype, **pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 479, in _txnhook
+      % (user, f, ctx)
+  mercurial.error.Abort: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8")
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
   no rollback information available
   0:6675d58eff77
   
@@ -1672,7 +2541,86 @@
   transaction abort!
   rollback completed
   truncating cache/rbc-revs-v1 to 8
-  abort: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8")
+  ** Unknown exception encountered with possibly-broken third-party extension "f" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "f" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: acl, f, posixgetuser
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 116, in pythonhook
+      r = obj(ui=ui, repo=repo, hooktype=htype, **pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 479, in _txnhook
+      % (user, f, ctx)
+  mercurial.error.Abort: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8")
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
   no rollback information available
   0:6675d58eff77
   
@@ -1689,7 +2637,8 @@
   ** = @unlikelytoexist
   acl: "unlikelytoexist" not defined in [acl.groups]
   error: pretxnchangegroup.acl hook failed: group 'unlikelytoexist' is undefined
-  abort: group 'unlikelytoexist' is undefined
+  KeyError: "getgrnam(): name not found: 'unlikelytoexist'"
+  mercurial.error.Abort: group 'unlikelytoexist' is undefined
 
 
 Branch acl tests setup
@@ -1883,7 +2832,86 @@
   bundle2-input-bundle: 5 parts total
   transaction abort!
   rollback completed
-  abort: acl: user "astro" denied on branch "foobar" (changeset "e8fc755d4d82")
+  ** Unknown exception encountered with possibly-broken third-party extension "f" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "f" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: acl, f, posixgetuser
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 116, in pythonhook
+      r = obj(ui=ui, repo=repo, hooktype=htype, **pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 461, in _txnhook
+      % (user, branch, ctx)
+  mercurial.error.Abort: acl: user "astro" denied on branch "foobar" (changeset "e8fc755d4d82")
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
   no rollback information available
   2:fb35475503ef
   
@@ -1955,7 +2983,86 @@
   bundle2-input-bundle: 5 parts total
   transaction abort!
   rollback completed
-  abort: acl: user "astro" not allowed on branch "default" (changeset "ef1ea85a6374")
+  ** Unknown exception encountered with possibly-broken third-party extension "f" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "f" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: acl, f, posixgetuser
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 116, in pythonhook
+      r = obj(ui=ui, repo=repo, hooktype=htype, **pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 469, in _txnhook
+      % (user, branch, ctx)
+  mercurial.error.Abort: acl: user "astro" not allowed on branch "default" (changeset "ef1ea85a6374")
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
   no rollback information available
   2:fb35475503ef
   
@@ -2029,7 +3136,86 @@
   bundle2-input-bundle: 5 parts total
   transaction abort!
   rollback completed
-  abort: acl: user "astro" not allowed on branch "default" (changeset "ef1ea85a6374")
+  ** Unknown exception encountered with possibly-broken third-party extension "f" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "f" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: acl, f, posixgetuser
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 116, in pythonhook
+      r = obj(ui=ui, repo=repo, hooktype=htype, **pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 469, in _txnhook
+      % (user, branch, ctx)
+  mercurial.error.Abort: acl: user "astro" not allowed on branch "default" (changeset "ef1ea85a6374")
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
   no rollback information available
   2:fb35475503ef
   
@@ -2280,7 +3466,86 @@
   bundle2-input-bundle: 5 parts total
   transaction abort!
   rollback completed
-  abort: acl: user "george" denied on branch "default" (changeset "ef1ea85a6374")
+  ** Unknown exception encountered with possibly-broken third-party extension "f" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "f" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: acl, f, posixgetuser
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 116, in pythonhook
+      r = obj(ui=ui, repo=repo, hooktype=htype, **pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 461, in _txnhook
+      % (user, branch, ctx)
+  mercurial.error.Abort: acl: user "george" denied on branch "default" (changeset "ef1ea85a6374")
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
   no rollback information available
   2:fb35475503ef
   
@@ -2438,7 +3703,86 @@
   bundle2-input-bundle: 5 parts total
   transaction abort!
   rollback completed
-  abort: acl: user "george" denied on branch "default" (changeset "ef1ea85a6374")
+  ** Unknown exception encountered with possibly-broken third-party extension "f" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "f" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: acl, f, posixgetuser
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 116, in pythonhook
+      r = obj(ui=ui, repo=repo, hooktype=htype, **pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/acl.py", line 461, in _txnhook
+      % (user, branch, ctx)
+  mercurial.error.Abort: acl: user "george" denied on branch "default" (changeset "ef1ea85a6374")
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
   no rollback information available
   2:fb35475503ef
   

test-bookmarks-pushpull.t#b2-binary

--- /hgwork/src/tests/test-bookmarks-pushpull.t
+++ /hgwork/src/tests/test-bookmarks-pushpull.t#b2-binary.err
@@ -1234,8 +1234,77 @@
   pushing to $TESTTMP/issue4455-dest
   searching for changes
   no changes found
-  abort: prepushkey hook exited with status 1
-  [40]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2398, in handlebookmark
+      b'prepushkey', throw=True, **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 356, in runhooks
+      r = _exthook(ui, repo, htype, hname, cmd, args, throw)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 205, in _exthook
+      raise error.HookAbort(_(b'%s hook %s') % (name, desc))
+  mercurial.error.HookAbort: prepushkey hook exited with status 1
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
 #endif
 

test-bookmarks-pushpull.t#b2-pushkey

--- /hgwork/src/tests/test-bookmarks-pushpull.t
+++ /hgwork/src/tests/test-bookmarks-pushpull.t#b2-pushkey.err
@@ -1224,8 +1224,69 @@
   searching for changes
   no changes found
   pushkey-abort: prepushkey hook exited with status 1
-  abort: exporting bookmark @ failed
-  [255]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2354, in handlepushkey
+      partid=b'%d' % inpart.id, **pycompat.strkwargs(kwargs)
+  mercurial.error.PushkeyFailed: failed to update value for "bookmarks/@"
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
 #endif
 #if b2-binary

test-bundle2-exchange.t

--- /hgwork/src/tests/test-bundle2-exchange.t
+++ /hgwork/src/tests/test-bundle2-exchange.t.err
@@ -526,9 +526,71 @@
   $ hg -R main push other -r e7ec4e813ba6
   pushing to other
   searching for changes
-  abort: Abandon ship!
-  (don't panic)
-  [255]
+  ** Unknown exception encountered with possibly-broken third-party extension "failpush" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "failpush" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: failpush
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "$TESTTMP/failpush.py", line 33, in handleabort
+      raise error.Abort(b'Abandon ship!', hint=b"don't panic")
+  mercurial.error.Abort: Abandon ship!
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ hg -R main push ssh://user@dummy/other -r e7ec4e813ba6
   pushing to ssh://user@dummy/other
@@ -557,8 +619,71 @@
   $ hg -R main push other -r e7ec4e813ba6
   pushing to other
   searching for changes
-  abort: missing support for test:unknown
-  [100]
+  ** Unknown exception encountered with possibly-broken third-party extension "failpush" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "failpush" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: failpush
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 554, in _processpart
+      handler = _gethandler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 513, in _gethandler
+      raise error.BundleUnknownFeatureError(parttype=part.type)
+  mercurial.error.BundleUnknownFeatureError: b'test:unknown'
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ hg -R main push ssh://user@dummy/other -r e7ec4e813ba6
   pushing to ssh://user@dummy/other
@@ -582,9 +707,78 @@
   $ hg -R main push other -r e7ec4e813ba6
   pushing to other
   searching for changes
-  abort: push failed:
-  'remote repository changed while pushing - please try again'
-  [255]
+  ** Unknown exception encountered with possibly-broken third-party extension "failpush" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "failpush" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: failpush
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2192, in handlecheckheads
+      b'remote repository changed while pushing - please try again'
+  mercurial.error.PushRaced: b'remote repository changed while pushing - please try again'
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 437, in unbundle
+      _(b'push failed:'), stringutil.forcebytestr(exc)
+  mercurial.error.ResponseError: (b'push failed:', 'remote repository changed while pushing - please try again')
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ hg -R main push ssh://user@dummy/other -r e7ec4e813ba6
   pushing to ssh://user@dummy/other
@@ -625,8 +819,77 @@
   remote: transaction abort!
   remote: Cleaning up the mess...
   remote: rollback completed
-  abort: pretxnclose.failpush hook exited with status 1
-  [40]
+  ** Unknown exception encountered with possibly-broken third-party extension "failpush" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "failpush" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: failpush
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2711, in unbundle
+      lockandtr[2].close()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/transaction.py", line 38, in _active
+      return func(self, *args, **kwds)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/transaction.py", line 555, in close
+      self._validatecallback[category](self)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2489, in validate
+      b'pretxnclose', throw=True, **pycompat.strkwargs(tr.hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 356, in runhooks
+      r = _exthook(ui, repo, htype, hname, cmd, args, throw)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 205, in _exthook
+      raise error.HookAbort(_(b'%s hook %s') % (name, desc))
+  mercurial.error.HookAbort: pretxnclose.failpush hook exited with status 1
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ hg -R main push ssh://user@dummy/other -r e7ec4e813ba6
   pushing to ssh://user@dummy/other
@@ -686,8 +949,83 @@
   remote: transaction abort!
   remote: Cleaning up the mess...
   remote: rollback completed
-  abort: pretxnchangegroup hook exited with status 1
-  [40]
+  ** Unknown exception encountered with possibly-broken third-party extension "failpush" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "failpush" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: failpush
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 356, in runhooks
+      r = _exthook(ui, repo, htype, hname, cmd, args, throw)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 205, in _exthook
+      raise error.HookAbort(_(b'%s hook %s') % (name, desc))
+  mercurial.error.HookAbort: pretxnchangegroup hook exited with status 1
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
   $ hg -R main push ssh://user@dummy/other -r e7ec4e813ba6
   pushing to ssh://user@dummy/other
   searching for changes
@@ -734,8 +1072,83 @@
   transaction abort!
   Cleaning up the mess...
   rollback completed
-  abort: pretxnchangegroup hook exited with status 1
-  [40]
+  ** Unknown exception encountered with possibly-broken third-party extension "failpush" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "failpush" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: failpush
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 356, in runhooks
+      r = _exthook(ui, repo, htype, hname, cmd, args, throw)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 205, in _exthook
+      raise error.HookAbort(_(b'%s hook %s') % (name, desc))
+  mercurial.error.HookAbort: pretxnchangegroup hook exited with status 1
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
   $ hg -R main push ssh://user@dummy/other -r e7ec4e813ba6
   pushing to ssh://user@dummy/other
   searching for changes
@@ -809,8 +1222,71 @@
   transaction abort!
   Cleaning up the mess...
   rollback completed
-  abort: Correct phase push failed (because hooks)
-  [255]
+  ** Unknown exception encountered with possibly-broken third-party extension "failpush" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "failpush" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: failpush, mandatorypart
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2354, in handlepushkey
+      partid=b'%d' % inpart.id, **pycompat.strkwargs(kwargs)
+  mercurial.error.PushkeyFailed: failed to update value for "phases/cd010b8cd998f3981a5a8115f94f8da4ab506089"
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
   $ hg -R main push ssh://user@dummy/other -r e7ec4e813ba6
   pushing to ssh://user@dummy/other
   searching for changes
@@ -877,8 +1353,71 @@
   pushkey: lock state after "phases"
   lock:  free
   wlock: free
-  abort: Clown phase push failed
-  [255]
+  ** Unknown exception encountered with possibly-broken third-party extension "failpush" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "failpush" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: failpush, mandatorypart
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2354, in handlepushkey
+      partid=b'%d' % inpart.id, **pycompat.strkwargs(kwargs)
+  mercurial.error.PushkeyFailed: failed to update value for "phases/cd010b8cd998f3981a5a8115f94f8da4ab506089"
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
   $ hg -R main push ssh://user@dummy/other -r e7ec4e813ba6
   pushing to ssh://user@dummy/other
   searching for changes

test-check-pyflakes.t

--- /hgwork/src/tests/test-check-pyflakes.t
+++ /hgwork/src/tests/test-check-pyflakes.t.err
@@ -24,4 +24,46 @@
   mercurial/util.py:*:* undefined name 'file' (glob) (?)
   mercurial/encoding.py:*:* undefined name 'localstr' (glob) (?)
   tests/run-tests.py:*:* undefined name 'PermissionError' (glob) (?)
+  mercurial/error.py:21: 'typing.Any' imported but unused
+  mercurial/error.py:21: 'typing.AnyStr' imported but unused
+  mercurial/error.py:21: 'typing.Iterable' imported but unused
+  mercurial/error.py:21: 'typing.List' imported but unused
+  mercurial/error.py:21: 'typing.Optional' imported but unused
+  mercurial/error.py:21: 'typing.Sequence' imported but unused
+  mercurial/error.py:21: 'typing.Union' imported but unused
+  mercurial/hgweb/server.py:422: undefined name 'reload'
+  mercurial/i18n.py:22: 'typing.Callable' imported but unused
+  mercurial/i18n.py:22: 'typing.List' imported but unused
+  mercurial/logcmdutil.py:44: 'typing.Sequence' imported but unused
+  mercurial/pathutil.py:17: 'typing.Any' imported but unused
+  mercurial/pathutil.py:17: 'typing.Callable' imported but unused
+  mercurial/pathutil.py:17: 'typing.Iterator' imported but unused
+  mercurial/pathutil.py:17: 'typing.Optional' imported but unused
+  mercurial/phases.py:129: 'typing.Any' imported but unused
+  mercurial/phases.py:129: 'typing.Iterable' imported but unused
+  mercurial/phases.py:129: 'typing.Optional' imported but unused
+  mercurial/phases.py:129: 'typing.Tuple' imported but unused
+  mercurial/phases.py:139: '.ui as uimod' imported but unused
+  mercurial/subrepoutil.py:33: 'typing.Any' imported but unused
+  mercurial/subrepoutil.py:33: 'typing.List' imported but unused
+  mercurial/subrepoutil.py:33: 'typing.Optional' imported but unused
+  mercurial/subrepoutil.py:33: 'typing.Set' imported but unused
+  mercurial/subrepoutil.py:41: '.context' imported but unused
+  mercurial/subrepoutil.py:41: '.localrepo' imported but unused
+  mercurial/subrepoutil.py:41: '.match as matchmod' imported but unused
+  mercurial/subrepoutil.py:41: '.scmutil' imported but unused
+  mercurial/subrepoutil.py:41: '.subrepo' imported but unused
+  mercurial/subrepoutil.py:41: '.ui as uimod' imported but unused
+  mercurial/upgrade_utils/actions.py:22: 'typing.List' imported but unused
+  mercurial/upgrade_utils/actions.py:22: 'typing.Type' imported but unused
+  mercurial/util.py:62: 'typing.Iterator' imported but unused
+  mercurial/util.py:62: 'typing.List' imported but unused
+  mercurial/util.py:62: 'typing.Optional' imported but unused
+  mercurial/util.py:62: 'typing.Tuple' imported but unused
+  mercurial/utils/dateutil.py:21: 'typing.Callable' imported but unused
+  mercurial/utils/dateutil.py:21: 'typing.Dict' imported but unused
+  mercurial/utils/dateutil.py:21: 'typing.Iterable' imported but unused
+  mercurial/utils/dateutil.py:21: 'typing.Optional' imported but unused
+  mercurial/utils/dateutil.py:21: 'typing.Union' imported but unused
+  mercurial/utils/urlutil.py:29: 'typing.Union' imported but unused
   

test-clone.t

--- /hgwork/src/tests/test-clone.t
+++ /hgwork/src/tests/test-clone.t.err
@@ -827,15 +827,85 @@
 Clone with auto share from a repo with filtered revision 0 should not result in share
 
   $ hg --config share.pool=share clone filteredrev0 share-filtered
-  (not using pooled storage: unable to resolve identity of remote)
-  requesting all changes
-  adding changesets
-  adding manifests
-  adding file changes
-  added 1 changesets with 1 changes to 1 files
-  new changesets e082c1832e09
-  updating to branch default
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: share
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 1904, in __getitem__
+      node = self.changelog.node(changeid)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/repoview.py", line 342, in node
+      raise error.FilteredIndexError(rev)
+  mercurial.error.FilteredIndexError: 0
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 629, in revsymbol
+      return repo[r]
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 1945, in __getitem__
+      _(b"filtered revision '%s'") % pycompat.bytestr(changeid)
+  mercurial.error.FilteredRepoLookupError: b"filtered revision '0'"
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 395, in lookup
+      return self._repo.lookup(key)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2182, in lookup
+      node = scmutil.revsymbol(self, key).node()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 667, in revsymbol
+      raise _filterederror(repo, symbol)
+  mercurial.error.FilteredRepoLookupError: b"filtered revision '0' (not in 'served' subset)"
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/share.py", line 162, in clone
+      return orig(ui, source, *args, **opts)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 1967, in clone
+      depth=opts.get(b'depth') or None,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hg.py", line 764, in clone
+      b'key': b'0',
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
 Clone from repo with content should result in shared store being created
 

test-eol-hook.t

--- /hgwork/src/tests/test-eol-hook.t
+++ /hgwork/src/tests/test-eol-hook.t.err
@@ -43,9 +43,86 @@
     a.txt in a8ee6548cd86 should not have CRLF line endings
   transaction abort!
   rollback completed
-  abort: end-of-line check failed:
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: eol
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 116, in pythonhook
+      r = obj(ui=ui, repo=repo, hooktype=htype, **pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/eol.py", line 346, in checkheadshook
+      _checkhook(ui, repo, node, True)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/eol.py", line 335, in _checkhook
+      _(b"end-of-line check failed:
") + b"
".join(msgs)
+  mercurial.error.Abort: end-of-line check failed:
     a.txt in a8ee6548cd86 should not have CRLF line endings
-  [255]
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ printf "first
second
third
" > a.txt
   $ hg commit -m 'LF a.txt (fixed)'
@@ -70,9 +147,86 @@
     crlf.txt in 004ba2132725 should not have LF line endings
   transaction abort!
   rollback completed
-  abort: end-of-line check failed:
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: eol
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 116, in pythonhook
+      r = obj(ui=ui, repo=repo, hooktype=htype, **pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/eol.py", line 346, in checkheadshook
+      _checkhook(ui, repo, node, True)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/eol.py", line 335, in _checkhook
+      _(b"end-of-line check failed:
") + b"
".join(msgs)
+  mercurial.error.Abort: end-of-line check failed:
     crlf.txt in 004ba2132725 should not have LF line endings
-  [255]
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ printf "first
second
third
" > crlf.txt
   $ hg commit -m 'CRLF crlf.txt (fixed)'
@@ -97,9 +251,86 @@
     b.txt in fbcf9b1025f5 should not have CRLF line endings
   transaction abort!
   rollback completed
-  abort: end-of-line check failed:
-    b.txt in fbcf9b1025f5 should not have CRLF line endings
-  [255]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: eol
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 116, in pythonhook
+      r = obj(ui=ui, repo=repo, hooktype=htype, **pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/eol.py", line 346, in checkheadshook
+      _checkhook(ui, repo, node, True)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/eol.py", line 335, in _checkhook
+      _(b"end-of-line check failed:
") + b"
".join(msgs)
+  mercurial.error.Abort: end-of-line check failed:
+    b.txt in fbcf9b1025f5 should not have CRLF line endings
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ hg up -r -2
   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
@@ -117,9 +348,86 @@
     b.txt in fbcf9b1025f5 should not have CRLF line endings
   transaction abort!
   rollback completed
-  abort: end-of-line check failed:
-    b.txt in fbcf9b1025f5 should not have CRLF line endings
-  [255]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: eol
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 116, in pythonhook
+      r = obj(ui=ui, repo=repo, hooktype=htype, **pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/eol.py", line 346, in checkheadshook
+      _checkhook(ui, repo, node, True)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/eol.py", line 335, in _checkhook
+      _(b"end-of-line check failed:
") + b"
".join(msgs)
+  mercurial.error.Abort: end-of-line check failed:
+    b.txt in fbcf9b1025f5 should not have CRLF line endings
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
 Test checkheadshook alias
 
@@ -137,9 +445,86 @@
     b.txt in fbcf9b1025f5 should not have CRLF line endings
   transaction abort!
   rollback completed
-  abort: end-of-line check failed:
-    b.txt in fbcf9b1025f5 should not have CRLF line endings
-  [255]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: eol
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 116, in pythonhook
+      r = obj(ui=ui, repo=repo, hooktype=htype, **pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/eol.py", line 346, in checkheadshook
+      _checkhook(ui, repo, node, True)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/eol.py", line 335, in _checkhook
+      _(b"end-of-line check failed:
") + b"
".join(msgs)
+  mercurial.error.Abort: end-of-line check failed:
+    b.txt in fbcf9b1025f5 should not have CRLF line endings
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
 We can fix the head and push again
 
@@ -173,9 +558,86 @@
     b.txt in fbcf9b1025f5 should not have CRLF line endings
   transaction abort!
   rollback completed
-  abort: end-of-line check failed:
-    b.txt in fbcf9b1025f5 should not have CRLF line endings
-  [255]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: eol
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 116, in pythonhook
+      r = obj(ui=ui, repo=repo, hooktype=htype, **pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/eol.py", line 341, in checkallhook
+      _checkhook(ui, repo, node, False)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/eol.py", line 335, in _checkhook
+      _(b"end-of-line check failed:
") + b"
".join(msgs)
+  mercurial.error.Abort: end-of-line check failed:
+    b.txt in fbcf9b1025f5 should not have CRLF line endings
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
 But we can push the clean head
 
@@ -203,9 +665,86 @@
     d.txt in a7040e68714f should not have CRLF line endings
   transaction abort!
   rollback completed
-  abort: end-of-line check failed:
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: eol
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 116, in pythonhook
+      r = obj(ui=ui, repo=repo, hooktype=htype, **pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/eol.py", line 341, in checkallhook
+      _checkhook(ui, repo, node, False)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/eol.py", line 335, in _checkhook
+      _(b"end-of-line check failed:
") + b"
".join(msgs)
+  mercurial.error.Abort: end-of-line check failed:
     b.txt in fbcf9b1025f5 should not have CRLF line endings
     d.txt in a7040e68714f should not have CRLF line endings
-  [255]
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ cd ..

test-hook.t

--- /hgwork/src/tests/test-hook.t
+++ /hgwork/src/tests/test-hook.t.err
@@ -644,8 +644,77 @@
   HG_TXNNAME=push
   HG_URL=file:$TESTTMP/a
   
-  abort: prepushkey hook exited with status 1
-  [40]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2398, in handlebookmark
+      b'prepushkey', throw=True, **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 356, in runhooks
+      r = _exthook(ui, repo, htype, hname, cmd, args, throw)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 205, in _exthook
+      raise error.HookAbort(_(b'%s hook %s') % (name, desc))
+  mercurial.error.HookAbort: prepushkey hook exited with status 1
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
   $ cd ../a
 
 test that prelistkeys can prevent listing keys
@@ -679,8 +748,65 @@
   HG_HOOKTYPE=prelistkeys
   HG_NAMESPACE=bookmarks
   
-  abort: prelistkeys hook exited with status 1
-  [40]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 392, in listkeys
+      return self._repo.listkeys(namespace)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 3439, in listkeys
+      self.hook(b'prelistkeys', throw=True, namespace=namespace)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 356, in runhooks
+      r = _exthook(ui, repo, htype, hname, cmd, args, throw)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 205, in _exthook
+      raise error.HookAbort(_(b'%s hook %s') % (name, desc))
+  mercurial.error.HookAbort: prelistkeys hook exited with status 1
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5430, in pull
+      b'listkeys', {b'namespace': b'bookmarks'}
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
   $ cd ../a
   $ rm .hg/hgrc
 
@@ -786,8 +912,75 @@
   HG_HOOKTYPE=preoutgoing
   HG_SOURCE=pull
   
-  abort: preoutgoing.forbid hook exited with status 1
-  [40]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 373, in getbundle
+      **kwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2377, in getbundlechunks
+      **pycompat.strkwargs(kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2436, in _getbundlechangegrouppart
+      remote_sidedata=remote_sidedata,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 1918, in makestream
+      repo.hook(b'preoutgoing', throw=True, source=source)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 356, in runhooks
+      r = _exthook(ui, repo, htype, hname, cmd, args, throw)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 205, in _exthook
+      raise error.HookAbort(_(b'%s hook %s') % (name, desc))
+  mercurial.error.HookAbort: preoutgoing.forbid hook exited with status 1
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5463, in pull
+      confirm=opts.get(b'confirm'),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1681, in pull
+      _fullpullbundle2(repo, pullop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1532, in _fullpullbundle2
+      _pullbundle2(pullop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1881, in _pullbundle2
+      bundle = e.callcommand(b'getbundle', args).result()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
 outgoing hooks work for local clones
 
@@ -903,8 +1096,77 @@
   pulling from ../a
   searching for changes
   error: preoutgoing.abort hook failed: raise abort from hook
-  abort: raise abort from hook
-  [255]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 373, in getbundle
+      **kwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2377, in getbundlechunks
+      **pycompat.strkwargs(kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2436, in _getbundlechangegrouppart
+      remote_sidedata=remote_sidedata,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 1918, in makestream
+      repo.hook(b'preoutgoing', throw=True, source=source)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 116, in pythonhook
+      r = obj(ui=ui, repo=repo, hooktype=htype, **pycompat.strkwargs(args))
+    File "$TESTTMP/b/hooktests.py", line 29, in aborthook
+      raise error.Abort(b'raise abort from hook')
+  mercurial.error.Abort: raise abort from hook
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5463, in pull
+      confirm=opts.get(b'confirm'),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1681, in pull
+      _fullpullbundle2(repo, pullop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1532, in _fullpullbundle2
+      _pullbundle2(pullop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1881, in _pullbundle2
+      bundle = e.callcommand(b'getbundle', args).result()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ echo '[hooks]' > ../a/.hg/hgrc
   $ echo 'preoutgoing.fail = python:hooktests.failhook' >> ../a/.hg/hgrc
@@ -914,59 +1176,584 @@
   hook args:
     hooktype preoutgoing
     source pull
-  abort: preoutgoing.fail hook failed
-  [40]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 373, in getbundle
+      **kwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2377, in getbundlechunks
+      **pycompat.strkwargs(kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2436, in _getbundlechangegrouppart
+      remote_sidedata=remote_sidedata,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 1918, in makestream
+      repo.hook(b'preoutgoing', throw=True, source=source)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 142, in pythonhook
+      raise error.HookAbort(_(b'%s hook failed') % hname)
+  mercurial.error.HookAbort: preoutgoing.fail hook failed
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5463, in pull
+      confirm=opts.get(b'confirm'),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1681, in pull
+      _fullpullbundle2(repo, pullop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1532, in _fullpullbundle2
+      _pullbundle2(pullop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1881, in _pullbundle2
+      bundle = e.callcommand(b'getbundle', args).result()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ echo '[hooks]' > ../a/.hg/hgrc
   $ echo 'preoutgoing.uncallable = python:hooktests.uncallable' >> ../a/.hg/hgrc
   $ hg pull ../a
   pulling from ../a
   searching for changes
-  abort: preoutgoing.uncallable hook is invalid: "hooktests.uncallable" is not callable
-  [255]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 373, in getbundle
+      **kwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2377, in getbundlechunks
+      **pycompat.strkwargs(kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2436, in _getbundlechangegrouppart
+      remote_sidedata=remote_sidedata,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 1918, in makestream
+      repo.hook(b'preoutgoing', throw=True, source=source)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 109, in pythonhook
+      % (hname, funcname)
+  mercurial.error.HookLoadError: preoutgoing.uncallable hook is invalid: "hooktests.uncallable" is not callable
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5463, in pull
+      confirm=opts.get(b'confirm'),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1681, in pull
+      _fullpullbundle2(repo, pullop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1532, in _fullpullbundle2
+      _pullbundle2(pullop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1881, in _pullbundle2
+      bundle = e.callcommand(b'getbundle', args).result()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ echo '[hooks]' > ../a/.hg/hgrc
   $ echo 'preoutgoing.nohook = python:hooktests.nohook' >> ../a/.hg/hgrc
   $ hg pull ../a
   pulling from ../a
   searching for changes
-  abort: preoutgoing.nohook hook is invalid: "hooktests.nohook" is not defined
-  [255]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 100, in pythonhook
+      obj = getattr(obj, p)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 309, in w
+      return f(object, sysstr(name), *args)
+  AttributeError: module 'hooktests' has no attribute 'nohook'
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 373, in getbundle
+      **kwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2377, in getbundlechunks
+      **pycompat.strkwargs(kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2436, in _getbundlechangegrouppart
+      remote_sidedata=remote_sidedata,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 1918, in makestream
+      repo.hook(b'preoutgoing', throw=True, source=source)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 104, in pythonhook
+      % (hname, funcname)
+  mercurial.error.HookLoadError: preoutgoing.nohook hook is invalid: "hooktests.nohook" is not defined
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5463, in pull
+      confirm=opts.get(b'confirm'),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1681, in pull
+      _fullpullbundle2(repo, pullop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1532, in _fullpullbundle2
+      _pullbundle2(pullop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1881, in _pullbundle2
+      bundle = e.callcommand(b'getbundle', args).result()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ echo '[hooks]' > ../a/.hg/hgrc
   $ echo 'preoutgoing.nomodule = python:nomodule' >> ../a/.hg/hgrc
   $ hg pull ../a
   pulling from ../a
   searching for changes
-  abort: preoutgoing.nomodule hook is invalid: "nomodule" not in a module
-  [255]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 373, in getbundle
+      **kwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2377, in getbundlechunks
+      **pycompat.strkwargs(kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2436, in _getbundlechangegrouppart
+      remote_sidedata=remote_sidedata,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 1918, in makestream
+      repo.hook(b'preoutgoing', throw=True, source=source)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 49, in pythonhook
+      % (hname, funcname)
+  mercurial.error.HookLoadError: preoutgoing.nomodule hook is invalid: "nomodule" not in a module
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5463, in pull
+      confirm=opts.get(b'confirm'),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1681, in pull
+      _fullpullbundle2(repo, pullop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1532, in _fullpullbundle2
+      _pullbundle2(pullop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1881, in _pullbundle2
+      bundle = e.callcommand(b'getbundle', args).result()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ echo '[hooks]' > ../a/.hg/hgrc
   $ echo 'preoutgoing.badmodule = python:nomodule.nowhere' >> ../a/.hg/hgrc
   $ hg pull ../a
   pulling from ../a
   searching for changes
-  abort: preoutgoing.badmodule hook is invalid: import of "nomodule" failed
-  (run with --traceback for stack trace)
-  [255]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 61, in pythonhook
+      obj = __import__(pycompat.sysstr(modname))
+  ModuleNotFoundError: No module named 'nomodule'
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 66, in pythonhook
+      obj = __import__("hgext_%s" % pycompat.sysstr(modname))
+  ModuleNotFoundError: No module named 'hgext_nomodule'
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 373, in getbundle
+      **kwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2377, in getbundlechunks
+      **pycompat.strkwargs(kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2436, in _getbundlechangegrouppart
+      remote_sidedata=remote_sidedata,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 1918, in makestream
+      repo.hook(b'preoutgoing', throw=True, source=source)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 95, in pythonhook
+      hint=tracebackhint,
+  mercurial.error.HookLoadError: preoutgoing.badmodule hook is invalid: import of "nomodule" failed
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5463, in pull
+      confirm=opts.get(b'confirm'),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1681, in pull
+      _fullpullbundle2(repo, pullop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1532, in _fullpullbundle2
+      _pullbundle2(pullop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1881, in _pullbundle2
+      bundle = e.callcommand(b'getbundle', args).result()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ echo '[hooks]' > ../a/.hg/hgrc
   $ echo 'preoutgoing.unreachable = python:hooktests.container.unreachable' >> ../a/.hg/hgrc
   $ hg pull ../a
   pulling from ../a
   searching for changes
-  abort: preoutgoing.unreachable hook is invalid: import of "hooktests.container" failed
-  (run with --traceback for stack trace)
-  [255]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 61, in pythonhook
+      obj = __import__(pycompat.sysstr(modname))
+  ModuleNotFoundError: No module named 'hooktests.container'; 'hooktests' is not a package
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 66, in pythonhook
+      obj = __import__("hgext_%s" % pycompat.sysstr(modname))
+  ModuleNotFoundError: No module named 'hgext_hooktests'
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 373, in getbundle
+      **kwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2377, in getbundlechunks
+      **pycompat.strkwargs(kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2436, in _getbundlechangegrouppart
+      remote_sidedata=remote_sidedata,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 1918, in makestream
+      repo.hook(b'preoutgoing', throw=True, source=source)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 95, in pythonhook
+      hint=tracebackhint,
+  mercurial.error.HookLoadError: preoutgoing.unreachable hook is invalid: import of "hooktests.container" failed
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5463, in pull
+      confirm=opts.get(b'confirm'),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1681, in pull
+      _fullpullbundle2(repo, pullop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1532, in _fullpullbundle2
+      _pullbundle2(pullop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1881, in _pullbundle2
+      bundle = e.callcommand(b'getbundle', args).result()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ echo '[hooks]' > ../a/.hg/hgrc
   $ echo 'preoutgoing.syntaxerror = python:syntaxerror.syntaxerror' >> ../a/.hg/hgrc
   $ hg pull ../a
   pulling from ../a
   searching for changes
-  abort: preoutgoing.syntaxerror hook is invalid: import of "syntaxerror" failed
-  (run with --traceback for stack trace)
-  [255]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 61, in pythonhook
+      obj = __import__(pycompat.sysstr(modname))
+    File "<frozen importlib._bootstrap>", line 983, in _find_and_load
+    File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
+    File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgdemandimport/demandimportpy3.py", line 52, in exec_module
+      self.loader.exec_module(module)
+    File "$TESTTMP/b/syntaxerror.py", line 1
+      (foo
+         ^
+  SyntaxError: unexpected EOF while parsing
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 66, in pythonhook
+      obj = __import__("hgext_%s" % pycompat.sysstr(modname))
+  ModuleNotFoundError: No module named 'hgext_syntaxerror'
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 373, in getbundle
+      **kwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2377, in getbundlechunks
+      **pycompat.strkwargs(kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2436, in _getbundlechangegrouppart
+      remote_sidedata=remote_sidedata,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 1918, in makestream
+      repo.hook(b'preoutgoing', throw=True, source=source)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 95, in pythonhook
+      hint=tracebackhint,
+  mercurial.error.HookLoadError: preoutgoing.syntaxerror hook is invalid: import of "syntaxerror" failed
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5463, in pull
+      confirm=opts.get(b'confirm'),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1681, in pull
+      _fullpullbundle2(repo, pullop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1532, in _fullpullbundle2
+      _pullbundle2(pullop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1881, in _pullbundle2
+      bundle = e.callcommand(b'getbundle', args).result()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ hg pull ../a --traceback 2>&1 | egrep 'pulling|searching|^exception|Traceback|SyntaxError|ImportError|ModuleNotFoundError|HookLoadError|abort'
   pulling from ../a
@@ -988,7 +1775,14 @@
   Traceback (most recent call last): (py3 !)
       raise error.HookLoadError( (py38 !)
   mercurial.error.HookLoadError: preoutgoing.syntaxerror hook is invalid: import of "syntaxerror" failed (py3 !)
-  abort: preoutgoing.syntaxerror hook is invalid: import of "syntaxerror" failed
+  Traceback (most recent call last):
+  Traceback (most recent call last):
+  SyntaxError: unexpected EOF while parsing
+  Traceback (most recent call last):
+  ModuleNotFoundError: No module named 'hgext_syntaxerror'
+  Traceback (most recent call last):
+  mercurial.error.HookLoadError: preoutgoing.syntaxerror hook is invalid: import of "syntaxerror" failed
+  Traceback (most recent call last):
 
   $ echo '[hooks]' > ../a/.hg/hgrc
   $ echo 'preoutgoing.pass = python:hooktests.passhook' >> ../a/.hg/hgrc

test-http-bad-server.t

--- /hgwork/src/tests/test-http-bad-server.t
+++ /hgwork/src/tests/test-http-bad-server.t.err
@@ -158,8 +158,100 @@
   $ cat hg.pid > $DAEMON_PIDS
   $ hg clone http://localhost:$HGPORT/ clone
   requesting all changes
-  abort: error: bad HTTP status line: * (glob)
-  [100]
+  ** Unknown exception encountered with possibly-broken third-party extension "fakeversion" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "fakeversion" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 4.2)
+  ** Extensions loaded: badserver, fakeversion
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/keepalive.py", line 241, in do_open
+      r = h.getresponse()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/url.py", line 207, in getresponse
+      return keepalive.HTTPConnection.getresponse(self)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/keepalive.py", line 459, in safegetresponse
+      return cls.getresponse(self)
+    File "/usr/lib/python3.7/http/client.py", line 1352, in getresponse
+      response.begin()
+    File "/usr/lib/python3.7/http/client.py", line 310, in begin
+      version, status, reason = self._read_status()
+    File "/usr/lib/python3.7/http/client.py", line 279, in _read_status
+      raise RemoteDisconnected("Remote end closed connection without"
+  http.client.RemoteDisconnected: Remote end closed connection without response
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 459, in getbundle
+      f = self._callcompressable(b"getbundle", **pycompat.strkwargs(opts))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 526, in _callcompressable
+      return self._callstream(cmd, _compressible=True, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/usr/lib/python3.7/urllib/request.py", line 525, in open
+      response = self._open(req, data)
+    File "/usr/lib/python3.7/urllib/request.py", line 543, in _open
+      '_open', req)
+    File "/usr/lib/python3.7/urllib/request.py", line 503, in _call_chain
+      result = func(*args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/url.py", line 332, in http_open
+      return self.do_open(httpconnection, req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/keepalive.py", line 246, in do_open
+      _(b'bad HTTP status line: %s') % pycompat.sysbytes(err.line)
+  urllib.error.URLError: <urlopen error b"bad HTTP status line: ''">
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 1967, in clone
+      depth=opts.get(b'depth') or None,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hg.py", line 957, in clone
+      depth=depth,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1681, in pull
+      _fullpullbundle2(repo, pullop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1532, in _fullpullbundle2
+      _pullbundle2(pullop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1881, in _pullbundle2
+      bundle = e.callcommand(b'getbundle', args).result()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ killdaemons.py $DAEMON_PIDS
 
@@ -441,12 +533,73 @@
 
   $ hg clone http://localhost:$HGPORT/ clone
   requesting all changes
-  abort: 'http://localhost:$HGPORT/' does not appear to be an hg repository:
-  ---%<--- (application/mercuri)
-  
-  ---%<---
-  
-  [255]
+  ** Unknown exception encountered with possibly-broken third-party extension "fakeversion" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "fakeversion" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 4.2)
+  ** Extensions loaded: badserver, fakeversion
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 459, in getbundle
+      f = self._callcompressable(b"getbundle", **pycompat.strkwargs(opts))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 526, in _callcompressable
+      return self._callstream(cmd, _compressible=True, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 454, in _callstream
+      self.ui, self._url, cu, qs, resp, _compressible
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 350, in parsev1commandresponse
+      raise error.RepoError(msg)
+  mercurial.error.RepoError: b"'http://localhost:$HGPORT/' does not appear to be an hg repository:
---%<--- (application/mercuri)

---%<---
"
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 1967, in clone
+      depth=opts.get(b'depth') or None,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hg.py", line 957, in clone
+      depth=depth,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1681, in pull
+      _fullpullbundle2(repo, pullop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1532, in _fullpullbundle2
+      _pullbundle2(pullop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1881, in _pullbundle2
+      bundle = e.callcommand(b'getbundle', args).result()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ killdaemons.py $DAEMON_PIDS
 
@@ -504,8 +657,75 @@
 
   $ hg clone http://localhost:$HGPORT/ clone
   requesting all changes
-  abort: stream ended unexpectedly (got 0 bytes, expected 1)
-  [255]
+  ** Unknown exception encountered with possibly-broken third-party extension "fakeversion" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "fakeversion" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 4.2)
+  ** Extensions loaded: badserver, fakeversion
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 459, in getbundle
+      f = self._callcompressable(b"getbundle", **pycompat.strkwargs(opts))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 526, in _callcompressable
+      return self._callstream(cmd, _compressible=True, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 454, in _callstream
+      self.ui, self._url, cu, qs, resp, _compressible
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 370, in parsev1commandresponse
+      elen = struct.unpack(b'B', util.readexactly(resp, 1))[0]
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 3170, in readexactly
+      % (len(s), n)
+  mercurial.error.Abort: stream ended unexpectedly (got 0 bytes, expected 1)
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 1967, in clone
+      depth=opts.get(b'depth') or None,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hg.py", line 957, in clone
+      depth=depth,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1681, in pull
+      _fullpullbundle2(repo, pullop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1532, in _fullpullbundle2
+      _pullbundle2(pullop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1881, in _pullbundle2
+      bundle = e.callcommand(b'getbundle', args).result()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ killdaemons.py $DAEMON_PIDS
 
@@ -542,9 +762,108 @@
 
   $ hg clone http://localhost:$HGPORT/ clone
   requesting all changes
-  abort: HTTP request error (incomplete response)
-  (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
-  [255]
+  ** Unknown exception encountered with possibly-broken third-party extension "fakeversion" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "fakeversion" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 4.2)
+  ** Extensions loaded: badserver, fakeversion
+  Traceback (most recent call last):
+    File "/usr/lib/python3.7/http/client.py", line 558, in _get_chunk_left
+      chunk_left = self._read_next_chunk_size()
+    File "/usr/lib/python3.7/http/client.py", line 525, in _read_next_chunk_size
+      return int(line, 16)
+  ValueError: invalid literal for int() with base 16: b''
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/usr/lib/python3.7/http/client.py", line 590, in _readinto_chunked
+      chunk_left = self._get_chunk_left()
+    File "/usr/lib/python3.7/http/client.py", line 560, in _get_chunk_left
+      raise IncompleteRead(b'')
+  http.client.IncompleteRead: IncompleteRead(0 bytes read)
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/url.py", line 691, in read
+      return origread(size)
+    File "/usr/lib/python3.7/http/client.py", line 461, in read
+      n = self.readinto(b)
+    File "/usr/lib/python3.7/http/client.py", line 495, in readinto
+      return self._readinto_chunked(b)
+    File "/usr/lib/python3.7/http/client.py", line 606, in _readinto_chunked
+      raise IncompleteRead(bytes(b[0:total_bytes]))
+  http.client.IncompleteRead: IncompleteRead(0 bytes read)
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 459, in getbundle
+      f = self._callcompressable(b"getbundle", **pycompat.strkwargs(opts))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 526, in _callcompressable
+      return self._callstream(cmd, _compressible=True, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 454, in _callstream
+      self.ui, self._url, cu, qs, resp, _compressible
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 370, in parsev1commandresponse
+      elen = struct.unpack(b'B', util.readexactly(resp, 1))[0]
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 3166, in readexactly
+      s = stream.read(n)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/url.py", line 707, in read
+      b'this may be an intermittent network failure; '
+  mercurial.error.PeerTransportError: HTTP request error (incomplete response)
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 1967, in clone
+      depth=opts.get(b'depth') or None,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hg.py", line 957, in clone
+      depth=depth,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1681, in pull
+      _fullpullbundle2(repo, pullop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1532, in _fullpullbundle2
+      _pullbundle2(pullop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1881, in _pullbundle2
+      bundle = e.callcommand(b'getbundle', args).result()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ killdaemons.py $DAEMON_PIDS
 
@@ -663,9 +982,95 @@
 
   $ hg clone http://localhost:$HGPORT/ clone
   requesting all changes
-  abort: HTTP request error (incomplete response) (py3 !)
-  (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
-  [255]
+  ** Unknown exception encountered with possibly-broken third-party extension "fakeversion" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "fakeversion" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 4.2)
+  ** Extensions loaded: badserver, fakeversion
+  Traceback (most recent call last):
+    File "/usr/lib/python3.7/http/client.py", line 595, in _readinto_chunked
+      n = self._safe_readinto(mvb)
+    File "/usr/lib/python3.7/http/client.py", line 642, in _safe_readinto
+      raise IncompleteRead(bytes(mvb[0:total_bytes]), len(b))
+  http.client.IncompleteRead: IncompleteRead(1 bytes read, 4 more expected)
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/url.py", line 691, in read
+      return origread(size)
+    File "/usr/lib/python3.7/http/client.py", line 461, in read
+      n = self.readinto(b)
+    File "/usr/lib/python3.7/http/client.py", line 495, in readinto
+      return self._readinto_chunked(b)
+    File "/usr/lib/python3.7/http/client.py", line 606, in _readinto_chunked
+      raise IncompleteRead(bytes(b[0:total_bytes]))
+  http.client.IncompleteRead: IncompleteRead(0 bytes read)
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 461, in getbundle
+      return bundle2.getunbundler(self.ui, f)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 784, in getunbundler
+      magicstring = changegroup.readexactly(fp, 4)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 3166, in readexactly
+      s = stream.read(n)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/url.py", line 707, in read
+      b'this may be an intermittent network failure; '
+  mercurial.error.PeerTransportError: HTTP request error (incomplete response)
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 1967, in clone
+      depth=opts.get(b'depth') or None,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hg.py", line 957, in clone
+      depth=depth,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1681, in pull
+      _fullpullbundle2(repo, pullop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1532, in _fullpullbundle2
+      _pullbundle2(pullop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1881, in _pullbundle2
+      bundle = e.callcommand(b'getbundle', args).result()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ killdaemons.py $DAEMON_PIDS
 

test-http-permissions.t

--- /hgwork/src/tests/test-http-permissions.t
+++ /hgwork/src/tests/test-http-permissions.t.err
@@ -873,14 +873,156 @@
   pushing to http://localhost:$HGPORT/
   searching for changes
   no changes found
-  abort: HTTP Error 403: ssl required
-  [100]
+  ** Unknown exception encountered with possibly-broken third-party extension "fakeremoteuser" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "fakeremoteuser" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: fakeremoteuser, strip
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/usr/lib/python3.7/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/usr/lib/python3.7/urllib/request.py", line 641, in http_response
+      'http', request, response, code, msg, hdrs)
+    File "/usr/lib/python3.7/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 503, in _call_chain
+      result = func(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 649, in http_error_default
+      raise HTTPError(req.full_url, code, msg, hdrs, fp)
+  urllib.error.HTTPError: HTTP Error 403: ssl required
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ hg --cwd ../test2 push http://localhost:$HGPORT/
   pushing to http://localhost:$HGPORT/
   searching for changes
-  abort: HTTP Error 403: ssl required
-  [100]
+  ** Unknown exception encountered with possibly-broken third-party extension "fakeremoteuser" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "fakeremoteuser" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: fakeremoteuser, strip
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/usr/lib/python3.7/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/usr/lib/python3.7/urllib/request.py", line 641, in http_response
+      'http', request, response, code, msg, hdrs)
+    File "/usr/lib/python3.7/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 503, in _call_chain
+      result = func(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 649, in http_error_default
+      raise HTTPError(req.full_url, code, msg, hdrs, fp)
+  urllib.error.HTTPError: HTTP Error 403: ssl required
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ killdaemons.py
 
@@ -936,14 +1078,170 @@
   pushing to http://localhost:$HGPORT/
   searching for changes
   no changes found
-  abort: authorization failed
-  [255]
+  ** Unknown exception encountered with possibly-broken third-party extension "fakeremoteuser" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "fakeremoteuser" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: fakeremoteuser, strip
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/usr/lib/python3.7/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/usr/lib/python3.7/urllib/request.py", line 641, in http_response
+      'http', request, response, code, msg, hdrs)
+    File "/usr/lib/python3.7/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 503, in _call_chain
+      result = func(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 649, in http_error_default
+      raise HTTPError(req.full_url, code, msg, hdrs, fp)
+  urllib.error.HTTPError: HTTP Error 401: push not authorized
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 282, in sendrequest
+      raise error.Abort(_(b'authorization failed'))
+  mercurial.error.Abort: authorization failed
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ hg --cwd ../test2 push http://localhost:$HGPORT/
   pushing to http://localhost:$HGPORT/
   searching for changes
-  abort: authorization failed
-  [255]
+  ** Unknown exception encountered with possibly-broken third-party extension "fakeremoteuser" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "fakeremoteuser" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: fakeremoteuser, strip
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/usr/lib/python3.7/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/usr/lib/python3.7/urllib/request.py", line 641, in http_response
+      'http', request, response, code, msg, hdrs)
+    File "/usr/lib/python3.7/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 503, in _call_chain
+      result = func(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 649, in http_error_default
+      raise HTTPError(req.full_url, code, msg, hdrs, fp)
+  urllib.error.HTTPError: HTTP Error 401: push not authorized
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 282, in sendrequest
+      raise error.Abort(_(b'authorization failed'))
+  mercurial.error.Abort: authorization failed
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ killdaemons.py
 
@@ -993,14 +1291,170 @@
   pushing to http://localhost:$HGPORT/
   searching for changes
   no changes found
-  abort: authorization failed
-  [255]
+  ** Unknown exception encountered with possibly-broken third-party extension "fakeremoteuser" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "fakeremoteuser" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: fakeremoteuser, strip
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/usr/lib/python3.7/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/usr/lib/python3.7/urllib/request.py", line 641, in http_response
+      'http', request, response, code, msg, hdrs)
+    File "/usr/lib/python3.7/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 503, in _call_chain
+      result = func(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 649, in http_error_default
+      raise HTTPError(req.full_url, code, msg, hdrs, fp)
+  urllib.error.HTTPError: HTTP Error 401: push not authorized
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 282, in sendrequest
+      raise error.Abort(_(b'authorization failed'))
+  mercurial.error.Abort: authorization failed
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ hg --cwd ../test2 push http://localhost:$HGPORT/
   pushing to http://localhost:$HGPORT/
   searching for changes
-  abort: authorization failed
-  [255]
+  ** Unknown exception encountered with possibly-broken third-party extension "fakeremoteuser" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "fakeremoteuser" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: fakeremoteuser, strip
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/usr/lib/python3.7/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/usr/lib/python3.7/urllib/request.py", line 641, in http_response
+      'http', request, response, code, msg, hdrs)
+    File "/usr/lib/python3.7/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 503, in _call_chain
+      result = func(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 649, in http_error_default
+      raise HTTPError(req.full_url, code, msg, hdrs, fp)
+  urllib.error.HTTPError: HTTP Error 401: push not authorized
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 282, in sendrequest
+      raise error.Abort(_(b'authorization failed'))
+  mercurial.error.Abort: authorization failed
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ killdaemons.py
 
@@ -1056,14 +1510,170 @@
   pushing to http://localhost:$HGPORT/
   searching for changes
   no changes found
-  abort: authorization failed
-  [255]
+  ** Unknown exception encountered with possibly-broken third-party extension "fakeremoteuser" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "fakeremoteuser" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: fakeremoteuser, strip
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/usr/lib/python3.7/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/usr/lib/python3.7/urllib/request.py", line 641, in http_response
+      'http', request, response, code, msg, hdrs)
+    File "/usr/lib/python3.7/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 503, in _call_chain
+      result = func(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 649, in http_error_default
+      raise HTTPError(req.full_url, code, msg, hdrs, fp)
+  urllib.error.HTTPError: HTTP Error 401: push not authorized
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 282, in sendrequest
+      raise error.Abort(_(b'authorization failed'))
+  mercurial.error.Abort: authorization failed
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ hg --cwd ../test2 push http://localhost:$HGPORT/
   pushing to http://localhost:$HGPORT/
   searching for changes
-  abort: authorization failed
-  [255]
+  ** Unknown exception encountered with possibly-broken third-party extension "fakeremoteuser" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "fakeremoteuser" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: fakeremoteuser, strip
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/usr/lib/python3.7/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/usr/lib/python3.7/urllib/request.py", line 641, in http_response
+      'http', request, response, code, msg, hdrs)
+    File "/usr/lib/python3.7/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 503, in _call_chain
+      result = func(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 649, in http_error_default
+      raise HTTPError(req.full_url, code, msg, hdrs, fp)
+  urllib.error.HTTPError: HTTP Error 401: push not authorized
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 282, in sendrequest
+      raise error.Abort(_(b'authorization failed'))
+  mercurial.error.Abort: authorization failed
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ killdaemons.py
 
@@ -1113,14 +1723,170 @@
   pushing to http://localhost:$HGPORT/
   searching for changes
   no changes found
-  abort: authorization failed
-  [255]
+  ** Unknown exception encountered with possibly-broken third-party extension "fakeremoteuser" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "fakeremoteuser" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: fakeremoteuser, strip
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/usr/lib/python3.7/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/usr/lib/python3.7/urllib/request.py", line 641, in http_response
+      'http', request, response, code, msg, hdrs)
+    File "/usr/lib/python3.7/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 503, in _call_chain
+      result = func(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 649, in http_error_default
+      raise HTTPError(req.full_url, code, msg, hdrs, fp)
+  urllib.error.HTTPError: HTTP Error 401: push not authorized
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 282, in sendrequest
+      raise error.Abort(_(b'authorization failed'))
+  mercurial.error.Abort: authorization failed
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ hg --cwd ../test2 push http://localhost:$HGPORT/
   pushing to http://localhost:$HGPORT/
   searching for changes
-  abort: authorization failed
-  [255]
+  ** Unknown exception encountered with possibly-broken third-party extension "fakeremoteuser" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "fakeremoteuser" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: fakeremoteuser, strip
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/usr/lib/python3.7/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/usr/lib/python3.7/urllib/request.py", line 641, in http_response
+      'http', request, response, code, msg, hdrs)
+    File "/usr/lib/python3.7/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 503, in _call_chain
+      result = func(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 649, in http_error_default
+      raise HTTPError(req.full_url, code, msg, hdrs, fp)
+  urllib.error.HTTPError: HTTP Error 401: push not authorized
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 282, in sendrequest
+      raise error.Abort(_(b'authorization failed'))
+  mercurial.error.Abort: authorization failed
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ killdaemons.py
 
@@ -1286,14 +2052,170 @@
   pushing to http://localhost:$HGPORT/
   searching for changes
   no changes found
-  abort: authorization failed
-  [255]
+  ** Unknown exception encountered with possibly-broken third-party extension "fakeremoteuser" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "fakeremoteuser" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: fakeremoteuser, strip
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/usr/lib/python3.7/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/usr/lib/python3.7/urllib/request.py", line 641, in http_response
+      'http', request, response, code, msg, hdrs)
+    File "/usr/lib/python3.7/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 503, in _call_chain
+      result = func(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 649, in http_error_default
+      raise HTTPError(req.full_url, code, msg, hdrs, fp)
+  urllib.error.HTTPError: HTTP Error 401: push not authorized
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 282, in sendrequest
+      raise error.Abort(_(b'authorization failed'))
+  mercurial.error.Abort: authorization failed
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ hg --cwd ../test2 push http://localhost:$HGPORT/
   pushing to http://localhost:$HGPORT/
   searching for changes
-  abort: authorization failed
-  [255]
+  ** Unknown exception encountered with possibly-broken third-party extension "fakeremoteuser" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "fakeremoteuser" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: fakeremoteuser, strip
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/usr/lib/python3.7/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/usr/lib/python3.7/urllib/request.py", line 641, in http_response
+      'http', request, response, code, msg, hdrs)
+    File "/usr/lib/python3.7/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 503, in _call_chain
+      result = func(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 649, in http_error_default
+      raise HTTPError(req.full_url, code, msg, hdrs, fp)
+  urllib.error.HTTPError: HTTP Error 401: push not authorized
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 282, in sendrequest
+      raise error.Abort(_(b'authorization failed'))
+  mercurial.error.Abort: authorization failed
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ killdaemons.py
 
@@ -1411,14 +2333,170 @@
   pushing to http://localhost:$HGPORT/
   searching for changes
   no changes found
-  abort: authorization failed
-  [255]
+  ** Unknown exception encountered with possibly-broken third-party extension "fakeremoteuser" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "fakeremoteuser" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: fakeremoteuser, strip
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/usr/lib/python3.7/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/usr/lib/python3.7/urllib/request.py", line 641, in http_response
+      'http', request, response, code, msg, hdrs)
+    File "/usr/lib/python3.7/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 503, in _call_chain
+      result = func(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 649, in http_error_default
+      raise HTTPError(req.full_url, code, msg, hdrs, fp)
+  urllib.error.HTTPError: HTTP Error 401: push not authorized
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 282, in sendrequest
+      raise error.Abort(_(b'authorization failed'))
+  mercurial.error.Abort: authorization failed
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ hg --cwd ../test2 push http://localhost:$HGPORT/
   pushing to http://localhost:$HGPORT/
   searching for changes
-  abort: authorization failed
-  [255]
+  ** Unknown exception encountered with possibly-broken third-party extension "fakeremoteuser" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "fakeremoteuser" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: fakeremoteuser, strip
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/usr/lib/python3.7/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/usr/lib/python3.7/urllib/request.py", line 641, in http_response
+      'http', request, response, code, msg, hdrs)
+    File "/usr/lib/python3.7/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 503, in _call_chain
+      result = func(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 649, in http_error_default
+      raise HTTPError(req.full_url, code, msg, hdrs, fp)
+  urllib.error.HTTPError: HTTP Error 401: push not authorized
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 282, in sendrequest
+      raise error.Abort(_(b'authorization failed'))
+  mercurial.error.Abort: authorization failed
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ killdaemons.py
 

test-infinitepush-ci.t

--- /hgwork/src/tests/test-infinitepush-ci.t
+++ /hgwork/src/tests/test-infinitepush-ci.t.err
@@ -203,8 +203,59 @@
 
   $ hg pull -r b4e4bce660512ad3e71189e14588a70ac8e31fef
   pulling from $TESTTMP/repo
-  abort: unknown revision 'b4e4bce660512ad3e71189e14588a70ac8e31fef'
-  [10]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: infinitepush
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 395, in lookup
+      return self._repo.lookup(key)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2182, in lookup
+      node = scmutil.revsymbol(self, key).node()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 658, in revsymbol
+      raise error.RepoLookupError(_(b"unknown revision '%s'") % symbol)
+  mercurial.error.RepoLookupError: b"unknown revision 'b4e4bce660512ad3e71189e14588a70ac8e31fef'"
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5433, in pull
+      fnodes.append(e.callcommand(b'lookup', {b'key': r}))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
   $ hg glog
   o  1:6cb0989601f1 added a
   |  public
@@ -240,8 +291,67 @@
 XXX: we should support this
   $ hg pull -r b4e4bce660512
   pulling from ssh://user@dummy/repo
-  abort: unknown revision 'b4e4bce660512'
-  [255]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 316, in _readbatchresponse
+      result = decode(remoteresult)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 353, in decode
+      self._abort(error.RepoError(data))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/sshpeer.py", line 442, in _abort
+      raise exception
+  mercurial.error.RepoError: b"unknown revision 'b4e4bce660512'"
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5433, in pull
+      fnodes.append(e.callcommand(b'lookup', {b'key': r}))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 126, in __exit__
+      self.close()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 279, in close
+      self._responsef.result()
+    File "/usr/lib/python3.7/concurrent/futures/_base.py", line 432, in result
+      return self.__get_result()
+    File "/usr/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
+      raise self._exception
+    File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
+      result = self.fn(*self.args, **self.kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 318, in _readbatchresponse
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
 XXX: we should show better message when the pull is happening from bundlestore
   $ hg pull -r b4e4bce660512ad3e71189e14588a70ac8e31fef

test-lock-badness.t

--- /hgwork/src/tests/test-lock-badness.t
+++ /hgwork/src/tests/test-lock-badness.t.err
@@ -135,7 +135,83 @@
   $ hg -R b push a
   pushing to a
   searching for changes
-  abort: could not lock repository a: Permission denied
-  [20]
+  ** Unknown exception encountered with possibly-broken third-party extension "testlock" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "testlock" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: testlock
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/lock.py", line 278, in _trylock
+      self.vfs.makelock(lockname, self.f)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/vfs.py", line 201, in makelock
+      return util.makelock(info, self.join(path))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 2154, in makelock
+      ld = os.open(pathname, flags)
+  PermissionError: [Errno 13] Permission denied: b'$TESTTMP/a/.hg/store/lock'
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2692, in unbundle
+      gettransaction()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2680, in gettransaction
+      lockandtr[1] = repo.lock()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 3015, in lock
+      desc=_(b'repository %s') % self.origroot,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2980, in _lock
+      signalsafe=signalsafe,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/lock.py", line 151, in trylock
+      l._trylock()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/lock.py", line 296, in _trylock
+      why.errno, why.strerror, why.filename, self.desc
+  mercurial.error.LockUnavailable: [Errno 13] Permission denied: b'$TESTTMP/a/.hg/store/lock'
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ chmod 700 a/.hg/store

test-narrow-exchange.t#lfs-off

--- /hgwork/src/tests/test-narrow-exchange.t
+++ /hgwork/src/tests/test-narrow-exchange.t#lfs-off.err
@@ -107,8 +107,65 @@
   remote: rollback completed
   remote: abort: data/inside2/f@4a1aa07735e673e20c00fae80f40dc301ee30616: unknown parent (reporevlogstore !)
   remote: abort: data/inside2/f/index@4a1aa07735e6: no node (reposimplestore !)
-  abort: stream ended unexpectedly (got 0 bytes, expected 4)
-  [255]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: narrow
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 503, in unbundle
+      ret = bundle2.getunbundler(self.ui, stream)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 784, in getunbundler
+      magicstring = changegroup.readexactly(fp, 4)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 3170, in readexactly
+      % (len(s), n)
+  mercurial.error.Abort: stream ended unexpectedly (got 0 bytes, expected 4)
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
 Can pull from wider repo if change affects only paths outside remote's
 narrow spec

test-narrow-exchange.t#lfs-on

--- /hgwork/src/tests/test-narrow-exchange.t
+++ /hgwork/src/tests/test-narrow-exchange.t#lfs-on.err
@@ -107,8 +107,67 @@
   remote: rollback completed
   remote: abort: data/inside2/f@4a1aa07735e673e20c00fae80f40dc301ee30616: unknown parent (reporevlogstore !)
   remote: abort: data/inside2/f/index@4a1aa07735e6: no node (reposimplestore !)
-  abort: stream ended unexpectedly (got 0 bytes, expected 4)
-  [255]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: lfs, narrow
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 503, in unbundle
+      ret = bundle2.getunbundler(self.ui, stream)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 784, in getunbundler
+      magicstring = changegroup.readexactly(fp, 4)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 3170, in readexactly
+      % (len(s), n)
+  mercurial.error.Abort: stream ended unexpectedly (got 0 bytes, expected 4)
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/lfs/wrapper.py", line 432, in push
+      return orig(repo, remote, *args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
 Can pull from wider repo if change affects only paths outside remote's
 narrow spec
@@ -222,4 +281,63 @@
   remote: transaction abort! (lfs-on !)
   remote: rollback completed (lfs-on !)
   remote: abort: data/inside2/f@f59b4e0218355383d2789196f1092abcf2262b0c: no match found (lfs-on !)
-  abort: stream ended unexpectedly (got 0 bytes, expected 4) (lfs-on !)
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: lfs, narrow
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 503, in unbundle
+      ret = bundle2.getunbundler(self.ui, stream)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 784, in getunbundler
+      magicstring = changegroup.readexactly(fp, 4)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 3170, in readexactly
+      % (len(s), n)
+  mercurial.error.Abort: stream ended unexpectedly (got 0 bytes, expected 4)
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/lfs/wrapper.py", line 432, in push
+      return orig(repo, remote, *args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'

test-pending.t

--- /hgwork/src/tests/test-pending.t
+++ /hgwork/src/tests/test-pending.t.err
@@ -96,7 +96,82 @@
   hook 29b62aeb769fdf78d8d9c5f28b017f76d7ef824b
   transaction abort!
   rollback completed
-  abort: pretxnchangegroup hook failed
+  ** Unknown exception encountered with possibly-broken third-party extension "reject" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "reject" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: reject
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 142, in pythonhook
+      raise error.HookAbort(_(b'%s hook failed') % hname)
+  mercurial.error.HookAbort: pretxnchangegroup hook failed
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
   pull 0000000000000000000000000000000000000000
 
 test external hook
@@ -111,7 +186,80 @@
   hook 29b62aeb769fdf78d8d9c5f28b017f76d7ef824b
   transaction abort!
   rollback completed
-  abort: pretxnchangegroup hook exited with status 1
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 356, in runhooks
+      r = _exthook(ui, repo, htype, hname, cmd, args, throw)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 205, in _exthook
+      raise error.HookAbort(_(b'%s hook %s') % (name, desc))
+  mercurial.error.HookAbort: pretxnchangegroup hook exited with status 1
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
   pull 0000000000000000000000000000000000000000
 
 Test that pending on transaction without changegroup see the normal changegroup(

test-pull-network.t

--- /hgwork/src/tests/test-pull-network.t
+++ /hgwork/src/tests/test-pull-network.t.err
@@ -58,18 +58,195 @@
 
   $ hg pull -r 'xxxxxxxxxxxxxxxxxxxy'
   pulling from http://foo@localhost:$HGPORT/
-  abort: unknown revision 'xxxxxxxxxxxxxxxxxxxy'
-  [255]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 316, in _readbatchresponse
+      result = decode(remoteresult)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 353, in decode
+      self._abort(error.RepoError(data))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 529, in _abort
+      raise exception
+  mercurial.error.RepoError: b"unknown revision 'xxxxxxxxxxxxxxxxxxxy'"
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5433, in pull
+      fnodes.append(e.callcommand(b'lookup', {b'key': r}))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 126, in __exit__
+      self.close()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 279, in close
+      self._responsef.result()
+    File "/usr/lib/python3.7/concurrent/futures/_base.py", line 432, in result
+      return self.__get_result()
+    File "/usr/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
+      raise self._exception
+    File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
+      result = self.fn(*self.args, **self.kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 318, in _readbatchresponse
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
   $ hg pull -r 'xxxxxxxxxxxxxxxxxx y'
   pulling from http://foo@localhost:$HGPORT/
-  abort: unknown revision 'xxxxxxxxxxxxxxxxxx y'
-  [255]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 316, in _readbatchresponse
+      result = decode(remoteresult)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 353, in decode
+      self._abort(error.RepoError(data))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 529, in _abort
+      raise exception
+  mercurial.error.RepoError: b"unknown revision 'xxxxxxxxxxxxxxxxxx y'"
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5433, in pull
+      fnodes.append(e.callcommand(b'lookup', {b'key': r}))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 126, in __exit__
+      self.close()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 279, in close
+      self._responsef.result()
+    File "/usr/lib/python3.7/concurrent/futures/_base.py", line 432, in result
+      return self.__get_result()
+    File "/usr/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
+      raise self._exception
+    File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
+      result = self.fn(*self.args, **self.kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 318, in _readbatchresponse
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
 Test pull of working copy revision
   $ hg pull -r 'ffffffffffff'
   pulling from http://foo@localhost:$HGPORT/
-  abort: unknown revision 'ffffffffffff'
-  [255]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 316, in _readbatchresponse
+      result = decode(remoteresult)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 353, in decode
+      self._abort(error.RepoError(data))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 529, in _abort
+      raise exception
+  mercurial.error.RepoError: b"unknown revision 'ffffffffffff'"
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5433, in pull
+      fnodes.append(e.callcommand(b'lookup', {b'key': r}))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 126, in __exit__
+      self.close()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 279, in close
+      self._responsef.result()
+    File "/usr/lib/python3.7/concurrent/futures/_base.py", line 432, in result
+      return self.__get_result()
+    File "/usr/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
+      raise self._exception
+    File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
+      result = self.fn(*self.args, **self.kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 318, in _readbatchresponse
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
 Test 'file:' uri handling:
 

test-pull-r.t

--- /hgwork/src/tests/test-pull-r.t
+++ /hgwork/src/tests/test-pull-r.t.err
@@ -111,8 +111,59 @@
 Pull a missing revision:
 
   $ hg pull -qr missing ../repo
-  abort: unknown revision 'missing'
-  [10]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 395, in lookup
+      return self._repo.lookup(key)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2182, in lookup
+      node = scmutil.revsymbol(self, key).node()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 658, in revsymbol
+      raise error.RepoLookupError(_(b"unknown revision '%s'") % symbol)
+  mercurial.error.RepoLookupError: b"unknown revision 'missing'"
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5433, in pull
+      fnodes.append(e.callcommand(b'lookup', {b'key': r}))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
 Pull multiple revisions with update:
 

test-push-http.t#bundle2

--- /hgwork/src/tests/test-push-http.t
+++ /hgwork/src/tests/test-push-http.t#bundle2.err
@@ -39,9 +39,78 @@
   $ req
   pushing to http://localhost:$HGPORT/
   searching for changes
-  abort: HTTP Error 403: ssl required
-  % serve errors
-  [100]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/usr/lib/python3.7/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/usr/lib/python3.7/urllib/request.py", line 641, in http_response
+      'http', request, response, code, msg, hdrs)
+    File "/usr/lib/python3.7/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 503, in _call_chain
+      result = func(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 649, in http_error_default
+      raise HTTPError(req.full_url, code, msg, hdrs, fp)
+  urllib.error.HTTPError: HTTP Error 403: ssl required
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  % serve errors
+  [1]
 
 expect authorization error
 
@@ -50,9 +119,85 @@
   $ req
   pushing to http://localhost:$HGPORT/
   searching for changes
-  abort: authorization failed
-  % serve errors
-  [255]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/usr/lib/python3.7/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/usr/lib/python3.7/urllib/request.py", line 641, in http_response
+      'http', request, response, code, msg, hdrs)
+    File "/usr/lib/python3.7/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 503, in _call_chain
+      result = func(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 649, in http_error_default
+      raise HTTPError(req.full_url, code, msg, hdrs, fp)
+  urllib.error.HTTPError: HTTP Error 401: push not authorized
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 282, in sendrequest
+      raise error.Abort(_(b'authorization failed'))
+  mercurial.error.Abort: authorization failed
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  % serve errors
+  [1]
 
 expect authorization error: must have authorized user
 
@@ -60,9 +205,85 @@
   $ req
   pushing to http://localhost:$HGPORT/
   searching for changes
-  abort: authorization failed
-  % serve errors
-  [255]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/usr/lib/python3.7/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/usr/lib/python3.7/urllib/request.py", line 641, in http_response
+      'http', request, response, code, msg, hdrs)
+    File "/usr/lib/python3.7/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 503, in _call_chain
+      result = func(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 649, in http_error_default
+      raise HTTPError(req.full_url, code, msg, hdrs, fp)
+  urllib.error.HTTPError: HTTP Error 401: push not authorized
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 282, in sendrequest
+      raise error.Abort(_(b'authorization failed'))
+  mercurial.error.Abort: authorization failed
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  % serve errors
+  [1]
 
 expect success
 

test-push.t

--- /hgwork/src/tests/test-push.t
+++ /hgwork/src/tests/test-push.t.err
@@ -208,8 +208,75 @@
   adding file changes
   transaction abort!
   rollback completed
-  abort: received spurious file revlog entry
-  [255]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 451, in apply
+      addrevisioncb=on_filelog_rev,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 1964, in _addchangegroupfiles
+      raise error.Abort(_(b"received spurious file revlog entry"))
+  mercurial.error.Abort: received spurious file revlog entry
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ hg -q rollback
   $ mv tmp1 .hg/store/data/beta.i
@@ -243,8 +310,93 @@
   adding file changes
   transaction abort!
   rollback completed
-  abort: missing file data for beta:dddc47b3ba30e54484720ce0f4f768a0f4b6efb9 - run hg verify
-  [255]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/revlog.py", line 790, in rev
+      return self.index.rev(node)
+  mercurial.error.RevlogError: RevlogError
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 1973, in _addchangegroupfiles
+      fl.rev(n)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/filelog.py", line 69, in rev
+      return self._revlog.rev(node)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/revlog.py", line 800, in rev
+      raise error.LookupError(node, self.display_id, _(b'no node'))
+  mercurial.error.LookupError: data/beta@dddc47b3ba30e54484720ce0f4f768a0f4b6efb9: no node
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 451, in apply
+      addrevisioncb=on_filelog_rev,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 1977, in _addchangegroupfiles
+      % (f, hex(n))
+  mercurial.error.Abort: missing file data for beta:dddc47b3ba30e54484720ce0f4f768a0f4b6efb9 - run hg verify
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ cd ..
 

test-remotefilelog-bundles.t

--- /hgwork/src/tests/test-remotefilelog-bundles.t
+++ /hgwork/src/tests/test-remotefilelog-bundles.t.err
@@ -71,6 +71,106 @@
   $ hg pull -r 66ee28d0328c .hg/strip-backup/66ee28d0328c-b6ee89e7-backup.hg
   pulling from .hg/strip-backup/66ee28d0328c-b6ee89e7-backup.hg
   searching for changes
-  abort: cannot pull from full bundles
-  (use `hg unbundle` instead)
-  [255]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: rebase, remotefilelog, strip
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/extensions.py", line 532, in closure
+      return func(*(args + a), **kw)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/remotefilelog/__init__.py", line 1082, in localgetbundle
+      source, heads=heads, common=common, bundlecaps=bundlecaps, **kwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 381, in getbundle
+      return bundle2.getunbundler(self.ui, cb)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 784, in getunbundler
+      magicstring = changegroup.readexactly(fp, 4)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 3166, in readexactly
+      s = stream.read(n)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 2705, in read
+      for chunk in self.iter:
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 2676, in splitbig
+      for chunk in chunks:
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 714, in getchunks
+      self._getcorechunk(), self._compopts
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 736, in _getcorechunk
+      for chunk in part.getchunks(ui=self.ui):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 1197, in getchunks
+      pycompat.raisewithtb(exc, tb)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 294, in raisewithtb
+      raise exc.with_traceback(tb)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 1169, in getchunks
+      for chunk in self._payloadchunks():
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 1213, in _payloadchunks
+      chunk = buff.read(preferedchunksize)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 2705, in read
+      for chunk in self.iter:
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 2676, in splitbig
+      for chunk in chunks:
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 1210, in generate
+      sidedata_helpers=sidedata_helpers,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/remotefilelog/shallowbundle.py", line 85, in generatefiles
+      hint=b"use `hg unbundle` instead",
+  mercurial.error.Abort: cannot pull from full bundles
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/remotefilelog/__init__.py", line 579, in runcommand
+      return orig(lui, repo, *args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/rebase.py", line 2180, in pullrebase
+      ret = orig(ui, repo, *args, **opts)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/remotefilelog/__init__.py", line 1048, in pull
+      result = orig(ui, repo, *pats, **opts)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5463, in pull
+      confirm=opts.get(b'confirm'),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/remotefilelog/__init__.py", line 1090, in exchangepull
+      return orig(repo, remote, *args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1681, in pull
+      _fullpullbundle2(repo, pullop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1532, in _fullpullbundle2
+      _pullbundle2(pullop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1881, in _pullbundle2
+      bundle = e.callcommand(b'getbundle', args).result()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]

test-share-safe.t

--- /hgwork/src/tests/test-share-safe.t
+++ /hgwork/src/tests/test-share-safe.t.err
@@ -175,8 +175,85 @@
   error: pretxnchangegroup.reject_merge_commits hook failed: bcde3522682d rejected as merge on the same branch. Please consider rebase.
   transaction abort!
   rollback completed
-  abort: bcde3522682d rejected as merge on the same branch. Please consider rebase.
-  [255]
+  ** Unknown exception encountered with possibly-broken third-party extension "hooklib" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "hooklib" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: extdiff, hooklib, share
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 116, in pythonhook
+      r = obj(ui=ui, repo=repo, hooktype=htype, **pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/hooklib/reject_merge_commits.py", line 43, in hook
+      % rev
+  mercurial.error.Abort: bcde3522682d rejected as merge on the same branch. Please consider rebase.
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ hg push ../shared1
   pushing to ../shared1
@@ -187,8 +264,85 @@
   error: pretxnchangegroup.reject_merge_commits hook failed: bcde3522682d rejected as merge on the same branch. Please consider rebase.
   transaction abort!
   rollback completed
-  abort: bcde3522682d rejected as merge on the same branch. Please consider rebase.
-  [255]
+  ** Unknown exception encountered with possibly-broken third-party extension "hooklib" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "hooklib" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: extdiff, hooklib, share
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 116, in pythonhook
+      r = obj(ui=ui, repo=repo, hooktype=htype, **pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/hooklib/reject_merge_commits.py", line 43, in hook
+      % rev
+  mercurial.error.Abort: bcde3522682d rejected as merge on the same branch. Please consider rebase.
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
 Test that if share source config is untrusted, we dont read it
 
@@ -314,8 +468,85 @@
   error: pretxnchangegroup.reject_merge_commits hook failed: bcde3522682d rejected as merge on the same branch. Please consider rebase.
   transaction abort!
   rollback completed
-  abort: bcde3522682d rejected as merge on the same branch. Please consider rebase.
-  [255]
+  ** Unknown exception encountered with possibly-broken third-party extension "hooklib" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "hooklib" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: extdiff, hooklib, share
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 116, in pythonhook
+      r = obj(ui=ui, repo=repo, hooktype=htype, **pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/hgext/hooklib/reject_merge_commits.py", line 43, in hook
+      % rev
+  mercurial.error.Abort: bcde3522682d rejected as merge on the same branch. Please consider rebase.
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
   $ hg showconfig ui.curses -R ../shared1
   false
 

test-single-head-obsolescence-named-branch-A2.t

--- /hgwork/src/tests/test-single-head-obsolescence-named-branch-A2.t
+++ /hgwork/src/tests/test-single-head-obsolescence-named-branch-A2.t.err
@@ -108,6 +108,66 @@
   adding file changes
   transaction abort!
   rollback completed
-  abort: rejecting multiple heads on branch "default"
-  (2 heads: 8aaa48160adc 25c56d33e4c4)
-  [255]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: strip
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2711, in unbundle
+      lockandtr[2].close()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/transaction.py", line 38, in _active
+      return func(self, *args, **kwds)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/transaction.py", line 555, in close
+      self._validatecallback[category](self)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2462, in validate
+      repo, tr2, desc, accountclosed, filtername
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 2186, in enforcesinglehead
+      raise error.Abort(msg, hint=hint)
+  mercurial.error.Abort: rejecting multiple heads on branch "default"
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]

test-single-head-obsolescence-named-branch-A5.t

--- /hgwork/src/tests/test-single-head-obsolescence-named-branch-A5.t
+++ /hgwork/src/tests/test-single-head-obsolescence-named-branch-A5.t.err
@@ -103,6 +103,66 @@
   no changes found
   transaction abort!
   rollback completed
-  abort: rejecting multiple heads on branch "default"
-  (2 heads: 8aaa48160adc 74ff5441d343)
-  [255]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: strip
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2711, in unbundle
+      lockandtr[2].close()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/transaction.py", line 38, in _active
+      return func(self, *args, **kwds)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/transaction.py", line 555, in close
+      self._validatecallback[category](self)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2462, in validate
+      repo, tr2, desc, accountclosed, filtername
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 2186, in enforcesinglehead
+      raise error.Abort(msg, hint=hint)
+  mercurial.error.Abort: rejecting multiple heads on branch "default"
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]

test-single-head.t

--- /hgwork/src/tests/test-single-head.t
+++ /hgwork/src/tests/test-single-head.t.err
@@ -76,9 +76,69 @@
   adding file changes
   transaction abort!
   rollback completed
-  abort: rejecting multiple heads on branch "default"
-  (2 heads: 286d02a6e2a2 9bf953aa81f6)
-  [255]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2711, in unbundle
+      lockandtr[2].close()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/transaction.py", line 38, in _active
+      return func(self, *args, **kwds)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/transaction.py", line 555, in close
+      self._validatecallback[category](self)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2462, in validate
+      repo, tr2, desc, accountclosed, filtername
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 2186, in enforcesinglehead
+      raise error.Abort(msg, hint=hint)
+  mercurial.error.Abort: rejecting multiple heads on branch "default"
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
 remerge them
 
@@ -221,9 +281,69 @@
   adding file changes
   transaction abort!
   rollback completed
-  abort: rejecting multiple heads on branch "branch_A"
-  (2 heads: 49003e504178 468bd81ccc5d)
-  [255]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2711, in unbundle
+      lockandtr[2].close()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/transaction.py", line 38, in _active
+      return func(self, *args, **kwds)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/transaction.py", line 555, in close
+      self._validatecallback[category](self)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2462, in validate
+      repo, tr2, desc, accountclosed, filtername
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 2186, in enforcesinglehead
+      raise error.Abort(msg, hint=hint)
+  mercurial.error.Abort: rejecting multiple heads on branch "branch_A"
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
 
 closing the head and pushing should succeed
@@ -259,9 +379,69 @@
   adding file changes
   transaction abort!
   rollback completed
-  abort: rejecting multiple heads on branch "branch_A"
-  (3 heads: 49003e504178 5254bcccab93 42b9fe70a3c1)
-  [255]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2711, in unbundle
+      lockandtr[2].close()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/transaction.py", line 38, in _active
+      return func(self, *args, **kwds)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/transaction.py", line 555, in close
+      self._validatecallback[category](self)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2462, in validate
+      repo, tr2, desc, accountclosed, filtername
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 2186, in enforcesinglehead
+      raise error.Abort(msg, hint=hint)
+  mercurial.error.Abort: rejecting multiple heads on branch "branch_A"
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
 
 Test that config can be overriden as the boolean it is

test-ssh-batch.t

--- /hgwork/src/tests/test-ssh-batch.t
+++ /hgwork/src/tests/test-ssh-batch.t.err
@@ -11,5 +11,64 @@
 
   $ hg pull -r b0 -r nosuchbookmark $(for i in $($TESTDIR/seq.py 1 20); do echo -r b$i; done) ssh://user@dummy/$(pwd)/../a
   pulling from ssh://user@dummy/$TESTTMP/b/../a
-  abort: unknown revision 'nosuchbookmark'
-  [255]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 316, in _readbatchresponse
+      result = decode(remoteresult)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 353, in decode
+      self._abort(error.RepoError(data))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/sshpeer.py", line 442, in _abort
+      raise exception
+  mercurial.error.RepoError: b"unknown revision 'nosuchbookmark'"
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5433, in pull
+      fnodes.append(e.callcommand(b'lookup', {b'key': r}))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 126, in __exit__
+      self.close()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 279, in close
+      self._responsef.result()
+    File "/usr/lib/python3.7/concurrent/futures/_base.py", line 432, in result
+      return self.__get_result()
+    File "/usr/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
+      raise self._exception
+    File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
+      result = self.fn(*self.args, **self.kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 318, in _readbatchresponse
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]

test-static-http.t

--- /hgwork/src/tests/test-static-http.t
+++ /hgwork/src/tests/test-static-http.t.err
@@ -94,8 +94,61 @@
 
   $ cd ..
   $ hg clone -r doesnotexist static-http://localhost:$HGPORT/remote local0
-  abort: unknown revision 'doesnotexist'
-  [10]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 395, in lookup
+      return self._repo.lookup(key)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2182, in lookup
+      node = scmutil.revsymbol(self, key).node()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 658, in revsymbol
+      raise error.RepoLookupError(_(b"unknown revision '%s'") % symbol)
+  mercurial.error.RepoLookupError: b"unknown revision 'doesnotexist'"
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 1967, in clone
+      depth=opts.get(b'depth') or None,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hg.py", line 923, in clone
+      b'key': rev,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
   $ hg clone -r 0 static-http://localhost:$HGPORT/remote local0
   adding changesets
   adding manifests

test-subrepo-relative-path.t

--- /hgwork/src/tests/test-subrepo-relative-path.t
+++ /hgwork/src/tests/test-subrepo-relative-path.t.err
@@ -84,8 +84,77 @@
   no changes found
   searching for changes
   no changes found
-  abort: HTTP Error 403: ssl required
-  [100]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/usr/lib/python3.7/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/usr/lib/python3.7/urllib/request.py", line 641, in http_response
+      'http', request, response, code, msg, hdrs)
+    File "/usr/lib/python3.7/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 503, in _call_chain
+      result = func(*args)
+    File "/usr/lib/python3.7/urllib/request.py", line 649, in http_error_default
+      raise HTTPError(req.full_url, code, msg, hdrs, fp)
+  urllib.error.HTTPError: HTTP Error 403: ssl required
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
 Checking cloned repo ids
 

test-transaction-rollback-on-sigpipe.t

--- /hgwork/src/tests/test-transaction-rollback-on-sigpipe.t
+++ /hgwork/src/tests/test-transaction-rollback-on-sigpipe.t.err
@@ -37,8 +37,65 @@
 (use quiet to avoid flacky output from the server)
 
   $ hg push --quiet --remotecmd "$remotecmd"
-  abort: stream ended unexpectedly (got 0 bytes, expected 4)
-  [255]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 503, in unbundle
+      ret = bundle2.getunbundler(self.ui, stream)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 784, in getunbundler
+      magicstring = changegroup.readexactly(fp, 4)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 3170, in readexactly
+      % (len(s), n)
+  mercurial.error.Abort: stream ended unexpectedly (got 0 bytes, expected 4)
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
   $ cat $SIGPIPE_REMOTE_DEBUG_FILE
   SIGPIPE-HELPER: Starting
   SIGPIPE-HELPER: Redirection in place

test-treediscovery-legacy.t

--- /hgwork/src/tests/test-treediscovery-legacy.t
+++ /hgwork/src/tests/test-treediscovery-legacy.t.err
@@ -122,8 +122,67 @@
   $ cd empty1
   $ hg incoming $remote --rev name1
   comparing with http://localhost:$HGPORT/
-  abort: cannot look up remote changes; remote repository does not support the 'changegroupsubset' capability
-  [255]
+  ** Unknown exception encountered with possibly-broken third-party extension "notcapable-getbundle known changegroupsubset bundle2" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "notcapable-getbundle known changegroupsubset bundle2" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: notcapable-getbundle known changegroupsubset bundle2
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 545, in changegroupsubset
+      self.requirecap(b'changegroupsubset', _(b'look up remote changes'))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/interfaces/repository.py", line 417, in requirecap
+      % (purpose, name)
+  mercurial.error.CapabilityError: b"cannot look up remote changes; remote repository does not support the 'changegroupsubset' capability"
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 4368, in incoming
+      return hg.incoming(ui, repo, source, opts)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hg.py", line 1348, in incoming
+      display, subreporecurse, ui, repo, source, opts, subpath=subpath
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hg.py", line 1303, in _incoming
+      ui, repo, other, revs, opts.get(b"bundle"), opts.get(b"force")
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundlerepo.py", line 662, in getremotechanges
+      b'source': b'incoming',
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
   $ hg incoming $remote
   comparing with http://localhost:$HGPORT/
   0 d57206cc072a: r0 
@@ -311,8 +370,67 @@
   $ hg init partial; cd partial
   $ hg incoming $remote --rev name2
   comparing with http://localhost:$HGPORT/
-  abort: cannot look up remote changes; remote repository does not support the 'changegroupsubset' capability
-  [255]
+  ** Unknown exception encountered with possibly-broken third-party extension "notcapable-getbundle known changegroupsubset bundle2" (version N/A)
+  ** which supports versions unknown of Mercurial.
+  ** Please disable "notcapable-getbundle known changegroupsubset bundle2" and try your action again.
+  ** If that fixes the bug please report it to the extension author.
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: notcapable-getbundle known changegroupsubset bundle2
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 545, in changegroupsubset
+      self.requirecap(b'changegroupsubset', _(b'look up remote changes'))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/interfaces/repository.py", line 417, in requirecap
+      % (purpose, name)
+  mercurial.error.CapabilityError: b"cannot look up remote changes; remote repository does not support the 'changegroupsubset' capability"
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 4368, in incoming
+      return hg.incoming(ui, repo, source, opts)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hg.py", line 1348, in incoming
+      display, subreporecurse, ui, repo, source, opts, subpath=subpath
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hg.py", line 1303, in _incoming
+      ui, repo, other, revs, opts.get(b"bundle"), opts.get(b"force")
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundlerepo.py", line 662, in getremotechanges
+      b'source': b'incoming',
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
   $ hg pull $remote --rev name2
   pulling from http://localhost:$HGPORT/
   abort: partial pull cannot be done because other repository doesn't support changegroupsubset.

test-util.py

--- /hgwork/src/tests/test-util.py.out
+++ /hgwork/src/tests/test-util.py.err
@@ -0,0 +1,4 @@
+Traceback (most recent call last):
+  File "/hgwork/src/tests/test-util.py", line 53, in <module>
+    _start_default = (util.timedcmstats.start.default, 'factory')
+AttributeError: type object 'timedcmstats' has no attribute 'start'

test-win32text.t

--- /hgwork/src/tests/test-win32text.t
+++ /hgwork/src/tests/test-win32text.t.err
@@ -76,8 +76,81 @@
   ** = cleverdecode:
   transaction abort!
   rollback completed
-  abort: pretxnchangegroup.crlf hook failed
-  [40]
+  ** unknown exception encountered, please report by visiting
+  ** https://mercurial-scm.org/wiki/BugTracker
+  ** Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 2032, in handlechangegroup
+      **extrakwargs
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/changegroup.py", line 509, in apply
+      **pycompat.strkwargs(hookargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 353, in runhooks
+      ui, repo, htype, hname, hookfn, args, throw
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/hook.py", line 142, in pythonhook
+      raise error.HookAbort(_(b'%s hook failed') % hname)
+  mercurial.error.HookAbort: pretxnchangegroup.crlf hook failed
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1256, in _dispatch
+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/commands.py", line 5792, in push
+      opargs=opargs,
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/exchange.py", line 1156, in _pushbundle2
+      b'url': pushop.remote.url(),
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ucjkj11q/install/lib/python/mercurial/pycompat.py", line 44, in future_set_exception_info
+      f.set_exception_info(exc_info[0])
+  AttributeError: 'Future' object has no attribute 'set_exception_info'
+  [1]
 
   $ mv .hg/hgrc.bak .hg/hgrc
   $ echo hello > f

Skipped Tests

Long Tests

DurationTest
149.9stest-copies-chain-merge.t#upgraded
148.9stest-copies-chain-merge.t#pull
148.6stest-copies-chain-merge.t#upgraded-parallel
148.4stest-copies-chain-merge.t#push
148.2stest-copies-chain-merge.t#pull-upgrade
148.1stest-copies-chain-merge.t#push-upgrade
147.6stest-copies-chain-merge.t#sidedata
103.1stest-revset.t
102.1stest-copies-chain-merge.t#compatibility
101.8stest-copies-chain-merge.t#filelog
101.5stest-copies-chain-merge.t#changeset
91.3stest-bookmarks-pushpull.t#b2-binary
91.0stest-bookmarks-pushpull.t#b2-pushkey
89.5stest-obsolete-bundle-strip.t
86.5stest-merge-combination-file-content.t
85.5stest-log.t
84.8stest-obsolete.t
84.4stest-subrepo.t
79.2stest-template-functions.t
69.0stest-mq.t
68.8stest-largefiles.t
68.5stest-persistent-nodemap.t
67.3stest-import.t
66.9stest-fix.t
66.6stest-glog-beautifygraph.t
66.5stest-glog.t
62.4stest-obsmarker-template.t
60.4stest-largefiles-misc.t
59.5stest-merge-tools.t
59.0stest-update-branches.t
57.1stest-copies.t#compatibility
56.8stest-bundle2-exchange.t
56.7stest-copies.t#sidedata
56.6stest-copies.t#filelog
56.5stest-copies.t#changeset
54.8stest-shelve.t#stripbased
53.8stest-shelve.t#phasebased
52.5stest-http-permissions.t
51.6stest-commit-amend.t
50.3stest-rename-merge2.t
50.2stest-check-pylint.t
50.2stest-strip.t
50.2stest-revset2.t
49.9stest-shelve2.t#phasebased#abortcommand#continuecommand
49.7stest-shelve2.t#phasebased#abortcommand#continueflag
49.5stest-shelve2.t#phasebased#abortflag#continuecommand
49.4stest-shelve2.t#phasebased#abortflag#continueflag
49.4stest-bookmarks.t
48.7stest-shelve2.t#stripbased#abortcommand#continuecommand
48.4stest-shelve2.t#stripbased#abortflag#continuecommand
48.4stest-shelve2.t#stripbased#abortcommand#continueflag
48.2stest-shelve2.t#stripbased#abortflag#continueflag
46.8stest-subrepo-git.t
46.2stest-phases-exchange.t
45.1stest-rebase-inmemory.t
44.1stest-merge-force.t
43.4stest-clone.t
43.4stest-keyword.t
43.3stest-lfs.t
43.3stest-template-basic.t
42.7stest-push-warn.t
42.5stest-push-race.t#unrelated
42.5stest-merge-changedelete.t#old
42.4stest-push-race.t#strict
42.1stest-merge-changedelete.t#newfilenode
41.8stest-template-keywords.t
41.7stest-obsolete-divergent.t
41.5stest-run-tests.t
41.3stest-mv-cp-st-diff.t
41.2stest-clone-stream-format.t#stream-legacy
41.2stest-largefiles-update.t
41.2stest-mq-subrepo.t
40.9stest-grep.t
40.5stest-copytrace-heuristics.t
40.2stest-merge-combination-exec-bytes.t
39.8stest-narrow.t#tree#lfs-on
39.6stest-narrow.t#flat#lfs-on
39.6stest-revert.t
39.6stest-annotate.t
39.0stest-transplant.t#commandmode
39.0stest-transplant.t#continueflag
38.7stest-clone-stream-format.t#stream-bundle2
38.6stest-mq-header-date.t
37.4stest-bisect.t
37.4stest-mq-header-from.t
37.3stest-convert-filemap.t
36.7stest-narrow.t#tree#lfs-off
36.3stest-narrow.t#flat#lfs-off
35.7stest-fileset.t
35.5stest-branches.t
35.4stest-tags.t
35.3stest-template-map.t
33.3stest-resolve.t
32.9stest-uncommit.t
32.7stest-init.t
32.7stest-phabricator.t
32.7stest-contrib-perf.t
32.5stest-status.t#dirstate-v2
32.3stest-backout.t
32.0stest-censor.t#revlogv2
31.8stest-rebase-scenario-global.t
31.8stest-status.t#dirstate-v1
31.2stest-graft.t
30.9stest-treemanifest.t
30.5stest-tag.t
30.2stest-amend.t#obsstore-on
30.1stest-subrepo-deep-nested-change.t
29.8stest-phases.t
29.8stest-copies-unrelated.t#compatibility
29.7stest-copies-unrelated.t#changeset
29.7stest-copies-unrelated.t#sidedata
29.6stest-treediscovery.t
29.5stest-copies-unrelated.t#filelog
29.1stest-upgrade-repo.t
29.1stest-mq-guards.t
29.0stest-censor.t#revlogv1
29.0stest-remotefilelog-repack.t
28.6stest-commit-interactive.t
28.4stest-hook.t
28.4stest-graft-interrupted.t#abortflag
28.1stest-graft-interrupted.t#abortcommand
26.9stest-bisect2.t
26.7stest-remotefilelog-prefetch.t
26.7stest-commit.t
26.7stest-convert-cvs-detectmerge.t
26.6stest-merge-criss-cross.t#old
26.6stest-rename.t
26.5stest-merge-criss-cross.t#newfilenode
26.3stest-check-code.t
25.9stest-lfs-serve.t#lfsremote-on
25.9stest-bundle.t
25.6stest-absorb.t
25.4stest-ssh.t
25.4stest-remotefilelog-repack-fast.t
25.4stest-histedit-fold.t
25.1stest-rebase-collapse.t
25.0stest-alias.t
25.0stest-help.t
24.9stest-narrow-clone.t
24.9stest-convert-cvs.t
24.8stest-extension.t
24.3stest-narrow-widen-no-ellipsis.t#tree
24.2stest-hgwebdir.t
24.1stest-newbranch.t
24.1stest-narrow-widen-no-ellipsis.t#flat
24.0stest-narrow-widen.t#tree
24.0stest-show-work.t
23.9stest-automv.t
23.8stest-rebase-abort.t#abortcommand#continuecommand
23.7stest-rebase-abort.t#abortcommand#continueflag
23.7stest-narrow-widen.t#flat
23.6stest-subrepo-svn.t
23.6stest-rebase-abort.t#abortflag#continuecommand
23.6stest-archive.t
23.5stest-ssh-bundle1.t
23.5stest-rebase-abort.t#abortflag#continueflag
23.3stest-fastannotate-hg.t
23.2stest-split.t#obsstore-on
23.2stest-histedit-obsolete.t#abortflag
23.1stest-mq-qpush-fail.t
23.0stest-setdiscovery.t
23.0stest-histedit-obsolete.t#abortcommand
22.9stest-obshistory.t
22.7stest-merge-no-file-change.t
22.6stest-clone-stream.t#stream-bundle2
22.5stest-fetch.t
22.5stest-eol.t
22.3stest-acl.t
22.3stest-narrow-clone-no-ellipsis.t
22.3stest-largefiles-wireproto.t
22.2stest-histedit-arguments.t#abortflag
21.9stest-histedit-arguments.t#abortcommand
21.8stest-amend.t#obsstore-off
21.6stest-https.t
21.5stest-commandserver.t
21.4stest-http-bad-server.t
21.4stest-copy.t
21.4stest-bheads.t
21.2stest-split.t#obsstore-off
21.1stest-convert-cvs-synthetic.t
20.8stest-ssh-proto.t
20.8stest-convert-hg-sink.t
20.7stest-unamend.t
20.6stest-narrow-share.t#flat#normal
20.6stest-convert-git.t
20.6stest-narrow-clone-stream.t#flat-fncache
20.5stest-issue3084.t
20.5stest-obsolete-distributed.t
20.4stest-narrow-clone-stream.t#flat-nofncache
20.4stest-narrow-clone-stream.t#tree
20.4stest-bookflow.t
20.2stest-narrow-share.t#flat#safe
20.1stest-narrow-share.t#tree#normal

Timeline

test-contrib-check-code.t (1.13s)test-contrib-perf.t (32.68s)test-contrib-check-commit.t (0.17s)test-obsolete-check-push.t (5.75s)test-obsolete-checkheads.t (12.74s)test-run-tests.t (41.50s)test-push-race.t#strict (42.37s)test-push-race.t#unrelated (42.47s)test-imports-checker.t (0.80s)test-rebase-check-restore.t (6.96s)test-check-code.t (26.30s)test-check-pytype.t (0.23s)test-push-checkheads-unpushed-D4.t (5.75s)test-push-checkheads-unpushed-D3.t (5.56s)test-push-checkheads-unpushed-D5.t (5.71s)test-push-checkheads-pruned-B8.t (6.23s)test-push-checkheads-superceed-A7.t (5.49s)test-push-checkheads-superceed-A6.t (5.50s)test-largefiles-update.t (41.20s)test-push-checkheads-multibranches-E2.t (5.45s)test-push-checkheads-unpushed-D2.t (4.67s)test-push-checkheads-unpushed-D7.t (5.70s)test-push-checkheads-pruned-B5.t (4.67s)test-push-checkheads-multibranches-E3.t (4.46s)test-merge-combination-file-content.t (86.45s)test-push-checkheads-superceed-A3.t (4.69s)test-push-checkheads-superceed-A2.t (4.74s)test-push-checkheads-pruned-B2.t (4.07s)test-push-checkheads-multibranches-E1.t (4.01s)test-push-checkheads-pruned-B3.t (4.15s)test-push-checkheads-pruned-B4.t (3.97s)test-push-checkheads-unpushed-D6.t (4.55s)test-push-checkheads-partial-C2.t (3.72s)test-push-checkheads-partial-C1.t (3.62s)test-push-checkheads-superceed-A8.t (4.22s)test-push-checkheads-partial-C4.t (3.45s)test-push-checkheads-pruned-B6.t (4.03s)test-push-checkheads-pruned-B7.t (4.02s)test-merge-combination-exec-bytes.t (40.20s)test-push-checkheads-partial-C3.t (3.35s)test-push-checkheads-unpushed-D1.t (3.63s)test-subrepo-svn.t (23.59s)test-push-checkheads-superceed-A4.t (3.42s)test-push-checkheads-superceed-A5.t (3.42s)test-merge-combination-misc.t (4.45s)test-check-module-imports.t (9.15s)test-push-checkheads-pruned-B1.t (2.78s)test-push-checkheads-superceed-A1.t (2.91s)test-copytrace-heuristics.t (40.49s)test-check-config.t (7.26s)test-glog-beautifygraph.t (66.64s)test-gendoc-ja.t (3.08s)test-convert-cvs.t (24.88s)test-check-py3-compat.t (0.07s)test-help.t (24.96s)test-copies-chain-merge.t#changeset (101.46s)test-copies-chain-merge.t#compatibility (102.12s)test-copies-chain-merge.t#filelog (101.76s)test-copies-chain-merge.t#pull (148.89s)test-copies-chain-merge.t#pull-upgrade (148.15s)test-copies-chain-merge.t#push (148.41s)test-copies-chain-merge.t#push-upgrade (148.13s)test-copies-chain-merge.t#sidedata (147.56s)test-copies-chain-merge.t#upgraded (149.92s)test-copies-chain-merge.t#upgraded-parallel (148.62s)test-obsolete-bounds-checking.t (0.83s)test-convert-svn-sink.t (18.97s)test-gendoc.t (4.46s)test-glog.t (66.50s)test-check-pyflakes.t (9.26s)test-patchbomb.t (19.51s)test-convert-svn-encoding.t (0.10s)test-obsmarker-template.t (62.42s)test-obsolete-bundle-strip.t (89.54s)test-check-help.t (8.02s)test-convert-svn-source.t (0.09s)test-abort-checkin.t (0.83s)test-acl.t (22.31s)test-check-shbang.t (1.85s)test-check-commit.t (9.28s)test-convert-svn-move.t (0.08s)test-upgrade-repo.t (29.14s)test-hgweb-commands.t (16.71s)test-http-bad-server.t (21.45s)test-check-interfaces.py (0.40s)test-obsolete.t (84.80s)test-log.t (85.48s)test-extension.t (24.82s)test-dirstate-race.t#dirstate-v1 (14.29s)test-dirstate-race.t#dirstate-v2 (15.10s)test-hgweb-symrev.t (15.49s)test-check-pylint.t (50.23s)test-check-execute.t (1.22s)test-setdiscovery.t (22.98s)test-hgweb-filelog.t (8.32s)test-template-map.t (35.33s)test-hgwebdir.t (24.25s)test-revset.t (103.07s)test-bundle2-format.t (9.89s)test-convert-cvs-detectmerge.t (26.72s)test-subrepo.t (84.45s)test-hgweb-json.t (9.55s)test-largefiles.t (68.83s)test-merge-tools.t (59.55s)test-fix.t (66.90s)test-convert-cvs-synthetic.t (21.05s)test-gendoc-ro.t (2.98s)test-import.t (67.29s)test-ssh-proto-unbundle.t (10.32s)test-bookmarks-pushpull.t#b2-binary (91.31s)test-bookmarks-pushpull.t#b2-pushkey (91.04s)test-branches.t (35.54s)test-subrepo-deep-nested-change.t (30.14s)test-bundle2-exchange.t (56.77s)test-phases-exchange.t (46.20s)test-strip.t (50.22s)test-template-functions.t (79.24s)test-persistent-nodemap.t (68.48s)test-lfs.t (43.34s)test-convert-cvsnt-mergepoints.t (13.09s)test-commit-interactive.t (28.58s)test-merge-changedelete.t#newfilenode (42.13s)test-merge-changedelete.t#old (42.47s)test-hook.t (28.44s)test-ssh-proto.t (20.85s)test-grep.t (40.89s)test-highlight.t (10.44s)test-commandserver.t (21.54s)test-lfs-test-server.t#git-server (0.20s)test-lfs-test-server.t#hg-server (9.74s)test-http-permissions.t (52.50s)test-convert-git.t (20.58s)test-phabricator.t (32.69s)test-shelve.t#phasebased (53.77s)test-shelve.t#stripbased (54.78s)test-check-cargo-lock.t (0.07s)test-bookmarks.t (49.37s)test-merge-force.t (44.14s)test-clone.t (43.44s)test-check-clang-format.t (0.26s)test-convert-cvs-branch.t (18.92s)test-revset2.t (50.16s)test-largefiles-misc.t (60.36s)test-commit-amend.t (51.56s)test-generaldelta.t (12.10s)test-hgweb-diffs.t (10.77s)test-check-rust-format.t (0.06s)test-template-keywords.t (41.83s)test-keyword.t (43.39s)test-revert.t (39.63s)test-merge-criss-cross.t#newfilenode (26.48s)test-merge-criss-cross.t#old (26.63s)test-tags.t (35.42s)test-convert-svn-branches.t (0.08s)test-mq.t (68.97s)test-convert-hg-svn.t (0.08s)test-gendoc-de.t (3.11s)test-rename-merge2.t (50.34s)test-lfs-serve-access.t (10.38s)test-subrepo-git.t (46.79s)test-phases.t (29.80s)test-clone-stream.t#stream-bundle2 (22.62s)test-clone-stream.t#stream-legacy (19.81s)test-check-format.t (0.07s)test-split.t#obsstore-off (21.23s)test-split.t#obsstore-on (23.22s)test-lfs-serve.t#lfsremote-off (9.49s)test-lfs-serve.t#lfsremote-on (25.93s)test-transplant.t#commandmode (38.97s)test-transplant.t#continueflag (38.95s)test-dirstate-race2.t#dirstate-v1 (5.47s)test-dirstate-race2.t#dirstate-v2 (5.57s)test-treemanifest.t (30.93s)test-bundle.t (25.87s)test-notify.t (9.70s)test-http-protocol.t (9.62s)test-template-basic.t (43.28s)test-https.t (21.55s)test-convert.t (7.29s)test-tag.t (30.51s)test-hgweb.t (13.22s)test-http.t (17.30s)test-check-jshint.t (0.24s)test-shelve2.t#phasebased#abortcommand#continuecommand (49.93s)test-shelve2.t#phasebased#abortcommand#continueflag (49.70s)test-shelve2.t#phasebased#abortflag#continuecommand (49.54s)test-shelve2.t#phasebased#abortflag#continueflag (49.41s)test-shelve2.t#stripbased#abortcommand#continuecommand (48.73s)test-shelve2.t#stripbased#abortcommand#continueflag (48.41s)test-shelve2.t#stripbased#abortflag#continuecommand (48.45s)test-shelve2.t#stripbased#abortflag#continueflag (48.19s)test-clonebundles.t (17.48s)test-obsolete-distributed.t (20.47s)test-subrepo-recursion.t (15.94s)test-convert-filemap.t (37.29s)test-obsolete-divergent.t (41.67s)test-annotate.t (39.63s)test-graft.t (31.17s)test-rebase-inmemory.t (45.11s)test-bisect.t (37.43s)test-encoding-textwrap.t (2.06s)test-walk.t (17.84s)test-mv-cp-st-diff.t (41.30s)test-resolve.t (33.30s)test-convert-p4-filetypes.t (0.07s)test-ssh.t (25.41s)test-devel-warnings.t (4.53s)test-rebase-scenario-global.t (31.83s)test-commit.t (26.74s)test-bundle2-remote-changegroup.t (14.92s)test-import-git.t (19.64s)test-mq-header-from.t (37.39s)test-bisect2.t (26.91s)test-i18n.t (3.22s)test-archive.t (23.57s)test-issue6528.t (17.82s)test-treediscovery.t (29.62s)test-debugcommands.t (18.83s)test-rebase-obsolete.t (18.80s)test-exchange-multi-source.t (15.71s)test-fileset.t (35.70s)test-push-warn.t (42.75s)test-hgweb-annotate-whitespace.t (3.98s)test-log-linerange.t (9.83s)test-graft-interrupted.t#abortcommand (28.13s)test-graft-interrupted.t#abortflag (28.39s)test-remotefilelog-repack.t (29.01s)test-remove.t (18.41s)test-update-branches.t (59.02s)test-backout.t (32.34s)test-graft-rename.t (17.10s)test-blackbox.t (10.75s)test-status.t#dirstate-v1 (31.80s)test-status.t#dirstate-v2 (32.53s)test-alias.t (24.99s)test-mq-header-date.t (38.63s)test-pull-pull-corruption.t (14.47s)test-progress.t (4.33s)test-convert-svn-startrev.t (0.09s)test-amend.t#obsstore-off (21.80s)test-amend.t#obsstore-on (30.21s)test-ssh-bundle1.t (23.54s)test-share-safe.t (15.48s)test-copies.t#changeset (56.55s)test-copies.t#compatibility (57.10s)test-copies.t#filelog (56.63s)test-copies.t#sidedata (56.68s)test-censor.t#revlogv1 (29.03s)test-censor.t#revlogv2 (32.01s)test-push-http.t#bundle1 (14.91s)test-push-http.t#bundle2 (15.48s)test-narrow.t#flat#lfs-off (36.32s)test-narrow.t#flat#lfs-on (39.64s)test-narrow.t#tree#lfs-off (36.72s)test-narrow.t#tree#lfs-on (39.76s)test-contrib-relnotes.t (1.07s)test-histedit-obsolete.t#abortcommand (22.97s)test-histedit-obsolete.t#abortflag (23.17s)test-audit-subrepo.t (18.56s)test-globalopts.t (10.30s)test-histedit-arguments.t#abortcommand (21.91s)test-histedit-arguments.t#abortflag (22.23s)test-http-bundle1.t (15.65s)test-rebase-collapse.t (25.10s)test-extdiff.t (16.77s)test-wireproto.t (8.11s)test-hgweb-descend-empties.t (1.77s)test-obshistory.t (22.85s)test-fncache.t (9.60s)test-uncommit.t (32.93s)test-rename.t (26.61s)test-mq-subrepo.t (41.19s)test-rebase-obsolete3.t (17.64s)test-fastannotate-hg.t (23.33s)test-histedit-fold.t (25.39s)test-histedit-commute.t (12.34s)test-chg.t (0.07s)test-remotefilelog-repack-fast.t (25.41s)test-getbundle.t (4.71s)test-status-color.t (15.33s)test-install.t (2.06s)test-convert-hg-sink.t (20.80s)test-largefiles-wireproto.t (22.26s)test-clone-stream-format.t#stream-bundle2 (38.66s)test-clone-stream-format.t#stream-legacy (41.24s)test-logexchange.t (13.46s)test-sidedata-exchange.t (17.79s)test-absorb.t (25.64s)test-merge-types.t (10.89s)test-histedit-edit.t (17.95s)test-lfconvert.t (13.81s)test-paths.t (18.32s)test-remotefilelog-bgprefetch.t (17.60s)test-fetch.t (22.54s)test-rebase-named-branches.t (16.99s)test-incoming-outgoing.t (11.71s)test-manifest.t (14.74s)test-rebase-conflicts.t (13.28s)test-rollback.t (16.82s)test-clone-pull-corruption.t (7.53s)test-eol.t (22.46s)test-fix-topology.t#obsstore-off (10.04s)test-fix-topology.t#obsstore-on (18.68s)test-newbranch.t (24.13s)test-bundle2-multiple-changegroups.t (6.02s)test-config.t (11.77s)test-git-export.t (19.53s)test-infinitepush-ci.t (10.97s)test-rebase-interruptions.t (17.40s)test-fastexport.t (3.05s)test-rebase-obsolete4.t (18.21s)test-diff-color.t (5.98s)test-hgweb-empty.t (1.53s)test-lfs-largefiles.t (10.24s)test-completion.t (4.85s)test-infinitepush-bundlestore.t (16.69s)test-rebase-abort.t#abortcommand#continuecommand (23.76s)test-rebase-abort.t#abortcommand#continueflag (23.70s)test-rebase-abort.t#abortflag#continuecommand (23.57s)test-rebase-abort.t#abortflag#continueflag (23.51s)test-pager.t (10.70s)test-merge1.t (18.68s)test-push.t (14.91s)test-convert-mtn.t (0.08s)test-hardlinks.t (11.00s)test-hghave.t (3.74s)test-single-head.t (13.49s)test-copies-in-changeset.t#extra (14.45s)test-copies-in-changeset.t#sidedata (16.13s)test-narrow-shallow-merges.t (18.22s)test-mq-guards.t (29.09s)test-convert-svn-tags.t (0.09s)test-qrecord.t (5.27s)test-mq-subrepo-svn.t (1.85s)test-rebase-parameters.t (18.28s)test-revset-legacy-lookup.t (15.88s)test-copies-unrelated.t#changeset (29.70s)test-copies-unrelated.t#compatibility (29.77s)test-copies-unrelated.t#filelog (29.46s)test-copies-unrelated.t#sidedata (29.70s)test-git-interop.t (0.07s)test-branch-change.t (19.61s)test-export.t (10.48s)test-issue3084.t (20.48s)test-narrow-patterns.t (13.24s)test-merge-no-file-change.t (22.74s)test-rhg.t (0.07s)test-verify.t (7.22s)test-bundle-r.t (17.85s)test-rebase-rename.t (16.03s)test-narrow-widen-no-ellipsis.t#flat (24.13s)test-narrow-widen-no-ellipsis.t#tree (24.32s)test-mq-qpush-fail.t (23.12s)test-commit-interactive-curses.t (12.16s)test-copy.t (21.44s)test-rebase-dest.t (17.98s)test-rebase-pull.t (14.98s)test-exchange-obsmarkers-case-A1.t (14.13s)test-sparse.t (18.89s)test-hgignore.t#dirstate-v1 (9.23s)test-hgignore.t#dirstate-v2 (9.40s)test-rebase-newancestor.t (16.85s)test-import-bypass.t (14.45s)test-revert-interactive.t (10.36s)test-help-hide.t (0.39s)test-parse-date.t (16.41s)test-treediscovery-legacy.t (18.00s)test-narrow-widen.t#flat (23.70s)test-narrow-widen.t#tree (24.03s)test-rebase-cache.t (19.15s)test-journal.t (5.83s)test-releasenotes-formatting.t (10.27s)test-merge-exec.t (14.86s)test-share-bookmarks.t#svfs#normal (11.01s)test-share-bookmarks.t#svfs#safe (11.00s)test-share-bookmarks.t#vfs#normal (11.01s)test-share-bookmarks.t#vfs#safe (11.06s)test-mq-qrefresh.t (15.03s)test-githelp.t (13.92s)test-histedit-fold-non-commute.t (12.89s)test-gendoc-pt_BR.t (3.19s)test-gendoc-zh_CN.t (3.12s)test-gendoc-zh_TW.t (3.06s)test-histedit-non-commute.t (12.79s)test-static-http.t (9.22s)test-exchange-obsmarkers-case-A3.t (15.26s)test-mq-qrefresh-interactive.t (3.37s)test-unamend.t (20.70s)test-conflict.t (7.83s)test-diff-unified.t (8.76s)test-rebase-obsolete2.t (15.44s)test-remotefilelog-prefetch.t (26.75s)test-mq-qnew.t (19.26s)test-win32text.t (9.08s)test-flagprocessor.t (14.79s)test-exchange-obsmarkers-case-C3.t (9.60s)test-gendoc-it.t (3.09s)test-gendoc-el.t (3.11s)test-gendoc-fr.t (3.11s)test-gendoc-ru.t (3.07s)test-gendoc-sv.t (3.12s)test-gendoc-da.t (3.12s)test-hgrc.t (11.76s)test-bheads.t (21.38s)test-diff-ignore-whitespace.t (11.77s)test-init.t (32.72s)test-rename-dir-merge.t (12.76s)test-bookflow.t (20.36s)test-largefiles-cache.t (11.27s)test-encoding.t (5.64s)test-mq-qrefresh-replace-log-message.t (10.99s)test-convert-bzr-merges.t (0.08s)test-url-rev.t (11.44s)test-mq-qimport.t (15.87s)test-diff-change.t (11.98s)test-share.t#normal (10.37s)test-share.t#safe (10.43s)test-pager-legacy.t (7.33s)test-histedit-base.t (6.38s)test-clone-r.t (9.80s)test-hgweb-raw.t (3.19s)test-rebase-base-flag.t (12.17s)test-bad-extension.t (1.68s)test-parseindex.t (3.65s)test-rebase-mq.t (14.47s)test-removeemptydirs.t (10.13s)test-exchange-obsmarkers-case-D1.t (8.90s)test-hgweb-removed.t (1.63s)test-eol-patch.t (5.87s)test-automv.t (23.89s)test-exchange-obsmarkers-case-C2.t (8.62s)test-pull-bundle.t (7.61s)test-casecollision-merge.t (0.07s)test-subrepo-relative-path.t (8.52s)test-http-clone-r.t (9.04s)test-histedit-no-change.t (9.18s)test-convert-bzr.t (0.07s)test-pull-update.t (11.40s)test-narrow-clone.t (24.94s)test-template-graph.t (11.60s)test-strip-cross.t (14.66s)test-add.t (16.50s)test-ssh-clone-r.t (9.79s)test-diffstat.t (10.37s)test-bookmarks-corner-case.t (7.23s)test-convert-splicemap.t (9.21s)test-http-proxy.t (3.51s)test-fileset-generated.t (5.55s)test-purge.t#dirstate-v1 (11.37s)test-purge.t#dirstate-v2 (11.35s)test-bundle-phases.t (13.30s)test-transaction-safety.t#changelogv2 (6.67s)test-transaction-safety.t#revlogv1 (8.65s)test-transaction-safety.t#revlogv2 (6.91s)test-exchange-obsmarkers-case-C1.t (8.34s)test-status-rev.t (5.30s)test-diff-upgrade.t (3.90s)test-bisect3.t (7.46s)test-churn.t (9.01s)test-stream-bundle-v2.t (3.88s)test-narrow-exchange.t#lfs-off (8.49s)test-narrow-exchange.t#lfs-on (9.16s)test-dispatch.t (8.24s)test-repo-compengines.t (9.59s)test-exchange-obsmarkers-case-D4.t (7.46s)test-eol-update.t (5.48s)test-remotefilelog-push-pull.t (13.80s)test-bundle-type.t (12.14s)test-narrow-exchange-merges.t (8.58s)test-narrow-trackedcmd.t#flat (7.75s)test-narrow-trackedcmd.t#tree (7.76s)test-absorb-rename.t (10.93s)test-obsolete-changeset-exchange.t (6.49s)test-rename-merge1.t (13.28s)test-exchange-obsmarkers-case-B5.t (8.71s)test-copy-move-merge.t (7.83s)test-pull-branch.t (10.30s)test-eol-hook.t (7.20s)test-sparse-profiles.t (8.52s)test-remotefilelog-linknodes.t (12.00s)test-byteify-strings.t (0.59s)test-rebase-detach.t (11.15s)test-mq-qpush-exact.t (18.78s)test-basic.t (7.38s)test-notify-changegroup.t (3.97s)test-convert-hg-source.t (10.69s)test-hybridencode.py (0.21s)test-fastannotate-protocol.t (7.59s)test-rebase-bookmarks.t (12.94s)test-infinitepush.t (12.36s)test-bookmarks-current.t (13.25s)test-encoding-align.t (4.43s)test-debugbuilddag.t (5.08s)test-up-local-change.t (10.46s)test-inherit-mode.t (1.65s)test-transaction-rollback-on-revlog-split.t (4.50s)test-convert-baz.t (0.07s)test-releasenotes-merging.t (5.14s)test-convert-hg-startrev.t (8.13s)test-narrow-expanddirstate.t (4.47s)test-show-work.t (24.01s)test-symlinks.t#dirstate-v1 (10.04s)test-symlinks.t#dirstate-v2 (10.17s)test-narrow-strip.t#flat#lfs-off (6.50s)test-narrow-strip.t#flat#lfs-on (6.19s)test-narrow-strip.t#tree#lfs-off (5.71s)test-narrow-strip.t#tree#lfs-on (6.21s)test-audit-path.t (10.60s)test-exchange-obsmarkers-case-B4.t (8.73s)test-merge-commit.t (6.27s)test-fastannotate.t (9.50s)test-narrow-share.t#flat#normal (20.62s)test-narrow-share.t#flat#safe (20.16s)test-narrow-share.t#tree#normal (20.06s)test-narrow-share.t#tree#safe (19.99s)test-pathconflicts-merge.t (9.84s)test-remotefilelog-gcrepack.t (5.12s)test-remotefilelog-local.t (19.54s)test-exchange-obsmarkers-case-C4.t (7.48s)test-sparse-revlog.t (0.07s)test-mq-safety.t (18.97s)test-profile.t (18.26s)test-directaccess.t (7.57s)test-exchange-obsmarkers-case-A6.t (7.95s)test-exchange-obsmarkers-case-A5.t (7.31s)test-obsolete-tag-cache.t (4.00s)test-histedit-bookmark-motion.t (5.33s)test-histedit-non-commute-abort.t (6.18s)test-hgweb-csp.t (4.72s)test-merge-default.t (7.03s)test-log-bookmark.t (15.79s)test-mq-qfold.t (15.53s)test-diff-binary-file.t (5.06s)test-journal-share.t#normal (5.03s)test-journal-share.t#safe (14.33s)test-merge-halt.t (13.96s)test-casefolding.t (0.07s)test-mq-git.t (13.92s)test-remotefilelog-cacheprocess.t (3.16s)test-patchbomb-bookmark.t (2.86s)test-stack.t (12.99s)test-default-push.t (13.09s)test-sparse-merges.t (12.66s)test-pull-r.t (12.15s)test-contrib-testparseutil.t (0.21s)test-hgweb-no-request-uri.t (1.04s)test-releasenotes-parsing.t (1.72s)test-rebase-emptycommit.t (11.12s)test-narrow-merge-outside.t (10.89s)test-diff-indent-heuristic.t#bdiff (0.41s)test-diff-indent-heuristic.t#xdiff (0.74s)test-import-merge.t (10.64s)test-drawdag.t (10.47s)test-status-tracked-key.t (10.13s)test-exchange-obsmarkers-case-B2.t (10.27s)test-convert-bzr-directories.t (0.07s)test-convert-p4.t (0.06s)test-show-stack.t (9.98s)test-match.py (0.12s)test-narrow-clone-nonlinear.t (11.84s)test-mq-eol.t (9.77s)test-state-extension.t (9.71s)test-exchange-obsmarkers-case-A4.t (9.75s)test-obsmarkers-effectflag.t (9.65s)test-fastannotate-renames.t (9.34s)test-histedit-outgoing.t (9.48s)test-histedit-drop.t (9.32s)test-bookmarks-merge.t (8.66s)test-lock-badness.t (9.64s)test-repair-strip.t (4.65s)test-rebase-mq-skip.t#continuecommand (9.00s)test-rebase-mq-skip.t#continueflag (9.14s)test-rebase-templates.t (4.57s)test-extension-timing.t (0.77s)test-exchange-obsmarkers-case-B6.t (6.46s)test-cbor.py (0.45s)test-narrow-merge.t#flat (8.37s)test-narrow-merge.t#tree (6.28s)test-debugbundle.t (2.56s)test-convert-tla.t (1.31s)test-mq-qclone-http.t (8.09s)test-exchange-obsmarkers-case-A2.t (5.69s)test-exchange-obsmarkers-case-D2.t (6.03s)test-status-terse.t (6.56s)test-subrepo-missing.t (6.04s)test-phase-archived.t (3.50s)test-pathconflicts-update.t (7.81s)test-hgweb-no-path-info.t (1.13s)test-show.t (5.05s)test-addremove-similar.t (5.72s)test-contrib.t (1.18s)test-worker.t (2.60s)test-merge-subrepos.t (6.68s)test-merge7.t (3.14s)test-unionrepo.t (7.01s)test-flags.t (4.54s)test-pull-network.t (5.27s)test-remotefilelog-gc.t (4.79s)test-commit-multiple.t (5.58s)test-commit-unresolved.t#abortcommand (7.42s)test-commit-unresolved.t#abortflag (7.16s)test-import-eol.t (7.67s)test-sparse-import.t (4.07s)test-narrow-clone-no-ellipsis.t (22.27s)test-amend-subrepo.t#obsstore-off (8.20s)test-amend-subrepo.t#obsstore-on (8.07s)test-logtoprocess.t (3.09s)test-rebase-transaction.t#continuecommand (4.97s)test-rebase-transaction.t#continueflag (5.04s)test-identify.t (8.78s)test-simple-update.t (6.60s)test-narrow-pull.t (14.40s)test-mq-missingfiles.t (7.10s)test-convert-datesort.t (6.60s)test-mq-qdelete.t (11.57s)test-filebranch.t (3.71s)test-pending.t (6.46s)test-clone-update-order.t (4.32s)test-racy-mutations.t#fail-if-detected (1.72s)test-racy-mutations.t#skip-detection (1.44s)test-fastannotate-perfhack.t (7.06s)test-origbackup-conflict.t (4.45s)test-mq-merge.t (7.19s)test-update-atomic.t (3.09s)test-merge-local.t (5.35s)test-hooklib-changeset_obsoleted.t (3.00s)test-remotefilelog-http.t (4.70s)test-repo-filters-tiptoe.t (3.63s)test-sqlitestore.t (3.01s)test-exchange-obsmarkers-case-D3.t (6.93s)test-remote-hidden.t (4.48s)test-rebuildstate.t (7.26s)test-bugzilla.t (1.75s)test-revlog-v2.t (3.44s)test-rename-rev.t (7.46s)test-branch-option.t (7.88s)test-mac-packages.t (0.07s)test-empty-group.t (4.10s)test-narrow-shallow.t (15.23s)test-parents.t (5.11s)test-fix-metadata.t (0.64s)test-serve.t (5.22s)test-http-branchmap.t (3.28s)test-single-head-obsolescence-named-branch-A3.t (6.59s)test-children.t (5.28s)test-remotefilelog-clone.t (5.21s)test-remotefilelog-sparse.t (10.90s)test-remotefilelog-corrupt-cache.t (4.15s)test-run-tests.py (0.15s)test-single-head-obsolescence-named-branch-A4.t (5.46s)test-extdata.t (6.00s)test-remotefilelog-clone-tree.t (5.27s)test-narrow-commit.t#flat (8.94s)test-narrow-commit.t#tree (8.97s)test-mq-pull-from-bundle.t (6.59s)test-exchange-obsmarkers-case-B3.t (6.55s)test-issue672.t (2.94s)test-merge-internal-tools-pattern.t (4.58s)test-rhg-sparse-narrow.t (0.07s)test-extensions-afterloaded.t (4.01s)test-lfs-bundle.t (5.37s)test-wireproto-serverreactor.py (0.23s)test-single-head-obsolescence-named-branch-A1.t (6.31s)test-eol-clone.t (2.50s)test-tools.t (0.76s)test-fastannotate-corrupt.t (3.76s)test-single-head-obsolescence-named-branch-A2.t (5.39s)test-single-head-obsolescence-named-branch-A5.t (4.70s)test-excessive-merge.t (4.20s)test-mq-qqueue.t (9.73s)test-narrow-rebase.t#continuecommand (6.92s)test-narrow-rebase.t#continueflag (6.89s)test-push-cgi.t (1.59s)test-record.t (1.08s)test-relink.t (2.72s)test-convert-darcs.t (0.79s)test-transaction-rollback-on-sigpipe.t (2.38s)test-bundle2-pushback.t (3.47s)test-hgweb-non-interactive.t (1.00s)test-remotefilelog-log.t (5.93s)test-rebase-backup.t (5.28s)test-patch.t (3.30s)test-cache-abuse.t (13.86s)test-arbitraryfilectx.t (2.09s)test-pathconflicts-basic.t (6.05s)test-hooklib-changeset_published.t (1.99s)test-committer.t (4.26s)test-exchange-obsmarkers-case-B7.t (6.58s)test-patchbomb-tls.t (2.88s)test-remotefilelog-bundle2-legacy.t (0.53s)test-pull-http.t (3.44s)test-exchange-obsmarkers-case-B1.t (6.56s)test-rename-after-merge.t (6.44s)test-remotefilelog-bundles.t (4.84s)test-requires.t (3.85s)test-bookmarks-rebase.t (5.15s)test-mq-qdiff.t (6.12s)test-sidedata.t (3.75s)test-remotefilelog-bundle2.t (6.45s)test-exchange-obsmarkers-case-A7.t (5.75s)test-revset-outgoing.t (4.19s)test-import-context.t (1.72s)test-eol-add.t (3.15s)test-dirstate.t#dirstate-v1 (3.70s)test-dirstate.t#dirstate-v2 (4.46s)test-bundle-vs-outgoing.t (4.37s)test-rebase-partial.t (4.47s)test-update-names.t (5.79s)test-nointerrupt.t (1.90s)test-hooklib-reject_merge_commits.t (1.69s)test-mailmap.t (3.74s)test-rank.t (2.99s)test-merge-remove.t (5.65s)test-convert-tagsbranch-topology.t (1.48s)test-narrow-clone-stream.t#flat-fncache (20.56s)test-narrow-clone-stream.t#flat-nofncache (20.44s)test-narrow-clone-stream.t#tree (20.44s)test-locate.t (7.99s)test-merge-closedheads.t (7.30s)test-wireproto-clientreactor.py (0.26s)test-contrib-dumprevlog.t (3.01s)test-unified-test.t (0.90s)test-remotefilelog-pull-noshallow.t (3.17s)test-debugextensions.t (1.32s)test-issue1306.t (2.75s)test-narrow-sparse.t#flat (4.95s)test-narrow-sparse.t#tree (3.89s)test-fuzz-targets.t (0.31s)test-cat.t (7.19s)test-histedit-no-backup.t#abortcommand (2.46s)test-histedit-no-backup.t#abortflag (2.53s)test-histedit-merge-tools.t (3.45s)test-issue660.t (5.94s)test-remotefilelog-tags.t (4.08s)test-issue1175.t (5.58s)test-narrow-clone-non-narrow-server.t (7.63s)test-oldcgi.t (1.32s)test-largefiles-small-disk.t (1.26s)test-issue586.t (5.04s)test-convert-clonebranches.t (4.78s)test-remotefilelog-strip.t (3.68s)test-impexp-branch.t (4.10s)test-rebase-legacy.t#continuecommand (3.78s)test-rebase-legacy.t#continueflag (3.57s)test-wsgirequest.py (0.33s)test-symlink-placeholder.t (3.13s)test-url-download.t (3.77s)test-merge6.t (3.87s)test-ssh-repoerror.t (4.40s)test-narrow-copies.t (5.39s)test-server-view.t (3.90s)test-verify-repo-operations.py (0.10s)test-rebase-issue-noparam-single-rev.t (5.32s)test-close-head.t (4.44s)test-merge-revert2.t (7.57s)test-merge4.t (4.66s)test-addremove.t (5.24s)test-mq-qrename.t (9.29s)test-narrow-update.t (5.26s)test-mq-symlinks.t (7.58s)test-double-merge.t (1.96s)test-narrow-patch.t#flat (2.43s)test-narrow-patch.t#tree (2.50s)test-glog-topological.t (2.04s)test-sparse-verbose-json.t (3.18s)test-merge9.t (4.11s)test-remotefilelog-partial-shallow.t (3.32s)test-update-reverse.t (2.82s)test-patch-offset.t (0.73s)test-newcgi.t (0.92s)test-revlog-raw.py (0.59s)test-context-metadata.t (2.43s)test-pushvars.t (2.51s)test-histedit-templates.t (2.27s)test-hgwebdirsym.t (3.31s)test-log-exthook.t (1.13s)test-issue1802.t (3.22s)test-branch-tag-confict.t (2.27s)test-narrow-debugcommands.t (2.72s)test-custom-filters.t (1.98s)test-sparse-requirement.t (2.76s)test-sparse-clone.t (1.87s)test-issue2137.t (0.88s)test-manifest.py (2.22s)test-merge-symlinks.t (1.66s)test-revlog.t (1.53s)test-permissions.t#dirstate-v1 (2.31s)test-permissions.t#dirstate-v2 (2.38s)test-eolfilename.t (2.51s)test-merge10.t (3.13s)test-diffdir.t (4.44s)test-schemes.t (2.58s)test-mq-qgoto.t (6.30s)test-newercgi.t (0.97s)test-issue522.t (2.60s)test-hooklib-reject_new_heads.t (1.41s)test-url.py (0.21s)test-convert-identity.t (2.80s)test-editor-filename.t (1.54s)test-import-unknown.t (4.69s)test-journal-exists.t (2.36s)test-unbundlehash.t (1.77s)test-merge-revert.t (7.24s)test-encode.t (2.99s)test-hooklib-enforce_draft_commits.t (2.01s)test-casecollision.t (4.60s)test-remotefilelog-datapack.py (1.42s)test-ancestor.py (0.76s)test-missing-capability.t (2.38s)test-update-dest.t (2.26s)test-known.t (3.38s)test-sparse-fsmonitor.t (0.02s)test-no-symlinks.t (0.08s)test-convert-authormap.t (1.55s)test-sparse-clear.t (2.25s)test-remotefilelog-permissions.t (2.78s)test-subrepo-paths.t (1.49s)test-confused-revert.t (4.00s)test-merge2.t (4.99s)test-issue1993.t (1.94s)test-issue1502.t (2.37s)test-gpg.t (1.67s)test-rebase-empty-successor.t (2.67s)test-clone-cgi.t (0.82s)test-fix-pickle.t (0.98s)test-websub.t (1.34s)test-rebase-brute-force.t (2.09s)test-simplemerge.py (0.16s)test-stdio.py (6.44s)test-diff-antipatience.t#bdiff (0.66s)test-diff-antipatience.t#xdiff (0.87s)test-issue1877.t (3.44s)test-empty-file.t (2.83s)test-parseindex2.py (0.28s)test-revlog-mmapindex.t (16.57s)test-hgk.t (2.01s)test-changelog-exec.t (2.52s)test-lrucachedict.py (0.17s)test-diff-hashes.t (2.01s)test-convert-bzr-ghosts.t (0.08s)test-debian-packages.t (0.32s)test-absorb-edit-lines.t (2.36s)test-remotefilelog-histpack.py (2.73s)test-remotefilelog-wireproto.t (3.23s)test-narrow-acl.t (3.10s)test-legacy-exit-code.t (2.38s)test-remotefilelog-hgweb.t (2.25s)test-docker-packaging.t (0.25s)test-bookmarks-strip.t (2.79s)test-remotefilelog-keepset.t (2.52s)test-mactext.t (1.21s)test-empty.t (1.52s)test-remotefilelog-bad-configs.t (2.43s)test-diff-subdir.t (1.75s)test-revert-interactive-curses.t (1.87s)test-narrow-debugrebuilddirstate.t (1.90s)test-convert-bzr-114.t (0.09s)test-unrelated-pull.t (1.94s)test-diff-reverse.t (2.08s)test-revset-dirstate-parents.t (4.60s)test-trusted.py (0.24s)test-debugbackupbundle.t (1.90s)test-wireproto-framing.py (0.17s)test-update-issue1456.t (2.93s)test-merge5.t (2.58s)test-convert-bzr-treeroot.t (0.08s)test-narrow-archive.t (2.74s)test-absorb-unfinished.t (1.35s)test-diff-copy-depth.t (4.27s)test-hgweb-bundle.t (1.69s)test-mq-qimport-fail-cleanup.t (1.54s)test-rhg-no-generaldelta.t (1.58s)test-linelog.py (2.01s)test-linerange.py (0.18s)test-fix-clang-format.t (0.13s)test-manifest-merging.t (1.83s)test-issue619.t (1.95s)test-merge8.t (1.98s)test-issue842.t (1.97s)test-remotefilelog-blame.t (3.29s)test-filecache.py (0.92s)test-revlog-group-emptyiter.t (1.35s)test-propertycache.py (0.48s)test-pathencode.py (0.38s)test-demandimport.py (0.17s)test-archive-symlinks.t (1.33s)test-absorb-filefixupstate.py (0.31s)test-absorb-strip.t (1.25s)test-pull-permission.t (1.19s)test-issue5979.t (2.55s)test-revisions.t (3.64s)test-remotefilelog-share.t#normal (1.96s)test-remotefilelog-share.t#safe (2.02s)test-issue612.t (2.03s)test-context.py (0.42s)test-batching.py (0.30s)test-debugindexdot.t (2.18s)test-lock.py (0.17s)test-doctest.py (1.16s)test-eol-tag.t (1.43s)test-empty-manifest-index.t (1.57s)test-ssh-batch.t (1.45s)test-bdiff.py (0.18s)test-hgweb-auth.py (0.17s)test-nested-repo.t (2.53s)test-minirst.py (0.20s)test-rust-ancestor.py (0.14s)test-execute-bit.t (2.28s)test-issue4074.t (1.48s)test-username-newline.t (0.86s)test-fastannotate-revmap.py (0.34s)test-revlog-packentry.t (1.09s)test-ui-config.py (0.38s)test-sparse-with-safe-share.t (0.91s)test-diff-issue2761.t (2.02s)test-strict.t (1.77s)test-atomictempfile.py (0.20s)test-diff-newlines.t (0.89s)test-util.py (0.18s)test-empty-dir.t (1.32s)test-rust-discovery.py (0.12s)test-storage.py (2.37s)test-absorb-phase.t (1.70s)test-extra-filelog-entry.t (1.41s)test-annotate.py (0.21s)test-debugrename.t (1.83s)test-issue1438.t (1.84s)test-issue1102.t (1.50s)test-fastannotate-diffopts.t (0.93s)test-revert-unknown.t (1.58s)test-bad-pull.t (1.13s)test-revert-flags.t (1.37s)test-simplekeyvaluefile.py (0.19s)test-issue1089.t (1.43s)test-backwards-remove.t (1.28s)test-contrib-emacs.t (0.38s)test-xdg.t (0.24s)test-cappedreader.py (0.16s)test-wireproto.py (0.26s)test-dirstate-backup.t (0.45s)test-mq-qsave.t (1.07s)test-encoding-func.py (0.14s)test-extensions-wrapfunction.py (0.28s)test-walkrepo.py (0.38s)test-hashutil.py (0.08s)test-rust-revlog.py (0.07s)test-revlog-ancestry.py (0.54s)test-config-parselist.py (0.16s)test-ui-verbosity.py (0.31s)test-hg-parseurl.py (0.18s)test-filelog.py (0.34s)test-symlink-os-yes-fs-no.py (1.34s)test-sshserver.py (0.28s)test-hgwebdir-gc.py (0.43s)test-config-env.py (0.28s)test-minifileset.py (0.24s)test-locale.t (0.19s)test-lfs-pointer.py (0.39s)test-duplicateoptions.py (0.41s)test-hgwebdir-paths.py (0.33s)test-ui-color.py (0.28s)test-status-inprocess.py (0.35s)test-dispatch.py (0.38s)test-dirs.py (0.16s)test-mdiff.py (0.14s)