Messages in this thread | | | Subject | ^Z/fg problem revisited -- SIGCHLD semantics | From | Dean Gaudet <> | Date | Sat, 21 Dec 1996 18:32:01 -0800 |
| |
A few folks responded to my previous post of problems with ^Z/fg and bash. I got enough info to track it down to the 2.0 -> 2.0.1 patches. Specifically it appears to be as a result of the POSIX.1 compliance SIGCHLD semantic changes.
The fix for bash-1.14.7 is to add -DWAITPID_BROKEN to SYSDEP_CFLAGS in machines.h. This should apply to all architectures running 2.0.1 or later. I've included a patch, only lightly tested on i386 (and which doesn't bother testing the linux version). I'd appreciate feedback before I submit this to the bash folks.
Here is how to reproduce the bug:
cat >bad <<EOF #!/bin/bash vi $* EOF ./bad bad
then ^Z/fg several times until the race condition is triggered bash will exit and leave vi running.
So, linux-kernel folks... I notice in the archive that these SIGCHLD semantic changes have been brought up a few times. Are they truly correct and necessary? It seems to break existing programs.
Incidentally I also had similar problems with mh's comp command. But it appears unrelated.
Dean
P.S. How did this go for so long? Does nobody use ^Z/fg anymore? :)
begin 664 bash-1.14.7-linux-waitpid-broken.patch M*BHJ(&)A<V@M,2XQ-"XW+VUA8VAI;F5S+F@N9&ES=`E3870@1&5C(#(Q(#$X M.C$U.C4S(#$Y.38*+2TM(&)A<V@M,2XQ-"XW+VUA8VAI;F5S+F@)4V%T($1E M8R`R,2`Q.#HQ-CHT,R`Q.3DV"BHJ*BHJ*BHJ*BHJ*BHJ*@HJ*BH@,3`T+#$Q M,"`J*BHJ"B`@(R`@9&5F:6YE($U?34%#2$E.12`B<W5N-"(*("`C("!D969I M;F4@35]/4R`B3&EN=7@B"B`@(R`@("!D969I;F4@4UE31$507T-&3$%'4R`M M1$A!5D5?1T541%1!0DQ%4TE:12`M1$A!5D5?0D-/4%D@7`HA("`@("`@("`@ M("`@("`@("`@("`@("`@("`@+41(059%7T=%5%!77T1%0TQ3("U$2$%615]' M151(3U-43D%-10H@(",@("`@9&5F:6YE(%)%455)4D5$7TQ)0E)!4DE%4PH@ M(",@("`@9&5F:6YE($A!5D5?1T541U)/55!3"B`@(R`@("!D969I;F4@2$%6 M15]35%)%4E)/4@HM+2T@,3`T+#$Q,"`M+2TM"B`@(R`@9&5F:6YE($U?34%# M2$E.12`B<W5N-"(*("`C("!D969I;F4@35]/4R`B3&EN=7@B"B`@(R`@("!D M969I;F4@4UE31$507T-&3$%'4R`M1$A!5D5?1T541%1!0DQ%4TE:12`M1$A! M5D5?0D-/4%D@7`HA("`@("`@("`@("`@("`@("`@("`@("`@("`@+41(059% M7T=%5%!77T1%0TQ3("U$2$%615]'151(3U-43D%-12`M1%=!2510241?0E)/ M2T5."B`@(R`@("!D969I;F4@4D5154E2141?3$E"4D%22453"B`@(R`@("!D M969I;F4@2$%615]'151'4D]54%,*("`C("`@(&1E9FEN92!(059%7U-44D52 M4D]2"BHJ*BHJ*BHJ*BHJ*BHJ*@HJ*BH@,30Q+#$T-R`J*BHJ"B`@(R`@("!D M969I;F4@35]-04-(24Y%(")S<&%R8R(*("`C("`@(&1E9FEN92!-7T]3("), M:6YU>"(*("`C("`@(&1E9FEN92!365-$15!?0T9,04=3("U$2$%615]'151$ M5$%"3$5325I%("U$2$%615]"0T]062!<"B$@"0D)("`M1$A!5D5?1T544%=? M1$5#3%,@+41(059%7T=%5$A/4U1.04U%"B`@(R`@("!D969I;F4@4D5154E2 M141?3$E"4D%22453"B`@(R`@("!D969I;F4@2$%615]'151'4D]54%,*("`C M("`@(&1E9FEN92!(059%7U-44D524D]2"BTM+2`Q-#$L,30W("TM+2T*("`C M("`@(&1E9FEN92!-7TU!0TA)3D4@(G-P87)C(@H@(",@("`@9&5F:6YE($U? M3U,@(DQI;G5X(@H@(",@("`@9&5F:6YE(%-94T1%4%]#1DQ!1U,@+41(059% M7T=%5$1404),15-)6D4@+41(059%7T)#3U!9(%P*(2`)"0D@("U$2$%615]' M15105U]$14-,4R`M1$A!5D5?1T542$]35$Y!344@+41704E44$E$7T)23TM% M3@H@(",@("`@9&5F:6YE(%)%455)4D5$7TQ)0E)!4DE%4PH@(",@("`@9&5F M:6YE($A!5D5?1T541U)/55!3"B`@(R`@("!D969I;F4@2$%615]35%)%4E)/ M4@HJ*BHJ*BHJ*BHJ*BHJ*BH**BHJ(#(T,2PR-#<@*BHJ*@H@(",@(&1E9FEN M92!-7TU!0TA)3D4@(F%L<&AA(@H@(",@(&1E9FEN92!-7T]3("),:6YU>"(* M("`C("!D969I;F4@4UE31$507T-&3$%'4R`M1$A!5D5?1T541%1!0DQ%4TE: M12`M1$A!5D5?0D-/4%D@7`HA(`D)"2U$2$%615]'15105U]$14-,4R`M1$A! M5D5?1T542$]35$Y!344*("`C("!D969I;F4@4D5154E2141?3$E"4D%22453 M"B`@(R`@9&5F:6YE($A!5D5?1T541U)/55!3"B`@(R`@9&5F:6YE($A!5D5? M4U1215)23U(*+2TM(#(T,2PR-#<@+2TM+0H@(",@(&1E9FEN92!-7TU!0TA) M3D4@(F%L<&AA(@H@(",@(&1E9FEN92!-7T]3("),:6YU>"(*("`C("!D969I M;F4@4UE31$507T-&3$%'4R`M1$A!5D5?1T541%1!0DQ%4TE:12`M1$A!5D5? M0D-/4%D@7`HA(`D)"2U$2$%615]'15105U]$14-,4R`M1$A!5D5?1T542$]3 M5$Y!344@+41704E44$E$7T)23TM%3@H@(",@(&1E9FEN92!215%525)%1%], M24)205))15,*("`C("!D969I;F4@2$%615]'151'4D]54%,*("`C("!D969I M;F4@2$%615]35%)%4E)/4@HJ*BHJ*BHJ*BHJ*BHJ*BH**BHJ(#DU,RPY-3D@ M*BHJ*@H@(",@("`@9&5F:6YE($U?34%#2$E.12`B:3,X-B(*("`C("`@(&1E M9FEN92!-7T]3("),:6YU>"(*("`C("`@(&1E9FEN92!365-$15!?0T9,04=3 M("U$2$%615]'151$5$%"3$5325I%("U$2$%615]"0T]062!<"B$@"0D)("`M M1$A!5D5?1T544%=?1$5#3%,@+41(059%7T=%5$A/4U1.04U%"B`@(R`@("!D M969I;F4@4D5154E2141?3$E"4D%22453"B`@(R`@("!D969I;F4@2$%615]' M151'4D]54%,*("`C("`@(&1E9FEN92!(059%7U-44D524D]2"BTM+2`Y-3,L M.34Y("TM+2T*("`C("`@(&1E9FEN92!-7TU!0TA)3D4@(FDS.#8B"B`@(R`@ M("!D969I;F4@35]/4R`B3&EN=7@B"B`@(R`@("!D969I;F4@4UE31$507T-& M3$%'4R`M1$A!5D5?1T541%1!0DQ%4TE:12`M1$A!5D5?0D-/4%D@7`HA(`D) M"2`@+41(059%7T=%5%!77T1%0TQ3("U$2$%615]'151(3U-43D%-12`M1%=! M2510241?0E)/2T5."B`@(R`@("!D969I;F4@4D5154E2141?3$E"4D%22453 M"B`@(R`@("!D969I;F4@2$%615]'151'4D]54%,*("`C("`@(&1E9FEN92!( M059%7U-44D524D]2"BHJ*BHJ*BHJ*BHJ*BHJ*@HJ*BH@,3`V,BPQ,#8X("HJ M*BH*("`C:68@9&5F:6YE9"`H;6,V.#`P,"D@)B8@*&1E9FEN960@*%]?;&EN M=7A?7RD@?'P@9&5F:6YE9"`H;&EN=7@I*0H@(",@(&1E9FEN92!-7TU!0TA) M3D4@(FTV.&LB"B`@(R`@9&5F:6YE($U?3U,@(DQI;G5X(@HA(",@(&1E9FEN M92!365-$15!?0T9,04=3("U$2$%615]"0T]062`M1$A!5D5?1T544%=?1$5# M3%,@+41(059%7T=%5$A/4U1.04U%"B`@(R`@9&5F:6YE(%)%455)4D5$7TQ) M0E)!4DE%4PH@(",@(&1E9FEN92!(059%7T=%5$=23U504PH@(",@(&1E9FEN M92!(059%7U-44D524D]2"BTM+2`Q,#8R+#$P-C@@+2TM+0H@("-I9B!D969I M;F5D("AM8S8X,#`P*2`F)B`H9&5F:6YE9"`H7U]L:6YU>%]?*2!\?"!D969I M;F5D("AL:6YU>"DI"B`@(R`@9&5F:6YE($U?34%#2$E.12`B;38X:R(*("`C M("!D969I;F4@35]/4R`B3&EN=7@B"B$@(R`@9&5F:6YE(%-94T1%4%]#1DQ! M1U,@+41(059%7T)#3U!9("U$2$%615]'15105U]$14-,4R`M1$A!5D5?1T54 M2$]35$Y!344@+41704E44$E$7T)23TM%3@H@(",@(&1E9FEN92!215%525)% M1%],24)205))15,*("`C("!D969I;F4@2$%615]'151'4D]54%,*("`C("!D 4969I;F4@2$%615]35%)%4E)/4@H` ` end
| |