From owner-freebsd-bugs@freebsd.org Wed Jan 8 07:56:06 2020 Return-Path: Delivered-To: freebsd-bugs@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 854351FE3AE for ; Wed, 8 Jan 2020 07:56:06 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mailman.nyi.freebsd.org (mailman.nyi.freebsd.org [IPv6:2610:1c1:1:606c::50:13]) by mx1.freebsd.org (Postfix) with ESMTP id 47t1lV33Xbz4C6c for ; Wed, 8 Jan 2020 07:56:06 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: by mailman.nyi.freebsd.org (Postfix) id 673151FE3AD; Wed, 8 Jan 2020 07:56:06 +0000 (UTC) Delivered-To: bugs@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 65E401FE3AC for ; Wed, 8 Jan 2020 07:56:06 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47t1lV211Wz4C6b for ; Wed, 8 Jan 2020 07:56:06 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2610:1c1:1:606c::50:1d]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 27D41CBC1 for ; Wed, 8 Jan 2020 07:56:06 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org ([127.0.1.5]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id 0087u6Zs036773 for ; Wed, 8 Jan 2020 07:56:06 GMT (envelope-from bugzilla-noreply@freebsd.org) Received: (from www@localhost) by kenobi.freebsd.org (8.15.2/8.15.2/Submit) id 0087u62G036772 for bugs@FreeBSD.org; Wed, 8 Jan 2020 07:56:06 GMT (envelope-from bugzilla-noreply@freebsd.org) X-Authentication-Warning: kenobi.freebsd.org: www set sender to bugzilla-noreply@freebsd.org using -f From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 243177] Enhancement request: O_CREATFIFO flag for open(2) Date: Wed, 08 Jan 2020 07:56:06 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: 12.0-RELEASE X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Some People X-Bugzilla-Who: rfg-freebsd@tristatelogic.com X-Bugzilla-Status: New X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: bugs@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version rep_platform op_sys bug_status bug_severity priority component assigned_to reporter Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 07:56:06 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D243177 Bug ID: 243177 Summary: Enhancement request: O_CREATFIFO flag for open(2) Product: Base System Version: 12.0-RELEASE Hardware: Any OS: Any Status: New Severity: Affects Some People Priority: --- Component: kern Assignee: bugs@FreeBSD.org Reporter: rfg-freebsd@tristatelogic.com The open(2) system call supports a number of optional flags which may be us= ed to control the exact semantics of the open() operation. Among these is O_C= REAT which can be used to atomically create the specified file while effectively, from the userland point of view, simultaneously and uninterruptably creating the file. The addition of the O_CREAT optional flag to the set of optional flags supported by open(2) was made decades ago in recognition of the fact that certain very troublesome race conditions could arise in userland programs in cases where the creation of a file and the opening of that same file might = be performed non-atomically. The exact same problem exists in the case where the file to be opened and created happens to be a POSIX FIFO file (POSIX 1003.1b-1993, Section 5.4.2.= 2.) however in this case it is currently necessary to make two separate, and therefore interruptable system calls (to mkfifo() and open()) in order to effect the creation and opening of a POSIX FIFO file, thus permitting troublesome race conditions of the kind that the O_CREAT flag for open(2) w= as created and implemented to eliminate. The obvious solution is the addition a new option flag for the open(2) syst= em call, analogous to the already existing O_CREAT flag, which will have the effect of both creating AND opening a POSIX FIFO file in a manner that is atomic and uninterruptable from the point of view of userland processes. I would suggest the name O_CREATFIFO for this new flag, but any reasonable symbolic name will do, provided that the semantics implied are the atomic creation and opening of a FIFO file. --=20 You are receiving this mail because: You are the assignee for the bug.=