indygreg created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers.
REVISION SUMMARY 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. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D7949 AFFECTED FILES tests/test-worker.t CHANGE DETAILS diff --git a/tests/test-worker.t b/tests/test-worker.t --- a/tests/test-worker.t +++ b/tests/test-worker.t @@ -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,7 +103,9 @@ > from __future__ import absolute_import > import atexit > import os + > import sys > import time + > sys.unraisablehook = lambda x: None > oldfork = os.fork > count = 0 > parentpid = os.getpid() To: indygreg, #hg-reviewers Cc: mercurial-devel _______________________________________________ Mercurial-devel mailing list [email protected] https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
