Zombie processes by drb tests

OpenBSD e$B$G!"e(Btest-all e$B$r$9$k$H!“e(Bdrb
e$B$N$H$3$m$G!”%F%9%H$Ke(B 100
e$BIC$+$+$C$F%(%i!<$K$J$k$H$$$&$N$,5/$-$^$9!#e(B


TestDRbSafe1#test_05_break: 1.12 s: .
TestDRbSafe1#test_06_next: sh: cannot fork - try again
100.01 s: E
TestDRbSafe1#test_07_break_18: 100.00 s: E
TestDRbUNIXAry#test_01: 100.00 s: E
TestDRbUNIXAry#test_02_collect: 100.00 s: E
TestDRbUNIXAry#test_03_redo: 100.00 s: E
TestDRbUNIXAry#test_05_break: 100.01 s: E
TestDRbUNIXAry#test_06_next: 100.00 s: E
TestDRbUNIXAry#test_07_break_18: 100.00 s: E
TestDRbUNIXCore#test_00_DRbObject: 100.00 s: E
TestDRbUNIXCore#test_01: 100.00 s: E
TestDRbUNIXCore#test_01_02_loop: 100.00 s: E
TestDRbUNIXCore#test_02_unknown: 100.00 s: E
TestDRbUNIXCore#test_03: 100.01 s: E
TestDRbUNIXCore#test_04: 100.00 s: E
TestDRbUNIXCore#test_05_eq: 100.00 s: E
TestDRbUNIXCore#test_06_timeout: 100.00 s: E
TestDRbUNIXCore#test_07_public_private_protected_missing: 100.00 s: E
TestDRbUNIXCore#test_08_here: 100.00 s: E
TestDRbUNIXCore#test_09_option: 100.01 s: E
TestDRbUNIXCore#test_10_yield: 100.00 s: E
TestDRbUNIXCore#test_10_yield_undumped: 100.00 s: E
TestDRbUNIXCore#test_11_remote_no_method_error: 100.00 s: E
TestDRbYield#test_01_one: 100.00 s: E
TestDRbYield#test_02_two: 100.00 s: E
TestDRbYield#test_03_many: 100.00 s: E
TestDRbYield#test_04_many_to_one: 100.01 s: E
TestDRbYield#test_05_array_subclass: 100.00 s: E
TestDRbYield#test_06_taint: 100.00 s: E
TestDataConverters#test_builtin_all_nested_combo_converter: 0.01 s: .
TestDataConverters#test_builtin_date_converter: 0.00 s: .
TestDataConverters#test_builtin_date_time_converter: 0.00 s: .

e$BD4$Y$F$_$k$H!"$I$&$b!"e(Bdrb e$B$N%F%9%H$G$O%>%s%S%W%m%;%9$,$?$/$5e(B
e$B$s$G$-$k$N$,LdBj$J$h$&$G$9!#e(B

% ps auxww|grep sh

akr 28244 0.0 0.0 0 0 p0 Z+ - 0:00.00 (sh)
akr 25870 0.0 0.0 0 0 p0 Z+ - 0:00.00 (sh)
akr 12199 0.0 0.0 0 0 p0 Z+ - 0:00.00 (sh)
akr 30743 0.0 0.0 0 0 p0 Z+ - 0:00.00 (sh)
akr 16391 0.0 0.0 0 0 p0 Z+ - 0:00.00 (sh)
akr 6884 0.0 0.0 0 0 p0 Z+ - 0:00.00 (sh)
akr 28045 0.0 0.0 0 0 p0 Z+ - 0:00.00 (sh)
akr 19354 0.0 0.0 0 0 p0 Z+ - 0:00.00 (sh)
akr 19739 0.0 0.0 0 0 p0 Z+ - 0:00.00 (sh)
akr 15979 0.0 0.0 0 0 p0 Z+ - 0:00.00 (sh)
akr 16803 0.0 0.0 0 0 p0 Z+ - 0:00.00 (sh)
akr 18280 0.0 0.0 0 0 p0 Z+ - 0:00.00 (sh)
akr 10880 0.0 0.0 0 0 p0 Z+ - 0:00.00 (sh)
akr 194 0.0 0.0 0 0 p0 Z+ - 0:00.00 (sh)
akr 7122 0.0 0.0 0 0 p0 Z+ - 0:00.00 (sh)
akr 16748 0.0 0.0 0 0 p0 Z+ - 0:00.00 (sh)
akr 28983 0.0 0.0 0 0 p0 Z+ - 0:00.00 (sh)
akr 3433 0.0 0.0 0 0 p0 Z+ - 0:00.00 (sh)
akr 24743 0.0 0.0 0 0 p0 Z+ - 0:00.00 (sh)
akr 10404 0.0 0.0 0 0 p0 Z+ - 0:00.00 (sh)
akr 7924 0.0 0.0 0 0 p0 Z+ - 0:00.00 (sh)
akr 22668 0.0 0.0 0 0 p0 Z+ - 0:00.00 (sh)
akr 30383 0.0 0.0 0 0 p0 Z+ - 0:00.00 (sh)
akr 7222 0.0 0.0 0 0 p0 Z+ - 0:00.00 (sh)
akr 20634 0.0 0.0 0 0 p0 Z+ - 0:00.00 (sh)

e$B$I$&$b!“e(BOpenBSD e$B$G$Oe(B (e$B$?$V$se(B)
e$B%G%U%)%k%H$G%W%m%;%9?t@)8B$,$”$Ce(B
e$B$F!"$=$l0J>e$K$J$C$F$$$k$He(B fork(2) e$B$,e(B EAGAIN
e$B$G<:GT$7$^$9!#e(B

e$B6qBNE*$K$O!"e(Bulimit e$B$GI=<($5$;$k$He(B maxproc e$B$,e(B 64
e$B$H=P$F$-$^$9!#e(B

% limit
cputime unlimited
filesize unlimited
datasize 512MB
stacksize 4MB
coredumpsize unlimited
memoryuse 1970MB
memorylocked 658MB
maxproc 64
descriptors 128

e$B$=$7$F!“e(Bruby e$B$Oe(B fork(2) e$B$,e(B EAGAIN
e$B$K$J$C$?$H$-!”:Fe(B
e$BD)@o$7$^$9!#e(B

e$B$3$Ne(B

  • e$B%W%m%;%9?t@)8Be(B
  • drb e$B$,%>%s%S%W%m%;%9$r:n$j$C$Q$J$7$K$9$ke(B
    e$B$H$$$&$N$,AH$_9g$o$5$k$H!"$$$D$^$G$?$C$F$be(B fork e$B$O<:GT$7B3$1e(B
    e$B$k$N$G!“e(Btimeout e$B$Ne(B
    100e$BIC$^$GBT$D$3$H$K$J$k!”$H$$$&$3$H$N$h$&e(B
    e$B$G$9!#e(B

e$B$3$N>uBV$G$O30It$+$ie(B (e$B$=$N%f!<%6$Ge(B?)
e$B%m%0%$%s$b=PMh$J$$$H$$e(B
e$B$&IT9,$J$3$H$K$J$j$^$9!#e(B

drb e$B$G%W%m%;%9$r:n$C$F$$$k$N$Oe(B lib/drb/extservm.rb e$B$Ne(B
invoke_service_command e$B$G8F$s$G$$$ke(B spawn e$B$G!"$3$l$,JV$9e(B pid
e$B$O;H$o$l$F$$$J$$$h$&$G$9!#e(B

pid e$B$r5-O?$7$F$*$$$F!“8e;OKv$r$9$k$H$-$Ke(B wait e$B$9$k$N$,E,@Z$@e(B
e$B$H;W$&$s$G$9$,!”$I$&$G$7$g$&$+!#e(B

e$B31$H$$$$$^$9!#e(B

e$BLBOG$r$+$1$F$7$^$C$F?=$7Lu$"$j$^$;$s!#e(B

On 2009/02/07, at 3:07, Tanaka A. wrote:

drb e$B$G%W%m%;%9$r:n$C$F$$$k$N$Oe(B lib/drb/extservm.rb e$B$Ne(B
invoke_service_command e$B$G8F$s$G$$$ke(B spawn e$B$G!"$3$l$,JV$9e(B
pid
e$B$O;H$o$l$F$$$J$$$h$&$G$9!#e(B

pid e$B$r5-O?$7$F$*$$$F!“8e;OKv$r$9$k$H$-$Ke(B wait e$B$9$k$Ne(B
e$B$,E,@Z$@e(B
e$B$H;W$&$s$G$9$,!”$I$&$G$7$g$&$+!#e(B

e$B=*N;CM$K6=L#$,$J$$$N$G!“e(Bwaite$B$7$J$$$G$9$`$J$i$=$l$K$3$7e(B
e$B$?$3$H$O$”$j$^$;$s!#e(B

SIGCHLDe$B$re(Bsig_igne$B$9$k$h$&$J$3$H!J$"$k$$$O$=$l$KAjEv$9$ke(B
e$B$3$H!K$O$G$-$^$9$+!)e(B
e$B$=$l$H$be(Bdouble forke$B$J$I$N0?"@-$,9b$=$&$J<j=g$rF’$`J}$,e(B
e$B$h$$$G$9$+!)e(B

On 2009/02/08, at 17:11, Masatoshi SEKI wrote:

e$B$,$h$$$G$9$+!)e(B
e$B$O$C!#e(B
Process.detach(pid)e$B$r;H$($P$h$$$H$$$&$3$H$G$7$g$&$+!#e(B

In article [email protected],
Masatoshi SEKI [email protected] writes:

Process.detach(pid)e$B$r;H$($P$h$$$H$$$&$3$H$G$7$g$&$+!#e(B

e$B$`$j$d$j;&$9$J$I$NI,MW$,@8$8$J$$$N$G$"$l$P!"e(BProcess.detach
e$B$G$$$$$+$b$7$l$^$;$s!#e(B

In article [email protected],
Tanaka A. [email protected] writes:

e$B$`$j$d$j;&$9$J$I$NI,MW$,@8$8$J$$$N$G$"$l$P!"e(BProcess.detach
e$B$G$$$$$+$b$7$l$^$;$s!#e(B

e$B$H$j$"$($:<!$N$h$&$K$7$F;n$7$?$H$3$m!"e(B100e$BICBT$?$J$/$F:Q$_!"e(B
drb e$B$N%F%9%H$O<:GT$7$J$$$h$&$K$J$j$^$7$?!#e(B

Index: lib/drb/extservm.rb

— lib/drb/extservm.rb (revision 22105)
+++ lib/drb/extservm.rb (working copy)
@@ -79,7 +79,7 @@ module DRb
@servers[name] = false
end
uri = @uri || DRb.uri

  •  spawn("#{command} #{uri} #{name}")
    
  •  Process.detach spawn("#{command} #{uri} #{name}")
    
    end
    end
    end

e$B31$H$$$$$^$9!#e(B

On 2009/02/08, at 18:20, Tanaka A. wrote:

Index: lib/drb/extservm.rb
end
end

e$B$"$j$,$H$&$4$6$$$^$9!#e(B
e$B$o$?$7$b<j85$GF1MM$JJQ99$7$F;n$7$F$^$7$?!#e(B
e$B$b$7$h$+$C$?$i!"$3$NJQ99$re(Bcommite$B$7$F$$$?$@$1$^$;$s$+e(B?

Windowse$B$NN`$G$O$I$&F0$/$s$@$m!#e(B