Theodore Ts'o wrote in <20250520133705.GE38098@xxxxxxx>: |On Tue, May 20, 2025 at 01:19:19AM +0200, Steffen Nurpmeso wrote: |> They could not do otherwise than talking the status quo, i think. |> They have explicitly added posix_close() which overcomes the |> problem (for those operating systems which actually act like |> that). There is a long RATIONALE on this, it starts on page 747 :) | |They could have just added posix_close() which provided well-defined |semantics without demanding that existing implementations make |non-backwards compatible changes to close(2). Personally, while they |were adding posix_close(2) they could have also fixed the disaster |which is the semantics around close(2) [.] Well it was a lot of trouble, not only in bug 529[1], with follow-ups like a thread started by Michael Kerrisk, with an interesting response by Rich Felker of Musl[2]. In [1] Erik Blake of RedHat/libvirt said for example The Linux kernel currently always frees the file descriptor (no chance for a retry; the filedes can immediately be reused by another open()), for both EINTR and EIO. Maybe it is safer to state that the fd is _always_ closed, even if failure is reported? etc, but Geoff Clare then (this also was in 2012, where one possibly could have hoped that more operating systems survive / continue with money/manpower backing by serious companies; just in case that mattered) came via HP got it right with HP-UX; AIX and Linux do the wrong thing. and he has quite some reasoning for descriptors like ttys etc, where close can linger, which resulted in Erik Blake quoting Let me make it very, very clear - no matter how many times these guys assert HP-UX insane behaviour correct, no "fixes" to Linux one are going to be accepted. Consider it vetoed. By me, in role of Linux VFS maintainer. And I'm _very_ certain that getting Linus to agree will be a matter of minutes. [1] https://www.austingroupbugs.net/view.php?id=529 [2] https://www.mail-archive.com/austin-group-l@xxxxxxxxxxxxx/msg00579.html |[.] and how advisory locks get |released that were held by other file descriptors and add a profound |apologies over the insane semantics demanded by POSIX[1]. The new standard added the Linux-style F_OFD_* fcntl(2) locks! They are yet Linux-only, but NetBSD at least has an issue by a major contributor (bug 59241): NetBSD seems to lack the following: 3.237 OFD-Owned File Lock ... https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/V1_chap03.html#tag_03_237 >How-To-Repeat: standards inspection >Fix: Yes, please! (That or write down a reason why we eschew it.) |[1] "POSIX advisory locks are broken by design." | https://www.sqlite.org/src/artifact/c230a7a24?ln=994-1081 | | - Ted --End of <20250520133705.GE38098@xxxxxxx> --steffen | |Der Kragenbaer, The moon bear, |der holt sich munter he cheerfully and one by one |einen nach dem anderen runter wa.ks himself off |(By Robert Gernhardt)