diff --git a/Lib/subprocess.py b/Lib/subprocess.py index 606559413eb..35970f8c7e6 100644 --- a/Lib/subprocess.py +++ b/Lib/subprocess.py @@ -1158,7 +1158,12 @@ class Popen(object): input_offset = 0 while read_set or write_set: - rlist, wlist, xlist = select.select(read_set, write_set, []) + try: + rlist, wlist, xlist = select.select(read_set, write_set, []) + except select.error, e: + if e.args[0] == errno.EINTR: + continue + raise if self.stdin in wlist: # When select has indicated that the file is writable, diff --git a/Misc/NEWS b/Misc/NEWS index 715746c8747..f50459c7705 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -59,6 +59,9 @@ Library urllib module in Python 3.0 to urllib.request, urllib.parse, and urllib.error. +- Issue #2113: Fix error in subprocess.Popen if the select system call is + interrupted by a signal. + Build -----