[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.