[LTP] [PATCH 1/2] shell: Fix timeout process termination for zsh
Joerg Vehlow
lkml@jv-coder.de
Wed May 19 12:26:46 CEST 2021
Hi Li,
On 5/19/2021 12:18 PM, Li Wang wrote:
>
> I'm wondering if this is zsh feature or a bug on a specific version?
> if the latter, we probably have no need to fix it in LTP.
> Btw, which zsh version do you use?
>
> Odd, I tried on my laptop(Fedora34) with zsh-5.5.1-6.el8_1.2.x86_64,
> but could NOT reproduce it.
>
> my reproducer:
> -----------------
>
> # cat test.sh
>
> echo "pid is $$" # send TERM to pid in another terminal
>
> sleep 100 &
> sleep_pid=$!
>
> trap "kill $sleep_pid; exit;" TERM
>
> wait $sleep_pid
> [ $? -eq 143 ] && echo "FAIL"
>
I may have something to do with subshells again...
I just tweaked your reproducer, to be a bit more like our "real
scenario" and can reproduce it:
timeout()
{
sleep 100 &
sleep_pid=$!
trap "echo Received TERM; kill $sleep_pid; exit;" TERM
wait $sleep_pid
[ $? -eq 143 ] && echo "FAIL"
}
timeout &
pid=$!
sleep 1
kill $pid
$ bash test.sh
Received TERM
$ zsh test.sh
Received TERM
FAIL
Jörg
More information about the ltp
mailing list