[Bug 262746] lib/libsysdecode/mkioctls sometimes fails spuriously
Date: Wed, 23 Mar 2022 18:05:23 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=262746 Bug ID: 262746 Summary: lib/libsysdecode/mkioctls sometimes fails spuriously Product: Base System Version: CURRENT Hardware: Any OS: Any Status: New Severity: Affects Many People Priority: --- Component: misc Assignee: bugs@FreeBSD.org Reporter: np@FreeBSD.org CC: arichardson@FreeBSD.org, jhb@FreeBSD.org mkioctls uses a "find | sort | tee | xargs egrep -l | awk" pipeline to generate a list of header files. This pipeline fails spuriously if the shell's pipefail option is enabled and one of the egrep launched by xargs returns 1 because there are no _IO* markers in that particular batch of files. set -o pipefail was added in ec45ce6222366e69adf1fad1b33ec8598229c8c0 pipefail support was added to /bin/sh in 484160a9cf236a5892c1ab8344de287d7a1472c1 This also means the comment about /bin/bash in mkioctls is now stale. Here is a DTrace script (and its output) that shows the failure when "sh ./lib/libsysdecode/mkioctls ." is run inside a tree with this problem. cat mkioctl.d #!/usr/sbin/dtrace -s syscall:freebsd:exit:entry /execname == "awk" || \ execname == "egrep" || \ execname == "find" || \ execname == "grep" || \ execname == "sh" || \ execname == "tee" || \ execname == "xargs"/ { trace(execname); trace(arg0) } dtrace: script '/tmp/mkioctl.d' matched 1 probe CPU ID FUNCTION:NAME 3 88534 exit:entry sh 0 1 88534 exit:entry grep 0 4 88534 exit:entry find 0 2 88534 exit:entry egrep 1 0 88534 exit:entry egrep 0 2 88534 exit:entry egrep 0 7 88534 exit:entry tee 0 4 88534 exit:entry egrep 0 6 88534 exit:entry xargs 1 2 88534 exit:entry awk 0 0 88534 exit:entry sh 1 3 88534 exit:entry sh 1 -- You are receiving this mail because: You are the assignee for the bug.