[
https://issues.apache.org/jira/browse/MESOS-319?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Benjamin Mahler reassigned MESOS-319:
-------------------------------------
Assignee: Benjamin Mahler (was: Chris A. Mattmann)
> Fix buggy read / write calls.
> -----------------------------
>
> Key: MESOS-319
> URL: https://issues.apache.org/jira/browse/MESOS-319
> Project: Mesos
> Issue Type: Bug
> Affects Versions: 0.9.0, 0.10.0, 0.11.0
> Reporter: Benjamin Mahler
> Assignee: Benjamin Mahler
> Fix For: 0.12.0
>
>
> We don't handle EINTR and partial read / write calls.
> See my comment below from https://reviews.apache.org/r/8423/
> "POSIX allows a read() that is interrupted after reading some data to return
> -1 (with errno set to EINTR) or to return the number of bytes already read."
> Therefore, we need to handle both EINTR and partial reads (with a read loop).
> Keeping this in the os.hpp read/write helpers would make things easier (I see
> the same mistake made there).
> Added TODOs for now, and at some point I'd like to fix these.
> Likewise for write:
> "Conforming to
> SVr4, 4.3BSD, POSIX.1-2001.
> Under SVr4 a write may be interrupted and return EINTR at any point, not just
> before any data is written.
> Notes
> <snip>
> If a write() is interrupted by a signal handler before any bytes are written,
> then the call fails with the error EINTR; if it is interrupted after at least
> one byte has been written, the call succeeds, and returns the number of bytes
> written."
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira