[Python-checkins] [3.6] pythoninfo: ignore OSError(ENOSYS) on getrandom() (GH-3655) (#3657)

Victor Stinner webhook-mailer at python.org
Tue Sep 19 11:34:30 EDT 2017


https://github.com/python/cpython/commit/72c05e31d6127cf41bdce31bfb83fffe8d85bdd7
commit: 72c05e31d6127cf41bdce31bfb83fffe8d85bdd7
branch: 3.6
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: Victor Stinner <victor.stinner at gmail.com>
date: 2017-09-19T08:34:24-07:00
summary:

[3.6] pythoninfo: ignore OSError(ENOSYS) on getrandom() (GH-3655) (#3657)

(cherry picked from commit a92941ff12c1d554f42c05ed24621894a758b40f)

files:
M Lib/test/pythoninfo.py

diff --git a/Lib/test/pythoninfo.py b/Lib/test/pythoninfo.py
index 15cce34e822..5447ab8274b 100644
--- a/Lib/test/pythoninfo.py
+++ b/Lib/test/pythoninfo.py
@@ -2,6 +2,7 @@
 Collect various informations about Python to help debugging test failures.
 """
 from __future__ import print_function
+import errno
 import re
 import sys
 import traceback
@@ -223,11 +224,17 @@ def format_attr(attr, value):
     if hasattr(os, 'getrandom'):
         # PEP 524: Check if system urandom is initialized
         try:
-            os.getrandom(1, os.GRND_NONBLOCK)
-            state = 'ready (initialized)'
-        except BlockingIOError as exc:
-            state = 'not seeded yet (%s)' % exc
-        info_add('os.getrandom', state)
+            try:
+                os.getrandom(1, os.GRND_NONBLOCK)
+                state = 'ready (initialized)'
+            except BlockingIOError as exc:
+                state = 'not seeded yet (%s)' % exc
+            info_add('os.getrandom', state)
+        except OSError as exc:
+            # Python was compiled on a more recent Linux version
+            # than the current Linux kernel: ignore OSError(ENOSYS)
+            if exc.errno != errno.ENOSYS:
+                raise
 
 
 def collect_readline(info_add):



More information about the Python-checkins mailing list