With upstream master glibc, $ rev /etc/password aborts during cleanup, after printing all the output. There is both a glibc bug and a util-linux bug here. I reverted the upstream commit temporarily in rawhide (see bug 1732406), and I plan to fix util-linux in rawhide, so that we are ready for the full glibc fix in Fedora 31.
Hmm. It looks like that util-linux-2.34-1.fc31 already has the relevant upstream commit. I thought that it would be sufficient to paper over both bugs (fixing the util-linux bug and obscuring the glibc bug). But that does not appear to be the case. I will have to create yet another glibc build with the upstream candidate fix present, to check that it is sufficient to fix the crash. Let's hope that no further util-linux change is needed.
Yes, sounds like util-linux upstream issue: https://github.com/karelzak/util-linux/issues/807
Note that in util-linux we follow Jim Meyering's (~coreutils) idea about explicit close(stdout) to report I/O issues to users. For more details see https://www.gnu.org/ghm/2011/paris/slides/jim-meyering-goodbye-world.pdf
(In reply to Karel Zak from comment #3) > Note that in util-linux we follow Jim Meyering's (~coreutils) idea about > explicit close(stdout) to report I/O issues to users. For more details see > https://www.gnu.org/ghm/2011/paris/slides/jim-meyering-goodbye-world.pdf close_stdout is buggy, it should perform a dup3 followed by a close on the new handle, which is enough to check for the NFS flush. See this gnulib discussion: https://lists.gnu.org/r/bug-gnulib/2019-04/msg00059.html
This bug appears to have been reported against 'rawhide' during the Fedora 31 development cycle. Changing version to '31'.
This bug appears to have been reported against 'rawhide' during the Fedora 31 development cycle. Changing version to 31.
Rawhide and Fedora 31 have been fixed.