diff options
author | henry.tjf <henry.tjf@antfin.com> | 2019-09-11 18:30:57 +0800 |
---|---|---|
committer | Jianfeng Tan <henry.tjf@antfin.com> | 2019-09-24 14:18:22 +0000 |
commit | bc9de939fd00e71ed8fbfc6c1b631c1facb445a2 (patch) | |
tree | 628bc3a995f255f2358dfb4076fa5d23a983c5dd /pkg/binary/binary_state_autogen.go | |
parent | d5b3dd7cb4360a9772c26ddb1a8e8b43d33f9f94 (diff) |
tty: fix sending SIGTTOU on tty write
How to reproduce:
$ echo "timeout 10 ls" > foo.sh
$ chmod +x foo.sh
$ ./foo.sh
(will hang here for 10 secs, and the output of ls does not show)
When "ls" process writes to stdout, it receives SIGTTOU signal, and
hangs there. Until "timeout" process timeouts, and kills "ls" process.
The expected result is: "ls" writes its output into tty, and terminates
immdedately, then "timeout" process receives SIGCHLD and terminates.
The reason for this failure is that we missed the check for TOSTOP (if
set, background processes will receive the SIGTTOU signal when they do
write).
We use drivers/tty/n_tty.c:n_tty_write() as a reference.
Fixes: #862
Reported-by: chris.zn <chris.zn@antfin.com>
Signed-off-by: Jianfeng Tan <henry.tjf@antfin.com>
Signed-off-by: chenglang.hy <chenglang.hy@antfin.com>
Diffstat (limited to 'pkg/binary/binary_state_autogen.go')
0 files changed, 0 insertions, 0 deletions