Issue 23172: Bad file descriptor error occurs if random library is imported before closing FDs (original) (raw)

The following script:

import os import resource import random

print("1")

for fd in range(resource.getrlimit(resource.RLIMIT_NOFILE)[0]): try: if fd not in range(0, 3): os.close(fd) except os.error: pass

print("2") print(os.urandom(32)) print("3")

Crashes with the following output:

1 2 Traceback (most recent call last): File "test.py", line 17, in print(os.urandom(32)) OSError: [Errno 9] Bad file descriptor

On an Ubuntu 14.04 install (in VirtualBox). It seems to run correctly on Mac OS X. The script runs fine if I don't import random at the top.