Skip to content
Snippets Groups Projects
Commit b5aaa09b authored by Gregory Szorc's avatar Gregory Szorc
Browse files

py3: suppress unraisable exceptions in test-worker.t

Python 3.8 calls sys.unraisablehook when an unraisable
exception is encountered. The default behavior is to print a
warning.

test-worker.t was triggering this hook due to a race between
a newly forked process exiting and that process's
_os.register_at_fork handlers running. I was seeing the
stdlib's random module in the stack re-seeding itself. Although
there could be other after-fork handlers in the mix.

This commit defines sys.unraisablehook to effectively no-op.
This suppresses the warning and makes test output on Python 3.8
consistent with prior versions. test-worker.t now passes on
Python 3.8.

Differential Revision: https://phab.mercurial-scm.org/D7949
parent e1b8b4e4
No related branches found
No related tags found
No related merge requests found
......@@ -2,6 +2,7 @@
$ cat > t.py <<EOF
> from __future__ import absolute_import, print_function
> import sys
> import time
> from mercurial import (
> error,
......@@ -9,6 +10,7 @@
> ui as uimod,
> worker,
> )
> sys.unraisablehook = lambda x: None
> def abort(ui, args):
> if args[0] == 0:
> # by first worker for test stability
......@@ -101,4 +103,5 @@
> from __future__ import absolute_import
> import atexit
> import os
> import sys
> import time
......@@ -104,4 +107,5 @@
> import time
> sys.unraisablehook = lambda x: None
> oldfork = os.fork
> count = 0
> parentpid = os.getpid()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment