[ https://issues.apache.org/jira/browse/MESOS-3512?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Benjamin Mahler updated MESOS-3512: ----------------------------------- Description: On Linux, retrying close on EINTR is dangerous because the fd is already released and we may accidentally close a newly opened fd (from another thread), see: http://ewontfix.com/4/ http://lwn.net/Articles/576478/ http://lwn.net/Articles/576591/ It appears that other OSes, like HPUX, require a retry of close on EINTR. The Austin Group recently proposed changes to POSIX to require that the EINTR case need a retry, but EINPROGRESS be used for when a retry should not occur: http://austingroupbugs.net/view.php?id=529 However, Linux does not follow this and so we need to remove our EINTR retries. Some more links for posterity: https://github.com/wahern/cqueues/issues/56#issuecomment-108656004 https://code.google.com/p/chromium/issues/detail?id=269623 https://codereview.chromium.org/23455051/ was: On Linux, retrying close on EINTR is dangerous because the fd is already released and we may accidentally close a newly opened fd (from another thread), see: http://ewontfix.com/4/ http://lwn.net/Articles/576478/ http://lwn.net/Articles/576591/ It appears that other OSes, like HPUX, require a retry of close on EINTR. The Austin Group recently proposed changes to POSIX to require that the EINTR case need a retry, but EINPROGRESS be used for when a retry should not occur: http://austingroupbugs.net/view.php?id=529 However, Linux does not follow this and so we need to remove our EINTR retries. > Don't retry close() on EINTR. > ----------------------------- > > Key: MESOS-3512 > URL: https://issues.apache.org/jira/browse/MESOS-3512 > Project: Mesos > Issue Type: Bug > Reporter: Benjamin Mahler > Assignee: Benjamin Mahler > > On Linux, retrying close on EINTR is dangerous because the fd is already > released and we may accidentally close a newly opened fd (from another > thread), see: > http://ewontfix.com/4/ > http://lwn.net/Articles/576478/ > http://lwn.net/Articles/576591/ > It appears that other OSes, like HPUX, require a retry of close on EINTR. The > Austin Group recently proposed changes to POSIX to require that the EINTR > case need a retry, but EINPROGRESS be used for when a retry should not occur: > http://austingroupbugs.net/view.php?id=529 > However, Linux does not follow this and so we need to remove our EINTR > retries. > Some more links for posterity: > https://github.com/wahern/cqueues/issues/56#issuecomment-108656004 > https://code.google.com/p/chromium/issues/detail?id=269623 > https://codereview.chromium.org/23455051/ -- This message was sent by Atlassian JIRA (v6.3.4#6332)