Job try-88395a6ce362b6fff2f90fdfe9133e545077f094-debian10-cpython-3.8-0

Repo:try
Node:88395a6ce362b6fff2f90fdfe9133e545077f094
Name:debian10-cpython-3.8
Scheduled At:2022-03-03T01:41:38
Started At:2022-03-03T01:41:50
Finished At:2022-03-03T01:50:18

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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/acl.py", line 482, in _txnhook
+      raise error.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/acl.py", line 482, in _txnhook
+      raise error.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/acl.py", line 482, in _txnhook
+      raise error.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/acl.py", line 482, in _txnhook
+      raise error.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/acl.py", line 477, in _txnhook
+      raise error.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/acl.py", line 482, in _txnhook
+      raise error.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2397, in handlebookmark
+      op.repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/hgext/acl.py", line 401, in hook
+      _pkhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/acl.py", line 414, in _pkhook
+      raise error.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/acl.py", line 482, in _txnhook
+      raise error.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/acl.py", line 439, in _txnhook
+      ui.readconfig(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/ui.py", line 458, in readconfig
+      fp = open(filename, 'rb')
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/acl.py", line 482, in _txnhook
+      raise error.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/acl.py", line 477, in _txnhook
+      raise error.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/acl.py", line 477, in _txnhook
+      raise error.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/acl.py", line 459, in _txnhook
+      raise error.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/acl.py", line 464, in _txnhook
+      raise error.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/acl.py", line 464, in _txnhook
+      raise error.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/acl.py", line 459, in _txnhook
+      raise error.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/hgext/acl.py", line 403, in hook
+      _txnhook(ui, repo, hooktype, node, source, user, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/acl.py", line 459, in _txnhook
+      raise error.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2397, in handlebookmark
+      op.repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 356, in runhooks
+      r = _exthook(ui, repo, htype, hname, cmd, args, throw)
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2353, in handlepushkey
+      raise error.PushkeyFailed(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: failpush
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: failpush
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 554, in _processpart
+      handler = _gethandler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: failpush
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2191, in handlecheckheads
+      raise error.PushRaced(
+  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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 436, in unbundle
+      raise error.ResponseError(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: failpush
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2711, in unbundle
+      lockandtr[2].close()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/transaction.py", line 38, in _active
+      return func(self, *args, **kwds)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/transaction.py", line 555, in close
+      self._validatecallback[category](self)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2488, in validate
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 356, in runhooks
+      r = _exthook(ui, repo, htype, hname, cmd, args, throw)
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: failpush
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 356, in runhooks
+      r = _exthook(ui, repo, htype, hname, cmd, args, throw)
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: failpush
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 356, in runhooks
+      r = _exthook(ui, repo, htype, hname, cmd, args, throw)
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2353, in handlepushkey
+      raise error.PushkeyFailed(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2353, in handlepushkey
+      raise error.PushkeyFailed(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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-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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: share
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 1904, in __getitem__
+      node = self.changelog.node(changeid)
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 629, in revsymbol
+      return repo[r]
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 1944, in __getitem__
+      raise error.FilteredRepoLookupError(
+  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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 395, in lookup
+      return self._repo.lookup(key)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2182, in lookup
+      node = scmutil.revsymbol(self, key).node()
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/share.py", line 162, in clone
+      return orig(ui, source, *args, **opts)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 1954, in clone
+      r = hg.clone(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hg.py", line 761, in clone
+      rootnode = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: eol
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/hgext/eol.py", line 346, in checkheadshook
+      _checkhook(ui, repo, node, True)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/eol.py", line 334, in _checkhook
+      raise errormod.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: eol
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/hgext/eol.py", line 346, in checkheadshook
+      _checkhook(ui, repo, node, True)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/eol.py", line 334, in _checkhook
+      raise errormod.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: eol
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/hgext/eol.py", line 346, in checkheadshook
+      _checkhook(ui, repo, node, True)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/eol.py", line 334, in _checkhook
+      raise errormod.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: eol
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/hgext/eol.py", line 346, in checkheadshook
+      _checkhook(ui, repo, node, True)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/eol.py", line 334, in _checkhook
+      raise errormod.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: eol
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/hgext/eol.py", line 346, in checkheadshook
+      _checkhook(ui, repo, node, True)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/eol.py", line 334, in _checkhook
+      raise errormod.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: eol
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/hgext/eol.py", line 341, in checkallhook
+      _checkhook(ui, repo, node, False)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/eol.py", line 334, in _checkhook
+      raise errormod.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: eol
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/hgext/eol.py", line 341, in checkallhook
+      _checkhook(ui, repo, node, False)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/eol.py", line 334, in _checkhook
+      raise errormod.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2397, in handlebookmark
+      op.repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 356, in runhooks
+      r = _exthook(ui, repo, htype, hname, cmd, args, throw)
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 392, in listkeys
+      return self._repo.listkeys(namespace)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 3439, in listkeys
+      self.hook(b'prelistkeys', throw=True, namespace=namespace)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 356, in runhooks
+      r = _exthook(ui, repo, htype, hname, cmd, args, throw)
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5429, in pull
+      fremotebookmarks = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 366, in getbundle
+      chunks = exchange.getbundlechunks(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2370, in getbundlechunks
+      func(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2429, in _getbundlechangegrouppart
+      cgstream = changegroup.makestream(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 1918, in makestream
+      repo.hook(b'preoutgoing', throw=True, source=source)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 356, in runhooks
+      r = _exthook(ui, repo, htype, hname, cmd, args, throw)
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5455, in pull
+      modheads = exchange.pull(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1681, in pull
+      _fullpullbundle2(repo, pullop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1532, in _fullpullbundle2
+      _pullbundle2(pullop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1881, in _pullbundle2
+      bundle = e.callcommand(b'getbundle', args).result()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 366, in getbundle
+      chunks = exchange.getbundlechunks(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2370, in getbundlechunks
+      func(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2429, in _getbundlechangegrouppart
+      cgstream = changegroup.makestream(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 1918, in makestream
+      repo.hook(b'preoutgoing', throw=True, source=source)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5455, in pull
+      modheads = exchange.pull(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1681, in pull
+      _fullpullbundle2(repo, pullop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1532, in _fullpullbundle2
+      _pullbundle2(pullop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1881, in _pullbundle2
+      bundle = e.callcommand(b'getbundle', args).result()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 366, in getbundle
+      chunks = exchange.getbundlechunks(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2370, in getbundlechunks
+      func(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2429, in _getbundlechangegrouppart
+      cgstream = changegroup.makestream(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 1918, in makestream
+      repo.hook(b'preoutgoing', throw=True, source=source)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5455, in pull
+      modheads = exchange.pull(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1681, in pull
+      _fullpullbundle2(repo, pullop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1532, in _fullpullbundle2
+      _pullbundle2(pullop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1881, in _pullbundle2
+      bundle = e.callcommand(b'getbundle', args).result()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 366, in getbundle
+      chunks = exchange.getbundlechunks(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2370, in getbundlechunks
+      func(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2429, in _getbundlechangegrouppart
+      cgstream = changegroup.makestream(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 1918, in makestream
+      repo.hook(b'preoutgoing', throw=True, source=source)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 107, in pythonhook
+      raise error.HookLoadError(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5455, in pull
+      modheads = exchange.pull(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1681, in pull
+      _fullpullbundle2(repo, pullop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1532, in _fullpullbundle2
+      _pullbundle2(pullop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1881, in _pullbundle2
+      bundle = e.callcommand(b'getbundle', args).result()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 100, in pythonhook
+      obj = getattr(obj, p)
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 366, in getbundle
+      chunks = exchange.getbundlechunks(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2370, in getbundlechunks
+      func(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2429, in _getbundlechangegrouppart
+      cgstream = changegroup.makestream(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 1918, in makestream
+      repo.hook(b'preoutgoing', throw=True, source=source)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 102, in pythonhook
+      raise error.HookLoadError(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5455, in pull
+      modheads = exchange.pull(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1681, in pull
+      _fullpullbundle2(repo, pullop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1532, in _fullpullbundle2
+      _pullbundle2(pullop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1881, in _pullbundle2
+      bundle = e.callcommand(b'getbundle', args).result()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 366, in getbundle
+      chunks = exchange.getbundlechunks(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2370, in getbundlechunks
+      func(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2429, in _getbundlechangegrouppart
+      cgstream = changegroup.makestream(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 1918, in makestream
+      repo.hook(b'preoutgoing', throw=True, source=source)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 47, in pythonhook
+      raise error.HookLoadError(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5455, in pull
+      modheads = exchange.pull(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1681, in pull
+      _fullpullbundle2(repo, pullop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1532, in _fullpullbundle2
+      _pullbundle2(pullop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1881, in _pullbundle2
+      bundle = e.callcommand(b'getbundle', args).result()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 366, in getbundle
+      chunks = exchange.getbundlechunks(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2370, in getbundlechunks
+      func(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2429, in _getbundlechangegrouppart
+      cgstream = changegroup.makestream(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 1918, in makestream
+      repo.hook(b'preoutgoing', throw=True, source=source)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 92, in pythonhook
+      raise error.HookLoadError(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5455, in pull
+      modheads = exchange.pull(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1681, in pull
+      _fullpullbundle2(repo, pullop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1532, in _fullpullbundle2
+      _pullbundle2(pullop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1881, in _pullbundle2
+      bundle = e.callcommand(b'getbundle', args).result()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 366, in getbundle
+      chunks = exchange.getbundlechunks(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2370, in getbundlechunks
+      func(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2429, in _getbundlechangegrouppart
+      cgstream = changegroup.makestream(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 1918, in makestream
+      repo.hook(b'preoutgoing', throw=True, source=source)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 92, in pythonhook
+      raise error.HookLoadError(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5455, in pull
+      modheads = exchange.pull(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1681, in pull
+      _fullpullbundle2(repo, pullop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1532, in _fullpullbundle2
+      _pullbundle2(pullop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1881, in _pullbundle2
+      bundle = e.callcommand(b'getbundle', args).result()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 61, in pythonhook
+      obj = __import__(pycompat.sysstr(modname))
+    File "<frozen importlib._bootstrap>", line 991, in _find_and_load
+    File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
+    File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 366, in getbundle
+      chunks = exchange.getbundlechunks(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2370, in getbundlechunks
+      func(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2429, in _getbundlechangegrouppart
+      cgstream = changegroup.makestream(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 1918, in makestream
+      repo.hook(b'preoutgoing', throw=True, source=source)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 92, in pythonhook
+      raise error.HookLoadError(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5455, in pull
+      modheads = exchange.pull(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1681, in pull
+      _fullpullbundle2(repo, pullop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1532, in _fullpullbundle2
+      _pullbundle2(pullop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1881, in _pullbundle2
+      bundle = e.callcommand(b'getbundle', args).result()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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,15 @@
   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):
+      raise error.HookLoadError(
+  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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 4.2)
+  ** Extensions loaded: badserver, fakeversion
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/keepalive.py", line 241, in do_open
+      r = h.getresponse()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/url.py", line 207, in getresponse
+      return keepalive.HTTPConnection.getresponse(self)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/keepalive.py", line 459, in safegetresponse
+      return cls.getresponse(self)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/http/client.py", line 1344, in getresponse
+      response.begin()
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/http/client.py", line 307, in begin
+      version, status, reason = self._read_status()
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/http/client.py", line 276, 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.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 459, in getbundle
+      f = self._callcompressable(b"getbundle", **pycompat.strkwargs(opts))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 526, in _callcompressable
+      return self._callstream(cmd, _compressible=True, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 525, in open
+      response = self._open(req, data)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 542, in _open
+      result = self._call_chain(self.handle_open, protocol, protocol +
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 502, in _call_chain
+      result = func(*args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/url.py", line 332, in http_open
+      return self.do_open(httpconnection, req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/keepalive.py", line 245, in do_open
+      raise urllib.error.URLError(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 1954, in clone
+      r = hg.clone(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hg.py", line 950, in clone
+      exchange.pull(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1681, in pull
+      _fullpullbundle2(repo, pullop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1532, in _fullpullbundle2
+      _pullbundle2(pullop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1881, in _pullbundle2
+      bundle = e.callcommand(b'getbundle', args).result()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 4.2)
+  ** Extensions loaded: badserver, fakeversion
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 459, in getbundle
+      f = self._callcompressable(b"getbundle", **pycompat.strkwargs(opts))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 526, in _callcompressable
+      return self._callstream(cmd, _compressible=True, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 453, in _callstream
+      self._url, ct, resp = parsev1commandresponse(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 1954, in clone
+      r = hg.clone(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hg.py", line 950, in clone
+      exchange.pull(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1681, in pull
+      _fullpullbundle2(repo, pullop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1532, in _fullpullbundle2
+      _pullbundle2(pullop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1881, in _pullbundle2
+      bundle = e.callcommand(b'getbundle', args).result()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 4.2)
+  ** Extensions loaded: badserver, fakeversion
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 459, in getbundle
+      f = self._callcompressable(b"getbundle", **pycompat.strkwargs(opts))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 526, in _callcompressable
+      return self._callstream(cmd, _compressible=True, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 453, in _callstream
+      self._url, ct, resp = parsev1commandresponse(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 370, in parsev1commandresponse
+      elen = struct.unpack(b'B', util.readexactly(resp, 1))[0]
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 3168, in readexactly
+      raise error.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 1954, in clone
+      r = hg.clone(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hg.py", line 950, in clone
+      exchange.pull(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1681, in pull
+      _fullpullbundle2(repo, pullop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1532, in _fullpullbundle2
+      _pullbundle2(pullop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1881, in _pullbundle2
+      bundle = e.callcommand(b'getbundle', args).result()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 4.2)
+  ** Extensions loaded: badserver, fakeversion
+  Traceback (most recent call last):
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/http/client.py", line 552, in _get_chunk_left
+      chunk_left = self._read_next_chunk_size()
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/http/client.py", line 519, 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 "/hgdev/pyenv/versions/3.8.10/lib/python3.8/http/client.py", line 584, in _readinto_chunked
+      chunk_left = self._get_chunk_left()
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/http/client.py", line 554, 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.ccld4g8b/install/lib/python/mercurial/url.py", line 691, in read
+      return origread(size)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/http/client.py", line 455, in read
+      n = self.readinto(b)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/http/client.py", line 489, in readinto
+      return self._readinto_chunked(b)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/http/client.py", line 600, 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.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 459, in getbundle
+      f = self._callcompressable(b"getbundle", **pycompat.strkwargs(opts))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 526, in _callcompressable
+      return self._callstream(cmd, _compressible=True, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 453, in _callstream
+      self._url, ct, resp = parsev1commandresponse(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 370, in parsev1commandresponse
+      elen = struct.unpack(b'B', util.readexactly(resp, 1))[0]
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 3166, in readexactly
+      s = stream.read(n)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/url.py", line 704, in read
+      raise error.PeerTransportError(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 1954, in clone
+      r = hg.clone(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hg.py", line 950, in clone
+      exchange.pull(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1681, in pull
+      _fullpullbundle2(repo, pullop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1532, in _fullpullbundle2
+      _pullbundle2(pullop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1881, in _pullbundle2
+      bundle = e.callcommand(b'getbundle', args).result()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 4.2)
+  ** Extensions loaded: badserver, fakeversion
+  Traceback (most recent call last):
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/http/client.py", line 589, in _readinto_chunked
+      n = self._safe_readinto(mvb)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/http/client.py", line 619, in _safe_readinto
+      raise IncompleteRead(bytes(b[:n]), amt-n)
+  http.client.IncompleteRead: IncompleteRead(3 bytes read, 1 more expected)
+  
+  During handling of the above exception, another exception occurred:
+  
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/url.py", line 691, in read
+      return origread(size)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/http/client.py", line 455, in read
+      n = self.readinto(b)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/http/client.py", line 489, in readinto
+      return self._readinto_chunked(b)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/http/client.py", line 600, 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.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 461, in getbundle
+      return bundle2.getunbundler(self.ui, f)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 784, in getunbundler
+      magicstring = changegroup.readexactly(fp, 4)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 3166, in readexactly
+      s = stream.read(n)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/url.py", line 704, in read
+      raise error.PeerTransportError(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 1954, in clone
+      r = hg.clone(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hg.py", line 950, in clone
+      exchange.pull(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1681, in pull
+      _fullpullbundle2(repo, pullop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1532, in _fullpullbundle2
+      _pullbundle2(pullop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1881, in _pullbundle2
+      bundle = e.callcommand(b'getbundle', args).result()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 640, in http_response
+      response = self.parent.error(
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 502, in _call_chain
+      result = func(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 640, in http_response
+      response = self.parent.error(
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 502, in _call_chain
+      result = func(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 640, in http_response
+      response = self.parent.error(
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 502, in _call_chain
+      result = func(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/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.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 640, in http_response
+      response = self.parent.error(
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 502, in _call_chain
+      result = func(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/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.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 640, in http_response
+      response = self.parent.error(
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 502, in _call_chain
+      result = func(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/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.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 640, in http_response
+      response = self.parent.error(
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 502, in _call_chain
+      result = func(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/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.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 640, in http_response
+      response = self.parent.error(
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 502, in _call_chain
+      result = func(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/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.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 640, in http_response
+      response = self.parent.error(
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 502, in _call_chain
+      result = func(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/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.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 640, in http_response
+      response = self.parent.error(
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 502, in _call_chain
+      result = func(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/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.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 640, in http_response
+      response = self.parent.error(
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 502, in _call_chain
+      result = func(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/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.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 640, in http_response
+      response = self.parent.error(
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 502, in _call_chain
+      result = func(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/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.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 640, in http_response
+      response = self.parent.error(
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 502, in _call_chain
+      result = func(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/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.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 640, in http_response
+      response = self.parent.error(
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 502, in _call_chain
+      result = func(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/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.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 640, in http_response
+      response = self.parent.error(
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 502, in _call_chain
+      result = func(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/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.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: infinitepush
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 395, in lookup
+      return self._repo.lookup(key)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2182, in lookup
+      node = scmutil.revsymbol(self, key).node()
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5433, in pull
+      fnodes.append(e.callcommand(b'lookup', {b'key': r}))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 316, in _readbatchresponse
+      result = decode(remoteresult)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 353, in decode
+      self._abort(error.RepoError(data))
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5433, in pull
+      fnodes.append(e.callcommand(b'lookup', {b'key': r}))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 126, in __exit__
+      self.close()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 279, in close
+      self._responsef.result()
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/concurrent/futures/_base.py", line 444, in result
+      return self.__get_result()
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/concurrent/futures/_base.py", line 389, in __get_result
+      raise self._exception
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/concurrent/futures/thread.py", line 57, in run
+      result = self.fn(*self.args, **self.kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 318, in _readbatchresponse
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: testlock
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/lock.py", line 278, in _trylock
+      self.vfs.makelock(lockname, self.f)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/vfs.py", line 201, in makelock
+      return util.makelock(info, self.join(path))
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2692, in unbundle
+      gettransaction()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2680, in gettransaction
+      lockandtr[1] = repo.lock()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 3009, in lock
+      l = self._lock(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2971, in _lock
+      l = lockmod.trylock(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/lock.py", line 151, in trylock
+      l._trylock()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/lock.py", line 295, in _trylock
+      raise error.LockUnavailable(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: narrow
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 503, in unbundle
+      ret = bundle2.getunbundler(self.ui, stream)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 784, in getunbundler
+      magicstring = changegroup.readexactly(fp, 4)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 3168, in readexactly
+      raise error.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 503, in unbundle
+      ret = bundle2.getunbundler(self.ui, stream)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 784, in getunbundler
+      magicstring = changegroup.readexactly(fp, 4)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 3168, in readexactly
+      raise error.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/lfs/wrapper.py", line 432, in push
+      return orig(repo, remote, *args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 503, in unbundle
+      ret = bundle2.getunbundler(self.ui, stream)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 784, in getunbundler
+      magicstring = changegroup.readexactly(fp, 4)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 3168, in readexactly
+      raise error.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/lfs/wrapper.py", line 432, in push
+      return orig(repo, remote, *args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: reject
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 356, in runhooks
+      r = _exthook(ui, repo, htype, hname, cmd, args, throw)
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 316, in _readbatchresponse
+      result = decode(remoteresult)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 353, in decode
+      self._abort(error.RepoError(data))
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5433, in pull
+      fnodes.append(e.callcommand(b'lookup', {b'key': r}))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 126, in __exit__
+      self.close()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 279, in close
+      self._responsef.result()
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/concurrent/futures/_base.py", line 444, in result
+      return self.__get_result()
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/concurrent/futures/_base.py", line 389, in __get_result
+      raise self._exception
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/concurrent/futures/thread.py", line 57, in run
+      result = self.fn(*self.args, **self.kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 318, in _readbatchresponse
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 316, in _readbatchresponse
+      result = decode(remoteresult)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 353, in decode
+      self._abort(error.RepoError(data))
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5433, in pull
+      fnodes.append(e.callcommand(b'lookup', {b'key': r}))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 126, in __exit__
+      self.close()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 279, in close
+      self._responsef.result()
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/concurrent/futures/_base.py", line 444, in result
+      return self.__get_result()
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/concurrent/futures/_base.py", line 389, in __get_result
+      raise self._exception
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/concurrent/futures/thread.py", line 57, in run
+      result = self.fn(*self.args, **self.kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 318, in _readbatchresponse
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 316, in _readbatchresponse
+      result = decode(remoteresult)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 353, in decode
+      self._abort(error.RepoError(data))
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5433, in pull
+      fnodes.append(e.callcommand(b'lookup', {b'key': r}))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 126, in __exit__
+      self.close()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 279, in close
+      self._responsef.result()
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/concurrent/futures/_base.py", line 444, in result
+      return self.__get_result()
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/concurrent/futures/_base.py", line 389, in __get_result
+      raise self._exception
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/concurrent/futures/thread.py", line 57, in run
+      result = self.fn(*self.args, **self.kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 318, in _readbatchresponse
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 395, in lookup
+      return self._repo.lookup(key)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2182, in lookup
+      node = scmutil.revsymbol(self, key).node()
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5433, in pull
+      fnodes.append(e.callcommand(b'lookup', {b'key': r}))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 640, in http_response
+      response = self.parent.error(
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 502, in _call_chain
+      result = func(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 640, in http_response
+      response = self.parent.error(
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 502, in _call_chain
+      result = func(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/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.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 640, in http_response
+      response = self.parent.error(
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 502, in _call_chain
+      result = func(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/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.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 444, in apply
+      newrevs, newfiles = _addchangegroupfiles(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 1973, in _addchangegroupfiles
+      fl.rev(n)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/filelog.py", line 69, in rev
+      return self._revlog.rev(node)
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 444, in apply
+      newrevs, newfiles = _addchangegroupfiles(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 1975, in _addchangegroupfiles
+      raise error.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/extensions.py", line 532, in closure
+      return func(*(args + a), **kw)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/remotefilelog/__init__.py", line 1081, in localgetbundle
+      return orig(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 381, in getbundle
+      return bundle2.getunbundler(self.ui, cb)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 784, in getunbundler
+      magicstring = changegroup.readexactly(fp, 4)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 3166, in readexactly
+      s = stream.read(n)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 2705, in read
+      for chunk in self.iter:
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 2676, in splitbig
+      for chunk in chunks:
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 713, in getchunks
+      for chunk in self._compengine.compressstream(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 736, in _getcorechunk
+      for chunk in part.getchunks(ui=self.ui):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 1197, in getchunks
+      pycompat.raisewithtb(exc, tb)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/pycompat.py", line 294, in raisewithtb
+      raise exc.with_traceback(tb)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 1169, in getchunks
+      for chunk in self._payloadchunks():
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 1213, in _payloadchunks
+      chunk = buff.read(preferedchunksize)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 2705, in read
+      for chunk in self.iter:
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 2676, in splitbig
+      for chunk in chunks:
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 1202, in generate
+      it = self.generatefiles(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/remotefilelog/shallowbundle.py", line 83, in generatefiles
+      raise error.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/remotefilelog/__init__.py", line 579, in runcommand
+      return orig(lui, repo, *args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/rebase.py", line 2180, in pullrebase
+      ret = orig(ui, repo, *args, **opts)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/remotefilelog/__init__.py", line 1048, in pull
+      result = orig(ui, repo, *pats, **opts)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5455, in pull
+      modheads = exchange.pull(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/hgext/remotefilelog/__init__.py", line 1090, in exchangepull
+      return orig(repo, remote, *args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1681, in pull
+      _fullpullbundle2(repo, pullop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1532, in _fullpullbundle2
+      _pullbundle2(pullop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1881, in _pullbundle2
+      bundle = e.callcommand(b'getbundle', args).result()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/hgext/hooklib/reject_merge_commits.py", line 38, in hook
+      raise error.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/hgext/hooklib/reject_merge_commits.py", line 38, in hook
+      raise error.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/lib/python/hgext/hooklib/reject_merge_commits.py", line 38, in hook
+      raise error.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: strip
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2711, in unbundle
+      lockandtr[2].close()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/transaction.py", line 38, in _active
+      return func(self, *args, **kwds)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/transaction.py", line 555, in close
+      self._validatecallback[category](self)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2461, in validate
+      scmutil.enforcesinglehead(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: strip
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2711, in unbundle
+      lockandtr[2].close()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/transaction.py", line 38, in _active
+      return func(self, *args, **kwds)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/transaction.py", line 555, in close
+      self._validatecallback[category](self)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2461, in validate
+      scmutil.enforcesinglehead(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2711, in unbundle
+      lockandtr[2].close()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/transaction.py", line 38, in _active
+      return func(self, *args, **kwds)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/transaction.py", line 555, in close
+      self._validatecallback[category](self)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2461, in validate
+      scmutil.enforcesinglehead(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2711, in unbundle
+      lockandtr[2].close()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/transaction.py", line 38, in _active
+      return func(self, *args, **kwds)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/transaction.py", line 555, in close
+      self._validatecallback[category](self)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2461, in validate
+      scmutil.enforcesinglehead(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2711, in unbundle
+      lockandtr[2].close()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/transaction.py", line 38, in _active
+      return func(self, *args, **kwds)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/transaction.py", line 555, in close
+      self._validatecallback[category](self)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2461, in validate
+      scmutil.enforcesinglehead(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 316, in _readbatchresponse
+      result = decode(remoteresult)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 353, in decode
+      self._abort(error.RepoError(data))
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5433, in pull
+      fnodes.append(e.callcommand(b'lookup', {b'key': r}))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 126, in __exit__
+      self.close()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 279, in close
+      self._responsef.result()
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/concurrent/futures/_base.py", line 444, in result
+      return self.__get_result()
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/concurrent/futures/_base.py", line 389, in __get_result
+      raise self._exception
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/concurrent/futures/thread.py", line 57, in run
+      result = self.fn(*self.args, **self.kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 318, in _readbatchresponse
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 395, in lookup
+      return self._repo.lookup(key)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2182, in lookup
+      node = scmutil.revsymbol(self, key).node()
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 1954, in clone
+      r = hg.clone(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hg.py", line 920, in clone
+      e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 502, in unbundle
+      stream = self._calltwowaystream(b'unbundle', bundle, heads=heads)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 520, in _calltwowaystream
+      return self._callstream(cmd, data=fp_, headers=headers, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 451, in _callstream
+      resp = sendrequest(self.ui, self._urlopener, req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/httppeer.py", line 279, in sendrequest
+      res = opener.open(req)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 531, in open
+      response = meth(req, response)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 640, in http_response
+      response = self.parent.error(
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 569, in error
+      return self._call_chain(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/urllib/request.py", line 502, in _call_chain
+      result = func(*args)
+    File "/hgdev/pyenv/versions/3.8.10/lib/python3.8/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 503, in unbundle
+      ret = bundle2.getunbundler(self.ui, stream)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 784, in getunbundler
+      magicstring = changegroup.readexactly(fp, 4)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 3168, in readexactly
+      raise error.Abort(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 545, in changegroupsubset
+      self.requirecap(b'changegroupsubset', _(b'look up remote changes'))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/interfaces/repository.py", line 412, in requirecap
+      raise error.CapabilityError(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 4368, in incoming
+      return hg.incoming(ui, repo, source, opts)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hg.py", line 1347, in incoming
+      return _incoming(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hg.py", line 1302, in _incoming
+      other, chlist, cleanupfn = bundlerepo.getremotechanges(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundlerepo.py", line 657, in getremotechanges
+      cg = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [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.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 212, in sendcommands
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 545, in changegroupsubset
+      self.requirecap(b'changegroupsubset', _(b'look up remote changes'))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/interfaces/repository.py", line 412, in requirecap
+      raise error.CapabilityError(
+  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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 4368, in incoming
+      return hg.incoming(ui, repo, source, opts)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hg.py", line 1347, in incoming
+      return _incoming(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hg.py", line 1302, in _incoming
+      other, chlist, cleanupfn = bundlerepo.getremotechanges(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundlerepo.py", line 657, in getremotechanges
+      cg = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 179, in callcommand
+      self.sendcommands()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/wireprotov1peer.py", line 214, in sendcommands
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.8.10 (default, May  9 2021, 17:25:50) [GCC 8.3.0]
+  ** Mercurial Distributed SCM (version 6.1+hg155.88395a6ce362)
+  ** Extensions loaded: 
+  Traceback (most recent call last):
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 284, in callcommand
+      result = fn(**pycompat.strkwargs(args))
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 410, in unbundle
+      ret = exchange.unbundle(self._repo, bundle, heads, b'push', url)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 2701, in unbundle
+      op = bundle2.processbundle(repo, cg, op=op)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 485, in processbundle
+      processparts(repo, op, unbundler)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 493, in processparts
+      _processpart(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 567, in _processpart
+      handler(op, part)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 2025, in handlechangegroup
+      ret = _processchangegroup(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/bundle2.py", line 497, in _processchangegroup
+      ret = cg.apply(op.repo, tr, source, url, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/changegroup.py", line 506, in apply
+      repo.hook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 2038, in hook
+      return hook.hook(self.ui, self, name, throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 273, in hook
+      res = runhooks(ui, repo, htype, hooks, throw=throw, **args)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/hook.py", line 352, in runhooks
+      r, raised = pythonhook(
+    File "/hgwork/tmp/hgtests.ccld4g8b/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.ccld4g8b/install/bin/hg", line 60, in <module>
+      dispatch.run()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 143, in run
+      status = dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 232, in dispatch
+      status = _rundispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 276, in _rundispatch
+      ret = _runcatch(req) or 0
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 452, in _runcatch
+      return _callcatch(ui, _runcatchfunc)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 462, in _callcatch
+      return scmutil.callcatch(ui, func)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/scmutil.py", line 152, in callcatch
+      return func()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 442, in _runcatchfunc
+      return _dispatch(req)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1255, in _dispatch
+      return runcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 900, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1267, in _runcommand
+      return cmdfunc()
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/dispatch.py", line 1253, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/util.py", line 1885, in check
+      return func(*args, **kwargs)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/commands.py", line 5784, in push
+      pushop = exchange.push(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 474, in push
+      _pushbundle2(pushop)
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/exchange.py", line 1151, in _pushbundle2
+      reply = e.callcommand(
+    File "/hgwork/tmp/hgtests.ccld4g8b/install/lib/python/mercurial/localrepo.py", line 286, in callcommand
+      pycompat.future_set_exception_info(f, sys.exc_info()[1:])
+    File "/hgwork/tmp/hgtests.ccld4g8b/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
164.6stest-copies-chain-merge.t#push
163.4stest-copies-chain-merge.t#pull
162.9stest-copies-chain-merge.t#upgraded
162.4stest-copies-chain-merge.t#push-upgrade
162.0stest-copies-chain-merge.t#pull-upgrade
161.9stest-copies-chain-merge.t#upgraded-parallel
161.8stest-copies-chain-merge.t#sidedata
114.2stest-revset.t
111.5stest-copies-chain-merge.t#filelog
111.4stest-copies-chain-merge.t#compatibility
111.3stest-copies-chain-merge.t#changeset
99.6stest-bookmarks-pushpull.t#b2-pushkey
99.5stest-bookmarks-pushpull.t#b2-binary
97.7stest-obsolete-bundle-strip.t
94.9stest-log.t
94.6stest-merge-combination-file-content.t
93.1stest-obsolete.t
92.2stest-subrepo.t
86.4stest-template-functions.t
75.1stest-mq.t
75.0stest-largefiles.t
73.5stest-glog-beautifygraph.t
73.3stest-fix.t
73.3stest-import.t
72.6stest-glog.t
72.6stest-persistent-nodemap.t
68.7stest-obsmarker-template.t
65.9stest-merge-tools.t
65.5stest-largefiles-misc.t
63.7stest-update-branches.t
62.0stest-copies.t#sidedata
61.6stest-copies.t#compatibility
61.6stest-copies.t#filelog
61.5stest-bundle2-exchange.t
61.4stest-copies.t#changeset
59.4stest-shelve.t#stripbased
58.9stest-shelve.t#phasebased
57.8stest-http-permissions.t
56.5stest-commit-amend.t
55.0stest-strip.t
54.7stest-revset2.t
54.5stest-rename-merge2.t
54.5stest-shelve2.t#phasebased#abortcommand#continuecommand
54.4stest-shelve2.t#phasebased#abortflag#continuecommand
54.3stest-shelve2.t#phasebased#abortcommand#continueflag
54.2stest-shelve2.t#phasebased#abortflag#continueflag
54.0stest-bookmarks.t
53.4stest-check-pylint.t
53.3stest-shelve2.t#stripbased#abortcommand#continuecommand
53.1stest-shelve2.t#stripbased#abortflag#continuecommand
53.1stest-shelve2.t#stripbased#abortcommand#continueflag
52.9stest-shelve2.t#stripbased#abortflag#continueflag
52.5stest-subrepo-git.t
50.6stest-phases-exchange.t
48.8stest-rebase-inmemory.t
48.8stest-merge-force.t
48.0stest-keyword.t
47.2stest-lfs.t
47.2stest-template-basic.t
47.0stest-clone.t
46.9stest-push-warn.t
46.4stest-push-race.t#unrelated
46.2stest-merge-changedelete.t#newfilenode
46.2stest-merge-changedelete.t#old
46.1stest-clone-stream-format.t#stream-legacy
45.9stest-run-tests.t
45.7stest-template-keywords.t
45.7stest-obsolete-divergent.t
45.6stest-push-race.t#strict
45.3stest-mv-cp-st-diff.t
45.3stest-mq-subrepo.t
44.4stest-largefiles-update.t
44.1stest-grep.t
43.7stest-annotate.t
43.7stest-merge-combination-exec-bytes.t
43.6stest-copytrace-heuristics.t
43.4stest-narrow.t#tree#lfs-on
43.3stest-narrow.t#flat#lfs-on
43.1stest-revert.t
42.7stest-transplant.t#commandmode
42.5stest-transplant.t#continueflag
42.4stest-clone-stream-format.t#stream-bundle2
41.8stest-mq-header-date.t
41.1stest-mq-header-from.t
41.1stest-bisect.t
40.5stest-convert-filemap.t
39.7stest-narrow.t#tree#lfs-off
39.6stest-narrow.t#flat#lfs-off
39.3stest-template-map.t
38.9stest-fileset.t
38.8stest-tags.t
38.7stest-branches.t
36.8stest-resolve.t
36.0stest-uncommit.t
35.6stest-init.t
35.4stest-status.t#dirstate-v2
34.8stest-rebase-scenario-global.t
34.7stest-backout.t
34.6stest-status.t#dirstate-v1
34.5stest-censor.t#revlogv2
34.0stest-graft.t
34.0stest-contrib-perf.t
33.7stest-treemanifest.t
33.7stest-tag.t
33.4stest-phabricator.t
33.1stest-phases.t
32.9stest-subrepo-deep-nested-change.t
32.2stest-amend.t#obsstore-on
32.1stest-copies-unrelated.t#filelog
32.1stest-copies-unrelated.t#sidedata
32.1stest-copies-unrelated.t#compatibility
32.0stest-copies-unrelated.t#changeset
31.7stest-upgrade-repo.t
31.5stest-treediscovery.t
31.5stest-hook.t
31.3stest-remotefilelog-repack.t
31.3stest-commit-interactive.t
31.0stest-censor.t#revlogv1
30.8stest-graft-interrupted.t#abortcommand
30.7stest-mq-guards.t
30.3stest-graft-interrupted.t#abortflag
29.9stest-remotefilelog-prefetch.t
29.4stest-commit.t
29.4stest-bisect2.t
29.1stest-merge-criss-cross.t#newfilenode
28.9stest-rename.t
28.8stest-merge-criss-cross.t#old
28.6stest-mq-qpush-exact.t
28.3stest-absorb.t
28.3stest-lfs-serve.t#lfsremote-on
28.1stest-help.t
28.1stest-remotefilelog-repack-fast.t
28.1stest-bundle.t
28.0stest-alias.t
27.9stest-check-code.t
27.8stest-histedit-fold.t
27.7stest-ssh.t
27.4stest-narrow-clone.t
27.2stest-extension.t
27.0stest-rebase-collapse.t
26.6stest-narrow-widen-no-ellipsis.t#tree
26.5stest-narrow-widen-no-ellipsis.t#flat
26.4stest-narrow-widen.t#tree
26.4stest-hgwebdir.t
26.3stest-newbranch.t
26.1stest-convert-cvs-detectmerge.t
26.0stest-narrow-widen.t#flat
25.9stest-automv.t
25.8stest-rebase-abort.t#abortcommand#continuecommand
25.7stest-rebase-abort.t#abortcommand#continueflag
25.7stest-fastannotate-hg.t
25.6stest-archive.t
25.6stest-hghave.t
25.3stest-rebase-abort.t#abortflag#continueflag
25.3stest-ssh-bundle1.t
25.2stest-subrepo-svn.t
25.1stest-mq-qpush-fail.t
25.0stest-split.t#obsstore-on
25.0stest-obshistory.t
25.0stest-check-pyflakes.t
25.0stest-setdiscovery.t
24.9stest-convert-cvs.t
24.9stest-rebase-abort.t#abortflag#continuecommand
24.7stest-histedit-obsolete.t#abortcommand
24.6stest-histedit-obsolete.t#abortflag
24.5stest-eol.t
24.5stest-merge-no-file-change.t
24.5stest-clone-stream.t#stream-bundle2
24.5stest-acl.t
24.3stest-largefiles-wireproto.t
24.2stest-fetch.t
24.1stest-show-work.t
23.7stest-convert-git.t
23.6stest-histedit-arguments.t#abortflag
23.6stest-histedit-arguments.t#abortcommand
23.4stest-https.t
23.3stest-bheads.t
23.3stest-copy.t
23.2stest-amend.t#obsstore-off
23.2stest-narrow-clone-no-ellipsis.t
23.0stest-commandserver.t
23.0stest-ssh-proto.t
22.8stest-split.t#obsstore-off
22.7stest-unamend.t
22.7stest-convert-hg-sink.t
22.4stest-bookflow.t
22.4stest-obsolete-distributed.t
22.2stest-issue3084.t
22.2stest-http-bad-server.t
21.5stest-clone-stream.t#stream-legacy
21.4stest-import-git.t
21.4stest-git-export.t
21.0stest-branch-change.t
21.0stest-rebase-cache.t
20.9stest-patchbomb.t
20.9stest-mq-qnew.t
20.7stest-convert-cvs-synthetic.t
20.6stest-narrow-clone-stream.t#tree
20.5stest-rebase-obsolete.t
20.5stest-narrow-clone-stream.t#flat-fncache
20.5stest-narrow-clone-stream.t#flat-nofncache
20.5stest-narrow-share.t#flat#normal
20.5stest-convert-svn-sink.t
20.4stest-fix-topology.t#obsstore-on
20.3stest-debugcommands.t
20.3stest-remove.t
20.3stest-sparse.t
20.3stest-merge1.t
20.2stest-narrow-share.t#flat#safe
20.2stest-narrow-share.t#tree#normal

Timeline

test-contrib-check-code.t (1.27s)test-contrib-perf.t (33.95s)test-obsolete-check-push.t (6.38s)test-obsolete-checkheads.t (13.94s)test-run-tests.t (45.88s)test-contrib-check-commit.t (0.14s)test-push-race.t#strict (45.65s)test-push-race.t#unrelated (46.41s)test-imports-checker.t (0.91s)test-rebase-check-restore.t (7.58s)test-check-code.t (27.91s)test-check-pytype.t (0.22s)test-push-checkheads-unpushed-D4.t (6.19s)test-push-checkheads-unpushed-D5.t (6.08s)test-push-checkheads-unpushed-D3.t (5.96s)test-push-checkheads-pruned-B8.t (6.87s)test-push-checkheads-superceed-A7.t (5.97s)test-push-checkheads-superceed-A6.t (5.98s)test-largefiles-update.t (44.44s)test-push-checkheads-multibranches-E2.t (5.89s)test-push-checkheads-unpushed-D7.t (6.25s)test-push-checkheads-unpushed-D2.t (5.15s)test-push-checkheads-pruned-B5.t (5.38s)test-push-checkheads-multibranches-E3.t (4.81s)test-merge-combination-file-content.t (94.64s)test-push-checkheads-superceed-A3.t (5.23s)test-push-checkheads-superceed-A2.t (5.04s)test-push-checkheads-multibranches-E1.t (4.44s)test-push-checkheads-pruned-B2.t (4.53s)test-push-checkheads-pruned-B3.t (4.46s)test-push-checkheads-pruned-B4.t (4.33s)test-push-checkheads-unpushed-D6.t (4.90s)test-push-checkheads-partial-C2.t (3.99s)test-push-checkheads-partial-C1.t (3.96s)test-push-checkheads-superceed-A8.t (4.64s)test-push-checkheads-partial-C4.t (3.64s)test-push-checkheads-pruned-B6.t (4.32s)test-push-checkheads-pruned-B7.t (4.33s)test-merge-combination-exec-bytes.t (43.67s)test-push-checkheads-partial-C3.t (3.64s)test-push-checkheads-unpushed-D1.t (3.85s)test-subrepo-svn.t (25.20s)test-push-checkheads-superceed-A4.t (3.60s)test-push-checkheads-superceed-A5.t (3.62s)test-merge-combination-misc.t (4.74s)test-check-module-imports.t (10.49s)test-push-checkheads-pruned-B1.t (2.99s)test-push-checkheads-superceed-A1.t (3.28s)test-copytrace-heuristics.t (43.60s)test-check-config.t (9.73s)test-glog-beautifygraph.t (73.48s)test-gendoc-ja.t (3.10s)test-convert-cvs.t (24.86s)test-check-py3-compat.t (0.06s)test-help.t (28.14s)test-copies-chain-merge.t#changeset (111.28s)test-copies-chain-merge.t#compatibility (111.41s)test-copies-chain-merge.t#filelog (111.47s)test-copies-chain-merge.t#pull (163.39s)test-copies-chain-merge.t#pull-upgrade (162.01s)test-copies-chain-merge.t#push (164.56s)test-copies-chain-merge.t#push-upgrade (162.36s)test-copies-chain-merge.t#sidedata (161.76s)test-copies-chain-merge.t#upgraded (162.91s)test-copies-chain-merge.t#upgraded-parallel (161.92s)test-obsolete-bounds-checking.t (0.94s)test-convert-svn-sink.t (20.45s)test-gendoc.t (4.82s)test-glog.t (72.64s)test-check-pyflakes.t (24.97s)test-patchbomb.t (20.90s)test-convert-svn-encoding.t (0.10s)test-obsmarker-template.t (68.70s)test-obsolete-bundle-strip.t (97.68s)test-check-help.t (8.78s)test-convert-svn-source.t (0.08s)test-abort-checkin.t (0.91s)test-acl.t (24.46s)test-check-shbang.t (2.05s)test-check-commit.t (9.47s)test-convert-svn-move.t (0.08s)test-upgrade-repo.t (31.70s)test-hgweb-commands.t (18.52s)test-http-bad-server.t (22.18s)test-check-interfaces.py (0.42s)test-obsolete.t (93.14s)test-log.t (94.92s)test-extension.t (27.25s)test-dirstate-race.t#dirstate-v1 (15.60s)test-dirstate-race.t#dirstate-v2 (16.02s)test-hgweb-symrev.t (17.22s)test-check-pylint.t (53.39s)test-check-execute.t (1.33s)test-setdiscovery.t (24.96s)test-hgweb-filelog.t (8.81s)test-template-map.t (39.26s)test-hgwebdir.t (26.40s)test-revset.t (114.22s)test-bundle2-format.t (10.84s)test-convert-cvs-detectmerge.t (26.11s)test-subrepo.t (92.22s)test-hgweb-json.t (10.42s)test-largefiles.t (75.05s)test-merge-tools.t (65.87s)test-fix.t (73.32s)test-convert-cvs-synthetic.t (20.74s)test-gendoc-ro.t (2.84s)test-import.t (73.28s)test-ssh-proto-unbundle.t (11.27s)test-bookmarks-pushpull.t#b2-binary (99.50s)test-bookmarks-pushpull.t#b2-pushkey (99.58s)test-branches.t (38.70s)test-subrepo-deep-nested-change.t (32.87s)test-bundle2-exchange.t (61.49s)test-phases-exchange.t (50.63s)test-strip.t (55.04s)test-template-functions.t (86.44s)test-persistent-nodemap.t (72.56s)test-lfs.t (47.25s)test-convert-cvsnt-mergepoints.t (13.12s)test-commit-interactive.t (31.32s)test-merge-changedelete.t#newfilenode (46.21s)test-merge-changedelete.t#old (46.15s)test-hook.t (31.49s)test-ssh-proto.t (22.96s)test-grep.t (44.10s)test-highlight.t (12.48s)test-commandserver.t (23.03s)test-lfs-test-server.t#git-server (0.17s)test-lfs-test-server.t#hg-server (10.74s)test-http-permissions.t (57.78s)test-convert-git.t (23.74s)test-phabricator.t (33.41s)test-shelve.t#phasebased (58.93s)test-shelve.t#stripbased (59.43s)test-check-cargo-lock.t (0.05s)test-bookmarks.t (53.95s)test-merge-force.t (48.79s)test-clone.t (46.96s)test-check-clang-format.t (6.05s)test-convert-cvs-branch.t (18.57s)test-revset2.t (54.71s)test-largefiles-misc.t (65.48s)test-commit-amend.t (56.48s)test-generaldelta.t (13.22s)test-hgweb-diffs.t (11.67s)test-check-rust-format.t (0.08s)test-template-keywords.t (45.70s)test-keyword.t (48.04s)test-revert.t (43.08s)test-merge-criss-cross.t#newfilenode (29.11s)test-merge-criss-cross.t#old (28.84s)test-tags.t (38.76s)test-convert-svn-branches.t (0.07s)test-mq.t (75.11s)test-convert-hg-svn.t (0.09s)test-gendoc-de.t (2.92s)test-rename-merge2.t (54.48s)test-lfs-serve-access.t (11.55s)test-subrepo-git.t (52.50s)test-phases.t (33.13s)test-clone-stream.t#stream-bundle2 (24.47s)test-clone-stream.t#stream-legacy (21.49s)test-check-format.t (1.05s)test-split.t#obsstore-off (22.84s)test-split.t#obsstore-on (24.99s)test-lfs-serve.t#lfsremote-off (10.20s)test-lfs-serve.t#lfsremote-on (28.27s)test-transplant.t#commandmode (42.70s)test-transplant.t#continueflag (42.53s)test-dirstate-race2.t#dirstate-v1 (5.82s)test-dirstate-race2.t#dirstate-v2 (5.90s)test-treemanifest.t (33.74s)test-bundle.t (28.06s)test-notify.t (10.88s)test-http-protocol.t (10.41s)test-template-basic.t (47.18s)test-https.t (23.43s)test-convert.t (7.85s)test-tag.t (33.67s)test-hgweb.t (13.05s)test-http.t (18.64s)test-check-jshint.t (0.27s)test-shelve2.t#phasebased#abortcommand#continuecommand (54.47s)test-shelve2.t#phasebased#abortcommand#continueflag (54.31s)test-shelve2.t#phasebased#abortflag#continuecommand (54.42s)test-shelve2.t#phasebased#abortflag#continueflag (54.17s)test-shelve2.t#stripbased#abortcommand#continuecommand (53.28s)test-shelve2.t#stripbased#abortcommand#continueflag (53.11s)test-shelve2.t#stripbased#abortflag#continuecommand (53.14s)test-shelve2.t#stripbased#abortflag#continueflag (52.93s)test-clonebundles.t (19.01s)test-obsolete-distributed.t (22.38s)test-subrepo-recursion.t (17.53s)test-convert-filemap.t (40.53s)test-obsolete-divergent.t (45.67s)test-annotate.t (43.72s)test-graft.t (33.97s)test-rebase-inmemory.t (48.81s)test-bisect.t (41.06s)test-encoding-textwrap.t (2.28s)test-walk.t (19.49s)test-mv-cp-st-diff.t (45.33s)test-resolve.t (36.80s)test-convert-p4-filetypes.t (0.07s)test-ssh.t (27.70s)test-devel-warnings.t (5.10s)test-rebase-scenario-global.t (34.76s)test-commit.t (29.42s)test-bundle2-remote-changegroup.t (15.94s)test-import-git.t (21.44s)test-mq-header-from.t (41.14s)test-bisect2.t (29.37s)test-i18n.t (3.65s)test-archive.t (25.57s)test-issue6528.t (19.59s)test-treediscovery.t (31.51s)test-debugcommands.t (20.33s)test-rebase-obsolete.t (20.54s)test-exchange-multi-source.t (17.10s)test-fileset.t (38.85s)test-push-warn.t (46.94s)test-hgweb-annotate-whitespace.t (4.40s)test-log-linerange.t (10.67s)test-graft-interrupted.t#abortcommand (30.76s)test-graft-interrupted.t#abortflag (30.33s)test-remotefilelog-repack.t (31.34s)test-remove.t (20.32s)test-update-branches.t (63.75s)test-backout.t (34.68s)test-graft-rename.t (18.38s)test-blackbox.t (11.76s)test-status.t#dirstate-v1 (34.64s)test-status.t#dirstate-v2 (35.38s)test-alias.t (27.98s)test-mq-header-date.t (41.77s)test-pull-pull-corruption.t (14.76s)test-progress.t (4.73s)test-convert-svn-startrev.t (0.08s)test-amend.t#obsstore-off (23.16s)test-amend.t#obsstore-on (32.16s)test-ssh-bundle1.t (25.28s)test-share-safe.t (16.81s)test-copies.t#changeset (61.38s)test-copies.t#compatibility (61.56s)test-copies.t#filelog (61.56s)test-copies.t#sidedata (61.98s)test-censor.t#revlogv1 (30.95s)test-censor.t#revlogv2 (34.54s)test-push-http.t#bundle1 (15.75s)test-push-http.t#bundle2 (15.96s)test-narrow.t#flat#lfs-off (39.57s)test-narrow.t#flat#lfs-on (43.30s)test-narrow.t#tree#lfs-off (39.66s)test-narrow.t#tree#lfs-on (43.44s)test-contrib-relnotes.t (1.21s)test-histedit-obsolete.t#abortcommand (24.71s)test-histedit-obsolete.t#abortflag (24.63s)test-audit-subrepo.t (19.74s)test-globalopts.t (11.28s)test-histedit-arguments.t#abortcommand (23.57s)test-histedit-arguments.t#abortflag (23.59s)test-http-bundle1.t (16.41s)test-rebase-collapse.t (27.04s)test-extdiff.t (17.67s)test-wireproto.t (8.60s)test-hgweb-descend-empties.t (1.86s)test-obshistory.t (24.98s)test-fncache.t (10.47s)test-uncommit.t (35.98s)test-rename.t (28.92s)test-mq-subrepo.t (45.26s)test-rebase-obsolete3.t (19.22s)test-fastannotate-hg.t (25.70s)test-histedit-fold.t (27.77s)test-histedit-commute.t (13.55s)test-chg.t (0.07s)test-remotefilelog-repack-fast.t (28.11s)test-getbundle.t (5.16s)test-status-color.t (16.99s)test-install.t (2.26s)test-convert-hg-sink.t (22.67s)test-largefiles-wireproto.t (24.32s)test-clone-stream-format.t#stream-bundle2 (42.42s)test-clone-stream-format.t#stream-legacy (46.07s)test-logexchange.t (14.88s)test-sidedata-exchange.t (19.18s)test-absorb.t (28.33s)test-merge-types.t (11.76s)test-histedit-edit.t (19.20s)test-lfconvert.t (14.74s)test-paths.t (19.69s)test-remotefilelog-bgprefetch.t (19.60s)test-fetch.t (24.19s)test-rebase-named-branches.t (18.44s)test-incoming-outgoing.t (12.56s)test-manifest.t (16.14s)test-rebase-conflicts.t (14.31s)test-rollback.t (18.35s)test-clone-pull-corruption.t (7.71s)test-eol.t (24.52s)test-fix-topology.t#obsstore-off (10.98s)test-fix-topology.t#obsstore-on (20.36s)test-newbranch.t (26.32s)test-bundle2-multiple-changegroups.t (6.91s)test-config.t (12.77s)test-git-export.t (21.41s)test-infinitepush-ci.t (12.11s)test-rebase-interruptions.t (19.09s)test-fastexport.t (3.26s)test-rebase-obsolete4.t (19.33s)test-diff-color.t (6.57s)test-lfs-largefiles.t (11.29s)test-hgweb-empty.t (1.70s)test-completion.t (5.43s)test-infinitepush-bundlestore.t (18.32s)test-rebase-abort.t#abortcommand#continuecommand (25.82s)test-rebase-abort.t#abortcommand#continueflag (25.70s)test-rebase-abort.t#abortflag#continuecommand (24.86s)test-rebase-abort.t#abortflag#continueflag (25.34s)test-pager.t (11.34s)test-merge1.t (20.30s)test-push.t (16.31s)test-convert-mtn.t (0.07s)test-hardlinks.t (11.96s)test-hghave.t (25.57s)test-single-head.t (14.72s)test-copies-in-changeset.t#extra (15.63s)test-copies-in-changeset.t#sidedata (17.35s)test-narrow-shallow-merges.t (19.57s)test-mq-guards.t (30.70s)test-convert-svn-tags.t (0.09s)test-qrecord.t (5.64s)test-mq-subrepo-svn.t (1.98s)test-rebase-parameters.t (19.88s)test-revset-legacy-lookup.t (17.02s)test-copies-unrelated.t#changeset (32.00s)test-copies-unrelated.t#compatibility (32.07s)test-copies-unrelated.t#filelog (32.14s)test-copies-unrelated.t#sidedata (32.12s)test-git-interop.t (0.07s)test-branch-change.t (21.02s)test-export.t (11.29s)test-issue3084.t (22.22s)test-narrow-patterns.t (14.15s)test-merge-no-file-change.t (24.52s)test-rhg.t (0.07s)test-verify.t (7.83s)test-bundle-r.t (19.30s)test-rebase-rename.t (17.31s)test-narrow-widen-no-ellipsis.t#flat (26.48s)test-narrow-widen-no-ellipsis.t#tree (26.57s)test-mq-qpush-fail.t (25.14s)test-commit-interactive-curses.t (12.99s)test-copy.t (23.29s)test-rebase-dest.t (19.30s)test-rebase-pull.t (16.18s)test-exchange-obsmarkers-case-A1.t (15.18s)test-sparse.t (20.30s)test-hgignore.t#dirstate-v1 (9.72s)test-hgignore.t#dirstate-v2 (10.14s)test-rebase-newancestor.t (18.08s)test-import-bypass.t (15.66s)test-revert-interactive.t (11.21s)test-help-hide.t (0.40s)test-parse-date.t (17.89s)test-treediscovery-legacy.t (19.21s)test-narrow-widen.t#flat (26.03s)test-narrow-widen.t#tree (26.41s)test-rebase-cache.t (21.02s)test-journal.t (6.49s)test-releasenotes-formatting.t (11.15s)test-merge-exec.t (16.04s)test-share-bookmarks.t#svfs#normal (12.13s)test-share-bookmarks.t#svfs#safe (12.08s)test-share-bookmarks.t#vfs#normal (12.08s)test-share-bookmarks.t#vfs#safe (12.12s)test-mq-qrefresh.t (16.24s)test-githelp.t (15.26s)test-histedit-fold-non-commute.t (14.02s)test-gendoc-pt_BR.t (2.97s)test-gendoc-zh_CN.t (2.85s)test-gendoc-zh_TW.t (2.86s)test-histedit-non-commute.t (13.77s)test-static-http.t (9.91s)test-exchange-obsmarkers-case-A3.t (16.40s)test-mq-qrefresh-interactive.t (3.74s)test-unamend.t (22.71s)test-conflict.t (8.58s)test-diff-unified.t (9.45s)test-rebase-obsolete2.t (16.72s)test-remotefilelog-prefetch.t (29.91s)test-mq-qnew.t (20.86s)test-win32text.t (9.90s)test-flagprocessor.t (16.10s)test-exchange-obsmarkers-case-C3.t (10.51s)test-gendoc-it.t (2.89s)test-gendoc-el.t (2.93s)test-gendoc-fr.t (2.94s)test-gendoc-ru.t (2.94s)test-gendoc-sv.t (2.88s)test-gendoc-da.t (2.88s)test-hgrc.t (12.51s)test-bheads.t (23.35s)test-diff-ignore-whitespace.t (12.84s)test-init.t (35.58s)test-rename-dir-merge.t (13.87s)test-bookflow.t (22.39s)test-largefiles-cache.t (12.39s)test-encoding.t (6.07s)test-mq-qrefresh-replace-log-message.t (11.94s)test-convert-bzr-merges.t (0.08s)test-url-rev.t (12.38s)test-mq-qimport.t (17.20s)test-diff-change.t (12.86s)test-share.t#normal (11.43s)test-share.t#safe (11.41s)test-pager-legacy.t (8.11s)test-histedit-base.t (6.97s)test-clone-r.t (10.85s)test-hgweb-raw.t (3.56s)test-rebase-base-flag.t (12.99s)test-bad-extension.t (1.76s)test-parseindex.t (3.84s)test-rebase-mq.t (15.87s)test-removeemptydirs.t (11.02s)test-exchange-obsmarkers-case-D1.t (9.78s)test-hgweb-removed.t (1.81s)test-eol-patch.t (6.36s)test-automv.t (25.89s)test-exchange-obsmarkers-case-C2.t (9.46s)test-pull-bundle.t (8.03s)test-casecollision-merge.t (0.07s)test-subrepo-relative-path.t (9.27s)test-http-clone-r.t (9.57s)test-histedit-no-change.t (10.09s)test-convert-bzr.t (0.07s)test-pull-update.t (12.56s)test-narrow-clone.t (27.40s)test-template-graph.t (12.68s)test-strip-cross.t (15.89s)test-add.t (17.82s)test-ssh-clone-r.t (10.75s)test-diffstat.t (11.62s)test-bookmarks-corner-case.t (7.84s)test-convert-splicemap.t (9.99s)test-http-proxy.t (3.75s)test-fileset-generated.t (6.08s)test-purge.t#dirstate-v1 (12.46s)test-purge.t#dirstate-v2 (12.66s)test-bundle-phases.t (14.39s)test-transaction-safety.t#changelogv2 (7.27s)test-transaction-safety.t#revlogv1 (9.40s)test-transaction-safety.t#revlogv2 (7.33s)test-exchange-obsmarkers-case-C1.t (9.13s)test-status-rev.t (5.76s)test-diff-upgrade.t (4.30s)test-churn.t (9.90s)test-bisect3.t (8.26s)test-stream-bundle-v2.t (4.12s)test-narrow-exchange.t#lfs-off (9.20s)test-narrow-exchange.t#lfs-on (9.95s)test-dispatch.t (9.04s)test-repo-compengines.t (10.25s)test-exchange-obsmarkers-case-D4.t (8.18s)test-eol-update.t (5.91s)test-remotefilelog-push-pull.t (15.32s)test-bundle-type.t (13.31s)test-narrow-exchange-merges.t (9.42s)test-narrow-trackedcmd.t#flat (8.51s)test-narrow-trackedcmd.t#tree (8.52s)test-absorb-rename.t (11.96s)test-obsolete-changeset-exchange.t (7.01s)test-rename-merge1.t (14.34s)test-exchange-obsmarkers-case-B5.t (9.39s)test-copy-move-merge.t (8.44s)test-pull-branch.t (11.24s)test-eol-hook.t (7.78s)test-sparse-profiles.t (9.20s)test-remotefilelog-linknodes.t (13.32s)test-byteify-strings.t (0.57s)test-rebase-detach.t (11.83s)test-mq-qpush-exact.t (28.64s)test-basic.t (8.05s)test-notify-changegroup.t (4.36s)test-convert-hg-source.t (11.47s)test-hybridencode.py (0.26s)test-fastannotate-protocol.t (8.12s)test-rebase-bookmarks.t (13.89s)test-infinitepush.t (14.23s)test-bookmarks-current.t (14.11s)test-encoding-align.t (4.84s)test-debugbuilddag.t (5.54s)test-up-local-change.t (11.29s)test-inherit-mode.t (1.72s)test-transaction-rollback-on-revlog-split.t (4.88s)test-convert-baz.t (0.07s)test-releasenotes-merging.t (5.58s)test-convert-hg-startrev.t (8.79s)test-narrow-expanddirstate.t (5.08s)test-show-work.t (24.13s)test-symlinks.t#dirstate-v1 (10.81s)test-symlinks.t#dirstate-v2 (10.95s)test-narrow-strip.t#flat#lfs-off (6.24s)test-narrow-strip.t#flat#lfs-on (6.76s)test-narrow-strip.t#tree#lfs-off (6.15s)test-narrow-strip.t#tree#lfs-on (6.73s)test-audit-path.t (11.56s)test-exchange-obsmarkers-case-B4.t (9.53s)test-merge-commit.t (6.82s)test-fastannotate.t (10.40s)test-narrow-share.t#flat#normal (20.50s)test-narrow-share.t#flat#safe (20.20s)test-narrow-share.t#tree#normal (20.17s)test-narrow-share.t#tree#safe (19.91s)test-pathconflicts-merge.t (10.59s)test-remotefilelog-gcrepack.t (5.56s)test-remotefilelog-local.t (19.25s)test-exchange-obsmarkers-case-C4.t (8.06s)test-sparse-revlog.t (0.07s)test-mq-safety.t (18.94s)test-profile.t (17.95s)test-directaccess.t (8.03s)test-exchange-obsmarkers-case-A6.t (8.50s)test-exchange-obsmarkers-case-A5.t (7.90s)test-obsolete-tag-cache.t (4.25s)test-histedit-bookmark-motion.t (5.89s)test-histedit-non-commute-abort.t (6.58s)test-hgweb-csp.t (4.98s)test-merge-default.t (15.94s)test-log-bookmark.t (15.30s)test-mq-qfold.t (15.11s)test-diff-binary-file.t (5.34s)test-journal-share.t#normal (5.55s)test-journal-share.t#safe (13.94s)test-merge-halt.t (13.57s)test-casefolding.t (0.06s)test-mq-git.t (13.06s)test-remotefilelog-cacheprocess.t (3.40s)test-patchbomb-bookmark.t (3.00s)test-stack.t (12.49s)test-default-push.t (12.56s)test-sparse-merges.t (11.65s)test-pull-r.t (11.49s)test-contrib-testparseutil.t (0.28s)test-hgweb-no-request-uri.t (1.08s)test-releasenotes-parsing.t (2.04s)test-rebase-emptycommit.t (10.47s)test-narrow-merge-outside.t (10.12s)test-diff-indent-heuristic.t#bdiff (0.64s)test-diff-indent-heuristic.t#xdiff (0.75s)test-import-merge.t (9.77s)test-drawdag.t (9.32s)test-status-tracked-key.t (9.31s)test-exchange-obsmarkers-case-B2.t (9.48s)test-convert-bzr-directories.t (0.07s)test-convert-p4.t (0.06s)test-show-stack.t (9.15s)test-match.py (0.21s)test-narrow-clone-nonlinear.t (13.81s)test-mq-eol.t (8.90s)test-state-extension.t (8.84s)test-exchange-obsmarkers-case-A4.t (8.66s)test-obsmarkers-effectflag.t (8.53s)test-fastannotate-renames.t (8.54s)test-histedit-outgoing.t (7.48s)test-histedit-drop.t (5.41s)test-bookmarks-merge.t (9.28s)test-lock-badness.t (9.81s)test-repair-strip.t (4.95s)test-rebase-mq-skip.t#continuecommand (9.76s)test-rebase-mq-skip.t#continueflag (9.58s)test-rebase-templates.t (4.99s)test-extension-timing.t (0.88s)test-exchange-obsmarkers-case-B6.t (7.25s)test-cbor.py (0.64s)test-narrow-merge.t#flat (9.26s)test-narrow-merge.t#tree (6.86s)test-debugbundle.t (2.71s)test-convert-tla.t (1.39s)test-mq-qclone-http.t (8.59s)test-exchange-obsmarkers-case-A2.t (6.14s)test-exchange-obsmarkers-case-D2.t (6.78s)test-status-terse.t (7.14s)test-phase-archived.t (3.87s)test-subrepo-missing.t (6.53s)test-pathconflicts-update.t (8.53s)test-hgweb-no-path-info.t (1.20s)test-show.t (5.44s)test-addremove-similar.t (6.22s)test-contrib.t (1.24s)test-worker.t (2.67s)test-merge-subrepos.t (7.15s)test-merge7.t (3.35s)test-unionrepo.t (7.56s)test-flags.t (4.91s)test-pull-network.t (5.63s)test-remotefilelog-gc.t (5.18s)test-commit-multiple.t (5.83s)test-commit-unresolved.t#abortcommand (7.89s)test-commit-unresolved.t#abortflag (7.78s)test-import-eol.t (8.20s)test-sparse-import.t (4.49s)test-narrow-clone-no-ellipsis.t (23.16s)test-amend-subrepo.t#obsstore-off (9.10s)test-amend-subrepo.t#obsstore-on (8.80s)test-logtoprocess.t (3.17s)test-rebase-transaction.t#continuecommand (5.36s)test-rebase-transaction.t#continueflag (5.46s)test-identify.t (9.71s)test-simple-update.t (7.15s)test-narrow-pull.t (14.96s)test-mq-missingfiles.t (7.62s)test-convert-datesort.t (7.16s)test-mq-qdelete.t (12.19s)test-filebranch.t (4.03s)test-pending.t (6.74s)test-clone-update-order.t (4.75s)test-racy-mutations.t#fail-if-detected (1.87s)test-racy-mutations.t#skip-detection (1.70s)test-fastannotate-perfhack.t (7.57s)test-origbackup-conflict.t (4.83s)test-mq-merge.t (7.89s)test-update-atomic.t (3.26s)test-merge-local.t (5.87s)test-hooklib-changeset_obsoleted.t (3.26s)test-remotefilelog-http.t (5.29s)test-repo-filters-tiptoe.t (3.87s)test-sqlitestore.t (3.23s)test-exchange-obsmarkers-case-D3.t (7.43s)test-remote-hidden.t (5.00s)test-rebuildstate.t (7.49s)test-bugzilla.t (1.95s)test-revlog-v2.t (3.60s)test-rename-rev.t (7.86s)test-branch-option.t (8.26s)test-mac-packages.t (0.08s)test-empty-group.t (4.12s)test-narrow-shallow.t (15.38s)test-parents.t (5.50s)test-fix-metadata.t (0.65s)test-serve.t (5.48s)test-http-branchmap.t (3.45s)test-single-head-obsolescence-named-branch-A3.t (6.75s)test-children.t (5.55s)test-remotefilelog-clone.t (5.50s)test-remotefilelog-sparse.t (11.29s)test-remotefilelog-corrupt-cache.t (4.46s)test-run-tests.py (0.19s)test-single-head-obsolescence-named-branch-A4.t (5.66s)test-extdata.t (6.09s)test-remotefilelog-clone-tree.t (5.48s)test-narrow-commit.t#flat (9.21s)test-narrow-commit.t#tree (9.19s)test-mq-pull-from-bundle.t (6.59s)test-exchange-obsmarkers-case-B3.t (6.63s)test-issue672.t (3.06s)test-merge-internal-tools-pattern.t (4.64s)test-rhg-sparse-narrow.t (0.06s)test-extensions-afterloaded.t (4.14s)test-lfs-bundle.t (5.30s)test-wireproto-serverreactor.py (0.26s)test-single-head-obsolescence-named-branch-A1.t (6.29s)test-eol-clone.t (2.60s)test-tools.t (0.79s)test-fastannotate-corrupt.t (3.79s)test-single-head-obsolescence-named-branch-A2.t (5.24s)test-single-head-obsolescence-named-branch-A5.t (4.60s)test-excessive-merge.t (4.09s)test-mq-qqueue.t (9.26s)test-narrow-rebase.t#continuecommand (6.63s)test-narrow-rebase.t#continueflag (6.66s)test-push-cgi.t (1.64s)test-record.t (1.08s)test-relink.t (2.50s)test-convert-darcs.t (2.25s)test-transaction-rollback-on-sigpipe.t (2.23s)test-bundle2-pushback.t (3.26s)test-hgweb-non-interactive.t (0.96s)test-remotefilelog-log.t (5.86s)test-rebase-backup.t (4.96s)test-patch.t (3.10s)test-cache-abuse.t (13.38s)test-arbitraryfilectx.t (1.97s)test-pathconflicts-basic.t (5.87s)test-hooklib-changeset_published.t (1.86s)test-committer.t (4.07s)test-exchange-obsmarkers-case-B7.t (6.24s)test-patchbomb-tls.t (2.79s)test-remotefilelog-bundle2-legacy.t (0.51s)test-pull-http.t (3.38s)test-exchange-obsmarkers-case-B1.t (6.41s)test-rename-after-merge.t (6.24s)test-remotefilelog-bundles.t (4.72s)test-requires.t (3.68s)test-bookmarks-rebase.t (4.98s)test-mq-qdiff.t (5.81s)test-sidedata.t (3.70s)test-remotefilelog-bundle2.t (6.43s)test-exchange-obsmarkers-case-A7.t (5.65s)test-revset-outgoing.t (4.12s)test-import-context.t (1.69s)test-eol-add.t (3.14s)test-dirstate.t#dirstate-v1 (3.62s)test-dirstate.t#dirstate-v2 (4.33s)test-bundle-vs-outgoing.t (4.45s)test-rebase-partial.t (4.06s)test-update-names.t (5.70s)test-nointerrupt.t (1.84s)test-hooklib-reject_merge_commits.t (1.63s)test-mailmap.t (3.67s)test-rank.t (2.94s)test-merge-remove.t (5.57s)test-convert-tagsbranch-topology.t (1.40s)test-narrow-clone-stream.t#flat-fncache (20.52s)test-narrow-clone-stream.t#flat-nofncache (20.50s)test-narrow-clone-stream.t#tree (20.57s)test-locate.t (7.91s)test-merge-closedheads.t (7.21s)test-wireproto-clientreactor.py (0.26s)test-contrib-dumprevlog.t (3.08s)test-unified-test.t (0.82s)test-remotefilelog-pull-noshallow.t (3.27s)test-debugextensions.t (1.33s)test-issue1306.t (2.81s)test-narrow-sparse.t#flat (4.91s)test-narrow-sparse.t#tree (3.84s)test-fuzz-targets.t (0.29s)test-cat.t (7.15s)test-histedit-no-backup.t#abortcommand (2.49s)test-histedit-no-backup.t#abortflag (2.55s)test-histedit-merge-tools.t (3.29s)test-issue660.t (5.92s)test-remotefilelog-tags.t (4.04s)test-issue1175.t (5.45s)test-oldcgi.t (1.33s)test-narrow-clone-non-narrow-server.t (7.60s)test-largefiles-small-disk.t (1.31s)test-issue586.t (5.04s)test-convert-clonebranches.t (4.74s)test-remotefilelog-strip.t (3.64s)test-impexp-branch.t (4.08s)test-rebase-legacy.t#continuecommand (3.61s)test-rebase-legacy.t#continueflag (3.45s)test-wsgirequest.py (0.34s)test-symlink-placeholder.t (3.08s)test-url-download.t (3.76s)test-merge6.t (3.84s)test-ssh-repoerror.t (4.32s)test-narrow-copies.t (5.39s)test-server-view.t (3.81s)test-verify-repo-operations.py (0.10s)test-rebase-issue-noparam-single-rev.t (5.18s)test-close-head.t (4.33s)test-merge-revert2.t (7.33s)test-merge4.t (4.54s)test-addremove.t (5.20s)test-mq-qrename.t (9.30s)test-narrow-update.t (5.21s)test-mq-symlinks.t (7.44s)test-double-merge.t (2.02s)test-narrow-patch.t#flat (2.45s)test-narrow-patch.t#tree (2.56s)test-glog-topological.t (2.05s)test-sparse-verbose-json.t (3.19s)test-merge9.t (4.07s)test-remotefilelog-partial-shallow.t (3.29s)test-update-reverse.t (2.77s)test-patch-offset.t (0.71s)test-newcgi.t (0.93s)test-revlog-raw.py (0.65s)test-context-metadata.t (2.41s)test-pushvars.t (2.41s)test-histedit-templates.t (2.25s)test-hgwebdirsym.t (3.33s)test-log-exthook.t (1.11s)test-issue1802.t (3.14s)test-branch-tag-confict.t (2.23s)test-custom-filters.t (1.94s)test-narrow-debugcommands.t (2.68s)test-sparse-requirement.t (2.69s)test-sparse-clone.t (1.77s)test-issue2137.t (0.89s)test-manifest.py (2.27s)test-merge-symlinks.t (1.62s)test-revlog.t (1.51s)test-permissions.t#dirstate-v1 (2.25s)test-permissions.t#dirstate-v2 (2.29s)test-eolfilename.t (2.51s)test-merge10.t (3.05s)test-diffdir.t (4.42s)test-schemes.t (2.52s)test-mq-qgoto.t (6.19s)test-newercgi.t (0.92s)test-issue522.t (2.63s)test-hooklib-reject_new_heads.t (1.35s)test-url.py (0.21s)test-convert-identity.t (2.82s)test-editor-filename.t (1.53s)test-import-unknown.t (4.75s)test-journal-exists.t (2.39s)test-unbundlehash.t (1.73s)test-merge-revert.t (7.31s)test-encode.t (3.07s)test-hooklib-enforce_draft_commits.t (2.02s)test-casecollision.t (4.64s)test-remotefilelog-datapack.py (1.53s)test-ancestor.py (0.81s)test-missing-capability.t (2.47s)test-update-dest.t (2.33s)test-known.t (3.42s)test-sparse-fsmonitor.t (0.01s)test-no-symlinks.t (0.07s)test-convert-authormap.t (1.60s)test-sparse-clear.t (2.31s)test-remotefilelog-permissions.t (2.93s)test-subrepo-paths.t (1.54s)test-confused-revert.t (3.99s)test-merge2.t (5.03s)test-issue1993.t (1.99s)test-issue1502.t (2.46s)test-gpg.t (1.73s)test-rebase-empty-successor.t (2.74s)test-clone-cgi.t (0.91s)test-fix-pickle.t (1.05s)test-websub.t (1.43s)test-rebase-brute-force.t (2.09s)test-simplemerge.py (0.20s)test-stdio.py (6.70s)test-diff-antipatience.t#bdiff (0.70s)test-diff-antipatience.t#xdiff (0.90s)test-issue1877.t (3.40s)test-empty-file.t (2.80s)test-parseindex2.py (0.32s)test-revlog-mmapindex.t (16.43s)test-hgk.t (1.95s)test-changelog-exec.t (2.45s)test-lrucachedict.py (0.19s)test-diff-hashes.t (1.88s)test-convert-bzr-ghosts.t (0.07s)test-debian-packages.t (0.29s)test-absorb-edit-lines.t (2.32s)test-remotefilelog-histpack.py (2.83s)test-remotefilelog-wireproto.t (3.24s)test-narrow-acl.t (3.06s)test-legacy-exit-code.t (2.33s)test-remotefilelog-hgweb.t (2.26s)test-docker-packaging.t (0.35s)test-bookmarks-strip.t (2.75s)test-remotefilelog-keepset.t (2.50s)test-mactext.t (1.11s)test-empty.t (1.48s)test-remotefilelog-bad-configs.t (2.47s)test-diff-subdir.t (1.70s)test-revert-interactive-curses.t (1.82s)test-narrow-debugrebuilddirstate.t (1.89s)test-convert-bzr-114.t (0.08s)test-unrelated-pull.t (1.95s)test-diff-reverse.t (2.13s)test-revset-dirstate-parents.t (4.62s)test-trusted.py (0.25s)test-debugbackupbundle.t (1.99s)test-wireproto-framing.py (0.20s)test-update-issue1456.t (2.93s)test-merge5.t (2.64s)test-convert-bzr-treeroot.t (0.07s)test-narrow-archive.t (2.77s)test-absorb-unfinished.t (1.37s)test-diff-copy-depth.t (4.18s)test-hgweb-bundle.t (1.69s)test-mq-qimport-fail-cleanup.t (1.57s)test-rhg-no-generaldelta.t (1.58s)test-linelog.py (2.34s)test-linerange.py (0.20s)test-fix-clang-format.t (0.10s)test-manifest-merging.t (1.83s)test-issue619.t (1.97s)test-merge8.t (1.98s)test-issue842.t (2.01s)test-remotefilelog-blame.t (3.38s)test-filecache.py (0.98s)test-revlog-group-emptyiter.t (1.39s)test-propertycache.py (0.54s)test-pathencode.py (0.44s)test-demandimport.py (0.19s)test-archive-symlinks.t (1.33s)test-absorb-filefixupstate.py (0.36s)test-absorb-strip.t (1.24s)test-pull-permission.t (1.18s)test-issue5979.t (2.53s)test-revisions.t (3.63s)test-remotefilelog-share.t#normal (1.96s)test-remotefilelog-share.t#safe (1.98s)test-issue612.t (1.95s)test-context.py (0.40s)test-batching.py (0.30s)test-debugindexdot.t (2.21s)test-lock.py (0.19s)test-doctest.py (1.23s)test-eol-tag.t (1.39s)test-empty-manifest-index.t (1.52s)test-ssh-batch.t (1.40s)test-bdiff.py (0.19s)test-hgweb-auth.py (0.17s)test-nested-repo.t (2.55s)test-minirst.py (0.22s)test-rust-ancestor.py (0.16s)test-execute-bit.t (2.16s)test-issue4074.t (1.44s)test-username-newline.t (0.86s)test-fastannotate-revmap.py (0.34s)test-revlog-packentry.t (1.10s)test-ui-config.py (0.37s)test-sparse-with-safe-share.t (0.89s)test-diff-issue2761.t (1.93s)test-strict.t (1.78s)test-atomictempfile.py (0.19s)test-diff-newlines.t (0.90s)test-util.py (0.19s)test-rust-discovery.py (0.14s)test-empty-dir.t (1.29s)test-storage.py (2.20s)test-absorb-phase.t (1.65s)test-extra-filelog-entry.t (1.37s)test-annotate.py (0.22s)test-debugrename.t (1.80s)test-issue1438.t (1.77s)test-issue1102.t (1.51s)test-fastannotate-diffopts.t (0.91s)test-revert-unknown.t (1.49s)test-bad-pull.t (1.14s)test-revert-flags.t (1.28s)test-simplekeyvaluefile.py (0.21s)test-issue1089.t (1.39s)test-backwards-remove.t (1.20s)test-contrib-emacs.t (1.83s)test-xdg.t (0.27s)test-cappedreader.py (0.17s)test-wireproto.py (0.23s)test-dirstate-backup.t (0.39s)test-mq-qsave.t (0.95s)test-encoding-func.py (0.16s)test-extensions-wrapfunction.py (0.27s)test-walkrepo.py (0.34s)test-hashutil.py (0.11s)test-rust-revlog.py (0.07s)test-revlog-ancestry.py (0.49s)test-config-parselist.py (0.12s)test-ui-verbosity.py (0.28s)test-hg-parseurl.py (0.18s)test-filelog.py (0.35s)test-symlink-os-yes-fs-no.py (1.38s)test-sshserver.py (0.25s)test-hgwebdir-gc.py (0.36s)test-config-env.py (0.27s)test-minifileset.py (0.22s)test-locale.t (0.15s)test-lfs-pointer.py (0.30s)test-duplicateoptions.py (0.41s)test-hgwebdir-paths.py (0.31s)test-ui-color.py (0.30s)test-status-inprocess.py (0.33s)test-dispatch.py (0.36s)test-dirs.py (0.19s)test-mdiff.py (0.19s)