From: Tony Battersby <tonyb@cybernetics.com>
To: Eric Dumazet <dada1@cosmosbay.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Davide Libenzi <davidel@xmailserver.org>,
Jonathan Corbet <corbet@lwn.net>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/6] [2.6.29] epoll: fix for epoll_wait sometimes returning events on closed fds
Date: Tue, 24 Feb 2009 15:36:24 -0500 [thread overview]
Message-ID: <49A45A48.6020805@cybernetics.com> (raw)
In-Reply-To: <49A44FEB.6000803@cosmosbay.com>
Eric Dumazet wrote:
> I believe Davide already said that close() meant the real close, not
> the file descriptor freeing.
>
> And current documentations clearly states it, maybe your man page is too old ?
>
> ---
>
> Q6 Will closing a file descriptor cause it to be removed from all epoll sets automatically?
>
> A6 Yes, but be aware of the following point. A file descriptor is a reference to an open file description (see
> open(2)). Whenever a descriptor is duplicated via dup(2), dup2(2), fcntl(2) F_DUPFD, or fork(2), a new file descriptor referring to the same open file description is created. An open file description continues to exist until all
> file descriptors referring to it have been closed. A file descriptor is removed from an epoll set only after all the
> file descriptors referring to the underlying open file description have been closed (or before if the descriptor is
> explicitly removed using epoll_ctl() EPOLL_CTL_DEL). This means that even after a file descriptor that is part of an
> epoll set has been closed, events may be reported for that file descriptor if other file descriptors referring to the
> same underlying file description remain open.
>
>
>
>
>
Ugh. The manpage on Ubuntu 8.04 that I am using doesn't contain this
lengthy caveat; it just says "A6 Yes." To me it sounds like the
(newer) manpage is just documenting away a bug/misfeature with "It's
supposed to do that. Gives it character." rather than expecting the
kernel developers to make the API behave in a more reasonable way. Just
my opinion; others may agree or disagree.
If the officially-sanctioned epoll interface is supposed to report
events on fds that were added, duped, and then the original fd closed,
then my patch will probably break that behavior. In that case, it will
be more difficult to fix problem that my patch is trying to fix (which
doesn't involve dup, dup2, fcntl, fork, etc.). So before I try to think
of another way, let me ask: do we want to fix the problem that I am
reporting, or just document it away in the manpage as (apparently) has
been done before?
Tony
next prev parent reply other threads:[~2009-02-24 20:36 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-24 17:26 [PATCH 1/6] [2.6.29] epoll: fix for epoll_wait sometimes returning events on closed fds Tony Battersby
2009-02-24 18:12 ` Eric Dumazet
2009-02-24 18:44 ` Tony Battersby
2009-02-24 19:52 ` Eric Dumazet
2009-02-24 20:36 ` Tony Battersby [this message]
2009-02-24 20:45 ` Davide Libenzi
2009-02-24 20:52 ` Tony Battersby
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=49A45A48.6020805@cybernetics.com \
--to=tonyb@cybernetics.com \
--cc=akpm@linux-foundation.org \
--cc=corbet@lwn.net \
--cc=dada1@cosmosbay.com \
--cc=davidel@xmailserver.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox