Lines 98-106
class PipeLogger(AbstractPollTask):
Link Here
|
98 |
stdout_buf = \ |
98 |
stdout_buf = \ |
99 |
stdout_buf[os.write(stdout_fd, stdout_buf):] |
99 |
stdout_buf[os.write(stdout_fd, stdout_buf):] |
100 |
except OSError as e: |
100 |
except OSError as e: |
101 |
if e.errno != errno.EAGAIN: |
101 |
if e.errno not in (errno.EAGAIN, errno.EIO): |
102 |
raise |
102 |
raise |
103 |
del e |
|
|
104 |
failures += 1 |
103 |
failures += 1 |
105 |
if failures > 50: |
104 |
if failures > 50: |
106 |
# Avoid a potentially infinite loop. In |
105 |
# Avoid a potentially infinite loop. In |
Lines 108-113
class PipeLogger(AbstractPollTask):
Link Here
|
108 |
# and it's unlikely to exceed 1. |
107 |
# and it's unlikely to exceed 1. |
109 |
raise |
108 |
raise |
110 |
|
109 |
|
|
|
110 |
if e.errno != errno.EAGAIN: |
111 |
# For cases like bug #459674 where we receive |
112 |
# an unexpected EIO error on Linux, simply |
113 |
# retry until our failure limit is reached. |
114 |
continue |
115 |
|
111 |
# This means that a subprocess has put an inherited |
116 |
# This means that a subprocess has put an inherited |
112 |
# stdio file descriptor (typically stdin) into |
117 |
# stdio file descriptor (typically stdin) into |
113 |
# O_NONBLOCK mode. This is not acceptable (see bug |
118 |
# O_NONBLOCK mode. This is not acceptable (see bug |
114 |
- |
|
|