[Bug 260938] script(1) hangs when child doesn't read input fast enough
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 260938] script(1) hangs when child doesn't read input fast enough"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 260938] script(1) hangs when child doesn't read input fast enough"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 260938] script(1) hangs when child doesn't read input fast enough"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 260938] script(1) hangs when child doesn't read input fast enough"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 04 Jan 2022 20:25:14 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=260938 Bug ID: 260938 Summary: script(1) hangs when child doesn't read input fast enough Product: Base System Version: 13.0-RELEASE Hardware: Any OS: Any Status: New Severity: Affects Only Me Priority: --- Component: bin Assignee: bugs@FreeBSD.org Reporter: nabijaczleweli@nabijaczleweli.xyz Created attachment 230710 --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=230710&action=edit Above core dump, zstd compressed If there's enough input and the child doesn't read it in fast enough, script(1) deadlocks on stdin to the child against the child writing to its stdout. This is a regression from 4.4BSD-Lite, brought on by replacing the 2-process model (i.e. leader: stdin -> master pty child: master pty -> stdout/fscript subchild: the command ) with a single process and select(2); writes to the master pty don't seem to shard, and block forever; the child cannot continue because it's blocked on writing its own data. This is the same bug as in util-linux's implementation (though that uses poll(2)), so please see this Debian bug for more words on the topic: https://bugs.debian.org/1003095 Attaching core I got after ^\ing and trace from ktrace script /dev/null sh -c 'for i in $(seq 10); do echo $i; done; read -r a; echo a=$a' < lc wherein lc is b64encode /lib/libc.so.7 /lib/libc.so.7 > lc uname -a says "FreeBSD build 13.0-RELEASE-p4 FreeBSD 13.0-RELEASE-p4 #0: Tue Aug 24 07:33:27 UTC 2021 root@amd64-builder.daemonology.net:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64" -- You are receiving this mail because: You are the assignee for the bug.