Thread (25 messages) 25 messages, 8 authors, 2020-05-04

Re: Implement close-on-fork

From: Al Viro <viro@zeniv.linux.org.uk>
Date: 2020-04-22 16:01:14
Also in: linux-alpha, linux-arch, linux-fsdevel, lkml, sparclinux

On Wed, Apr 22, 2020 at 08:18:15AM -0700, Matthew Wilcox wrote:
On Wed, Apr 22, 2020 at 04:01:07PM +0100, Al Viro wrote:
quoted
On Mon, Apr 20, 2020 at 02:15:44AM -0500, Nate Karstens wrote:
quoted
Series of 4 patches to implement close-on-fork. Tests have been
published to https://github.com/nkarstens/ltp/tree/close-on-fork.

close-on-fork addresses race conditions in system(), which
(depending on the implementation) is non-atomic in that it
first calls a fork() and then an exec().

This functionality was approved by the Austin Common Standards
Revision Group for inclusion in the next revision of the POSIX
standard (see issue 1318 in the Austin Group Defect Tracker).
What exactly the reasons are and why would we want to implement that?

Pardon me, but going by the previous history, "The Austin Group Says It's
Good" is more of a source of concern regarding the merits, general sanity
and, most of all, good taste of a proposal.

I'm not saying that it's automatically bad, but you'll have to go much
deeper into the rationale of that change before your proposal is taken
seriously.
https://www.mail-archive.com/austin-group-l@opengroup.org/msg05324.html
might be useful
*snort*

Alan Coopersmith in that thread:
|| https://lwn.net/Articles/785430/ suggests AIX, BSD, & MacOS have also defined
|| it, and though it's been proposed multiple times for Linux, never adopted there.

Now, look at the article in question.  You'll see that it should've been
"someone's posting in the end of comments thread under LWN article says that
apparently it exists on AIX, BSD, ..."

The strength of evidence aside, that got me curious; I have checked the
source of FreeBSD, NetBSD and OpenBSD.  No such thing exists in either of
their kernels, so at least that part can be considered an urban legend.

As for the original problem...  what kind of exclusion is used between
the reaction to netlink notifications (including closing every socket,
etc.) and actual IO done on those sockets?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help