[
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)