This is an archive of the discontinued Mercurial Phabricator instance.

py3: suppress unraisable exceptions in test-worker.t
ClosedPublic

Authored by indygreg on Jan 18 2020, 4:18 PM.

Details

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.

Diff Detail

Repository
rHG Mercurial
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

indygreg created this revision.Jan 18 2020, 4:18 PM
pulkit accepted this revision.Jan 21 2020, 11:02 AM
This revision is now accepted and ready to land.Jan 21 2020, 11:02 AM
This revision was automatically updated to reflect the committed changes.