Message132920
| Author |
neologix |
| Recipients |
gregory.p.smith, neologix, pitrou, rnk |
| Date |
2011年04月04日.07:23:33 |
| SpamBayes Score |
1.1173032e-07 |
| Marked as misclassified |
No |
| Message-id |
<1301901814.56.0.805476252113.issue11757@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
_remaining_time doesn't check that endtime > current time and can return a negative number, which would trigger an EINVAL when passed to select (select_select doesn't seem to check for negative double).
Note that a check is performed through _check_timeout but after having called select, so there are at least two possible ways to get this error:
The process blocks a little before calling select for the first time. This can at least happen here:
if self.stdin and not self._communication_started:
# Flush stdio buffer. This might block, if the user has
# been writing to .stdin in an uncontrolled fashion.
self.stdin.flush()
if not input:
self.stdin.close()
There's also a short race window if the endtime deadline expires between the call to _check_timeout and remaining_time. |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2011年04月04日 07:23:34 | neologix | set | recipients:
+ neologix, gregory.p.smith, pitrou, rnk |
| 2011年04月04日 07:23:34 | neologix | set | messageid: <1301901814.56.0.805476252113.issue11757@psf.upfronthosting.co.za> |
| 2011年04月04日 07:23:33 | neologix | link | issue11757 messages |
| 2011年04月04日 07:23:33 | neologix | create |
|