Net/imap uses Thread#raise

net/imap e$B$,860x$@$H;W$&$N$G$9$,!"e(B

make test-all e$B$Ge(B test_eucjp(TestKconv) e$B$,e(B net/imap
e$B4XO"$N%P%Ce(B
e$B%/%H%l!<%9$,$D$$$Fe(B
OpenSSL::SSL::SSLError: SSL_read:: certificate verify failed
e$B$H$$$&Nc30$G%(%i!<$K$J$C$?$j!"e(B

http://www.rubyist.net/~akr/chkbuild/debian-sarge/ruby-trunk/log/20080513T002703.txt.gz
:

  1. Error:
    test_eucjp(TestKconv):
    OpenSSL::SSL::SSLError: SSL_read:: certificate verify failed
    /home/akr/chkbuild/tmp/build/ruby-trunk/20080513T002703/ruby/.ext/common/openssl/buffering.rb:35:in
    sysread' /home/akr/chkbuild/tmp/build/ruby-trunk/20080513T002703/ruby/.ext/common/openssl/buffering.rb:35:in fill_rbuff’
    /home/akr/chkbuild/tmp/build/ruby-trunk/20080513T002703/ruby/.ext/common/openssl/buffering.rb:106:in
    gets' /home/akr/chkbuild/tmp/build/ruby-trunk/20080513T002703/ruby/lib/net/imap.rb:1012:in get_response’
    /home/akr/chkbuild/tmp/build/ruby-trunk/20080513T002703/ruby/lib/net/imap.rb:955:in
    receive_responses' /home/akr/chkbuild/tmp/build/ruby-trunk/20080513T002703/ruby/lib/net/imap.rb:948:in block in initialize’

make test-all e$B$,EbFM$K=*$o$C$F$7$^$C$?$j$7$^$9!#e(B

http://www.rubyist.net/~akr/chkbuild/debian-sarge/ruby-trunk/log/20080518T034301.txt.gz
:


test_encode_utf7(IMAPTest): .
test_imaps_post_connection_check(IMAPTest): .
test_imaps_unknown_ca(IMAPTest): .
test_imaps_verify_none(IMAPTest): .
test_imaps_with_ca_file(IMAPTest): .
test_starttls(IMAPTest): E
test_eucjp(TestKconv): .
test_jis(TestKconv): .
test_shiftjis(TestKconv): .
test_utf8(TestKconv): .
/home/akr/chkbuild/tmp/build/ruby-trunk/20080518T034301/ruby/.ext/common/openssl/buffering.rb:35:in
sysread': SSL_read:: certificate verify failed (OpenSSL::SSL::SSLError) from /home/akr/chkbuild/tmp/build/ruby-trunk/20080518T034301/ruby/.ext/common/openssl/buffering.rb:35:in fill_rbuff’
from
/home/akr/chkbuild/tmp/build/ruby-trunk/20080518T034301/ruby/.ext/common/openssl/buffering.rb:106:in
gets' from /home/akr/chkbuild/tmp/build/ruby-trunk/20080518T034301/ruby/lib/net/imap.rb:1012:in get_response’
from
/home/akr/chkbuild/tmp/build/ruby-trunk/20080518T034301/ruby/lib/net/imap.rb:955:in
receive_responses' from /home/akr/chkbuild/tmp/build/ruby-trunk/20080518T034301/ruby/lib/net/imap.rb:948:in block in initialize’

test/net/imap/test_imap.rb e$B$r$$$8$C$F3N<B$Ke(B disconnect e$B$5$;e(B
e$B$k$h$&$K$7$?$j$b$7$?$N$G$9$,!"$I$&$b>I>u$,>C$($^$;$s!#e(B

e$BD4$Y$F$$k$H!“$I$&$be(B net/imap e$B$OFbIt$Ge(B @receiver_thread
e$B$H$$e(B
e$B$&%9%l%C%I$r:n$C$F$$$F!”$=$l$,Nc30$K$J$C$?;~$K!“%/%i%$%”%s%He(B
e$BB&$N%9%l%C%I$Ke(B Thread#raise e$B$GNc30$rH/@8$5$;D>$9$H$$$&$3$H$re(B
e$B$d$C$F$$$k$h$&$G$9!#$=$N7k2L!"%?%$%
%s%0$K$h$C$F$O!“$?$H$($Pe(B
test_eucjp e$B$N:GCf$K5/$3$l$P:G=i$NNc$N$h$&$J%(%i!<$H$J$j!”$^e(B
e$B$?!“%F%9%H$H%F%9%H$N9g4V$K5/$3$l$Pe(B test-all e$B$N%W%m%;%9<+?H$,e(B
e$B=*N;$7$F$7$^$&!”$H$$$&$3$H$N$h$&$G$9!#e(B

e$B$G!“;W$&$N$G$9$,!”$^$:$=$b$=$be(B Thread#raise e$B$r;H$&$N$O$h$m$7e(B
e$B$/$“$j$^$;$s!#$7$P$i$/A0$K!“e(B[ruby-talk:292398]
e$B$G;O$^$k%9%l%Ce(B
e$B%I$,$”$j!”;d$b2?DL$+=q$-$^$7$?$,!“$I$N%?%$%_%s%0$G5/$3$k$+$oe(B
e$B$+$i$J$$Nc30$OBP=h$,:$Fq$@$H;W$$$^$9!#$b$7$&$^$/BP=h$G$-$k$He(B
e$B$$$&$N$G$”$l$P!"$<$RJ}K!$r65$($F$/$@$5$$!#e(B

e$B;d$H$7$F$O!"e(BThread#raise e$B$r;H$&$N$O;_$a$F!“Nc30$O$=$N$^$^%9e(B
e$B%l%C%I$r=*N;$5$;$k$h$&$K$7!“e(Bdisconnect e$B$”$?$j$Ge(B join
e$B$9$k$3e(B
e$B$H$K$h$j%/%i%$%”%s%HB&$KNc30$r0$9$N$,NI$$$N$G$O$J$$$+$H;W$$e(B
e$B$^$9!#e(B

e$BA0ED$G$9!#e(B

2008/05/19 0:21 Tanaka A. [email protected]:

e$B$G!“;W$&$N$G$9$,!”$^$:$=$b$=$be(B Thread#raise e$B$r;H$&$N$O$h$m$7e(B
e$B$/$“$j$^$;$s!#$7$P$i$/A0$K!“e(B[ruby-talk:292398] e$B$G;O$^$k%9%l%Ce(B
e$B%I$,$”$j!”;d$b2?DL$+=q$-$^$7$?$,!“$I$N%?%$%_%s%0$G5/$3$k$+$oe(B
e$B$+$i$J$$Nc30$OBP=h$,:$Fq$@$H;W$$$^$9!#$b$7$&$^$/BP=h$G$-$k$He(B
e$B$$$&$N$G$”$l$P!"$<$RJ}K!$r65$($F$/$@$5$$!#e(B

e$B;d$H$7$F$O!"e(BThread#raise e$B$r;H$&$N$O;_$a$F!“Nc30$O$=$N$^$^%9e(B
e$B%l%C%I$r=*N;$5$;$k$h$&$K$7!“e(Bdisconnect e$B$”$?$j$Ge(B join e$B$9$k$3e(B
e$B$H$K$h$j%/%i%$%”%s%HB&$KNc30$r0$9$N$,NI$$$N$G$O$J$$$+$H;W$$e(B
e$B$^$9!#e(B

e$B8=>u$NLdBj$K$D$$$F$O$*$C$7$c$kDL$j$@$H;W$$$^$9$,!“>e5-$NBP1~$G$OIT==J,$Je(B
e$B5$$,$7$^$9!#e(B
e$B%j%/%(%9%H$rH/9T$7$?%9%l%C%I$,%l%9%]%s%9BT$A$K$J$C$F$$$k;~$K!”<u?.%9%l%C%Ie(B
e$B$GNc30$,H/@8$7$?$H$9$k$H!">e5-$NBP1~$G$O%j%/%(%9%H$rH/9T$7$?%9%l%C%Ie(B
e$B$,%V%m%C%/$7$F$7$^$&e(B(e$B$N$Ge(Bdisconnecte$B$^$G9T$+$J$$e(B)e$B$N$G$O$J$$$+$H;W$$$^$9!#e(B

e$BNc30$NH/@8$re(BThread#raisee$B$G$O$J$/e(B@response_arrival.broadcaste$B$Ge(B
e$BDLCN$9$k$H>e<j$/9T$/$N$G$O$J$$$+$H;W$$$^$9$,!“$A$g$C$H=$@5$K;~4V$,$+$+$j$=$&$G$9!#e(B
e$BB>$K1F6A$,$”$k$N$G!“$H$j$”$($:%F%9%H$r%9%-%C%W$9$k$h$&$K$7$?J}$,$h$$$G$7$g$&$+!#e(B

e$B=$@5$9$k$N$rK:$l$=$&$J$N$Ge(BRedminee$B$K%A%1%C%H$rEPO?$7$F$*$-$?$$$H$3$m$G$9$,!"e(B

e$B$b$&;H$($k$s$G$9$C$1!#e(B

In article
[email protected],
“Shugo M.” [email protected] writes:

e$B8=>u$NLdBj$K$D$$$F$O$*$C$7$c$kDL$j$@$H;W$$$^$9$,!“>e5-$NBP1~$G$OIT==J,$Je(B
e$B5$$,$7$^$9!#e(B
e$B%j%/%(%9%H$rH/9T$7$?%9%l%C%I$,%l%9%]%s%9BT$A$K$J$C$F$$$k;~$K!”<u?.%9%l%C%Ie(B
e$B$GNc30$,H/@8$7$?$H$9$k$H!">e5-$NBP1~$G$O%j%/%(%9%H$rH/9T$7$?%9%l%C%Ie(B
e$B$,%V%m%C%/$7$F$7$^$&e(B(e$B$N$Ge(Bdisconnecte$B$^$G9T$+$J$$e(B)e$B$N$G$O$J$$$+$H;W$$$^$9!#e(B

e$B$J$k$[$I!#e(B

e$BNc30$NH/@8$re(BThread#raisee$B$G$O$J$/e(B@response_arrival.broadcaste$B$Ge(B
e$BDLCN$9$k$H>e<j$/9T$/$N$G$O$J$$$+$H;W$$$^$9$,!“$A$g$C$H=$@5$K;~4V$,$+$+$j$=$&$G$9!#e(B
e$BB>$K1F6A$,$”$k$N$G!“$H$j$”$($:%F%9%H$r%9%-%C%W$9$k$h$&$K$7$?J}$,$h$$$G$7$g$&$+!#e(B

e$B$=$&$G$9$M!#%9%-%C%W$G$b$$$$$G$9$7!“$=$&$G$J$/$F$b$H$b$+$/B>e(B
e$B$N%F%9%H$K1F6A$r5Z$$5$J$$$h$&$K$7$F$$$?$@$1$k$H$”$j$,$?$$$Ge(B
e$B$9!#e(B

e$B$H$/$Ke(B test-all e$B$N%W%m%;%9$rCfCG$5$;$F$7$^$&$N$O$I$&$K$+$J$ie(B
e$B$J$$$b$N$+$H;W$C$F$$$^$9!#e(B

test e$BB&$Ne(B ensure e$B$Ge(B instance_eval e$B$7$Fe(B
@receiver_thread e$B$r<he(B
e$B$j=P$7$Fe(B kill e$B$7$Fe(B join e$B$9$k$N$,4JC1$+$J$!e(B

e$BA0ED$G$9!#e(B

2008/05/21 18:32 Tanaka A. [email protected]:

e$BNc30$NH/@8$re(BThread#raisee$B$G$O$J$/e(B@response_arrival.broadcaste$B$Ge(B
e$BDLCN$9$k$H>e<j$/9T$/$N$G$O$J$$$+$H;W$$$^$9$,!“$A$g$C$H=$@5$K;~4V$,$+$+$j$=$&$G$9!#e(B
e$BB>$K1F6A$,$”$k$N$G!“$H$j$”$($:%F%9%H$r%9%-%C%W$9$k$h$&$K$7$?J}$,$h$$$G$7$g$&$+!#e(B

e$B$=$&$G$9$M!#%9%-%C%W$G$b$$$$$G$9$7!“$=$&$G$J$/$F$b$H$b$+$/B>e(B
e$B$N%F%9%H$K1F6A$r5Z$$5$J$$$h$&$K$7$F$$$?$@$1$k$H$”$j$,$?$$$Ge(B
e$B$9!#e(B

e$B$H$j$"$($:!“e(BThread#raisee$B$O;H$o$J$$$h$&$K=$@5$7$^$7$?!#e(B
e$B$A$c$s$H=$@5$G$-$?$+<+?.$O$J$$$G$9$,!”%F%9%H$O;_$^$i$J$/$J$C$?$h$&$K8+$($^$9!#e(B

test-alle$B$@$H$J$<$+e(Btest_starttlse$B$G%3%1$F$7$^$&$h$&$G$9$,!D!#e(B

e$BA0ED$G$9!#e(B

2008/05/22 11:50 Nobuyoshi N. [email protected]:

test e$BB&$Ne(B ensure e$B$Ge(B instance_eval e$B$7$Fe(B @receiver_thread e$B$r<he(B
e$B$j=P$7$Fe(B kill e$B$7$Fe(B join e$B$9$k$N$,4JC1$+$J$!e(B

e$B$I$A$i$+$H$$$&$H!"e(Btimeout.rbe$BF1MMe(Bclient_threade$B$Ge(Breceiver_threade$B$re(B
kille$B$9$Y$-$J$s$8$c$J$$$G$7$g$&$+!#e(B

e$B%F%9%H$G$O$J$/e(BNet::IMAP#disconnecte$B$H$+$G$=$&$9$k$H$$$&0UL#$G$9$+e(B?

e$B$J$+$@$G$9!#e(B

At Wed, 21 May 2008 18:32:09 +0900,
Tanaka A. wrote in [ruby-dev:34791]:

test e$BB&$Ne(B ensure e$B$Ge(B instance_eval e$B$7$Fe(B @receiver_thread e$B$r<he(B
e$B$j=P$7$Fe(B kill e$B$7$Fe(B join e$B$9$k$N$,4JC1$+$J$!e(B

e$B$I$A$i$+$H$$$&$H!"e(Btimeout.rbe$BF1MMe(Bclient_threade$B$Ge(Breceiver_threade$B$re(B
kille$B$9$Y$-$J$s$8$c$J$$$G$7$g$&$+!#e(B

e$B$J$+$@$G$9!#e(B

At Thu, 22 May 2008 19:24:18 +0900,
Shugo M. wrote in [ruby-dev:34804]:

test e$BB&$Ne(B ensure e$B$Ge(B instance_eval e$B$7$Fe(B @receiver_thread e$B$r<he(B
e$B$j=P$7$Fe(B kill e$B$7$Fe(B join e$B$9$k$N$,4JC1$+$J$!e(B

e$B$I$A$i$+$H$$$&$H!"e(Btimeout.rbe$BF1MMe(Bclient_threade$B$Ge(Breceiver_threade$B$re(B
kille$B$9$Y$-$J$s$8$c$J$$$G$7$g$&$+!#e(B

e$B%F%9%H$G$O$J$/e(BNet::IMAP#disconnecte$B$H$+$G$=$&$9$k$H$$$&0UL#$G$9$+e(B?

e$B8e;OKv$r$9$k$H$3$m$H$$$&$H$=$3$G$9$+$M$’!#e(B

e$BA0ED$G$9!#e(B

2008/05/23 0:09 Nobuyoshi N. [email protected]:

test e$BB&$Ne(B ensure e$B$Ge(B instance_eval e$B$7$Fe(B @receiver_thread e$B$r<he(B
e$B$j=P$7$Fe(B kill e$B$7$Fe(B join e$B$9$k$N$,4JC1$+$J$!e(B

e$B$I$A$i$+$H$$$&$H!"e(Btimeout.rbe$BF1MMe(Bclient_threade$B$Ge(Breceiver_threade$B$re(B
kille$B$9$Y$-$J$s$8$c$J$$$G$7$g$&$+!#e(B

e$B%F%9%H$G$O$J$/e(BNet::IMAP#disconnecte$B$H$+$G$=$&$9$k$H$$$&0UL#$G$9$+e(B?

e$B8e;OKv$r$9$k$H$3$m$H$$$&$H$=$3$G$9$+$M$'!#e(B

disconnecte$B$Ge(Bkille$B$9$k$N$O5$$,?J$_$^$;$s!#e(B

Thread#kille$B$O$I$&$7$h$&$b$J$$;~0J30$O;H$&$Y$-$G$O$J$$$H;W$$$^$9!#e(B

disconnecte$B$G$O%=%1%C%H$re(Bclosee$B$7$F$$$k$N$Ge(Breceiver_threade$B$O=*N;$9$k$O$:e(B
e$B$G$9!#e(B
e$B$=$&$J$C$F$$$J$$$H$9$k$H!"e(Bkille$B$r8F$V$h$&$K$9$kA0$K!“B>$K=$@5$9$Y$-$H$3$m$,e(B
e$B$”$k$s$8$c$J$$$+$H;W$$$^$9!#e(B

In article
[email protected],
“Shugo M.” [email protected] writes:

disconnecte$B$G$O%=%1%C%H$re(Bclosee$B$7$F$$$k$N$Ge(Breceiver_threade$B$O=*N;$9$k$O$:e(B
e$B$G$9!#e(B
e$B$=$&$J$C$F$$$J$$$H$9$k$H!"e(Bkille$B$r8F$V$h$&$K$9$kA0$K!“B>$K=$@5$9$Y$-$H$3$m$,e(B
e$B$”$k$s$8$c$J$$$+$H;W$$$^$9!#e(B

disconnect e$B$r1[$($Fe(B receiver_thread e$B$,@8$-;D$i$J$$$H$$$&@-<Ae(B
e$B$O$"$C$F$$$$$s$8$c$J$$$+$H;W$$$^$9!#e(B

e$B:#2s$Oe(B receiver_thread e$B$,e(B Thread#raise
e$B$r;H$C$F$$$?$N$GJQ$Je(B
e$B$3$H$,5/$-$^$7$?$,!"$3$l$r;H$o$J$/$F$b!"e(B

  • e$BC/$+$,e(B Thread.abort_on_exception e$B$r@_Dj$7$F$*$j!"e(B
  • receiver_thread e$B$,Nc30$G=*N;$9$ke(B
    e$B>l9g$K!"F1MM$N$3$H$,5/$3$j$^$9!#e(B

disconnect e$B$Oe(B close e$B$G%(%i!<$,5/$3$k$He(B join
e$B$7$^$;$s$,!"e(B
e$B%(%i!<$,5/$-$F$be(B join e$B$9$k$H$$$&$N$O$I$&$G$9$+$M$'!#e(B

e$B$"!"e(Bkill e$B$OHr$1$?$[$&$,$$$$$H;d$b;W$$$^$9!#e(B

e$BA0ED$G$9!#e(B

2008/05/23 8:44 Tanaka A. [email protected]:

disconnecte$B$G$O%=%1%C%H$re(Bclosee$B$7$F$$$k$N$Ge(Breceiver_threade$B$O=*N;$9$k$O$:e(B
e$B$G$9!#e(B
e$B$=$&$J$C$F$$$J$$$H$9$k$H!"e(Bkille$B$r8F$V$h$&$K$9$kA0$K!“B>$K=$@5$9$Y$-$H$3$m$,e(B
e$B$”$k$s$8$c$J$$$+$H;W$$$^$9!#e(B

disconnect e$B$r1[$($Fe(B receiver_thread e$B$,@8$-;D$i$J$$$H$$$&@-<Ae(B
e$B$O$"$C$F$$$$$s$8$c$J$$$+$H;W$$$^$9!#e(B

e$B$=$&$G$-$k$H$h$$$G$9$M!#e(B

e$B:#2s$Oe(B receiver_thread e$B$,e(B Thread#raise e$B$r;H$C$F$$$?$N$GJQ$Je(B
e$B$3$H$,5/$-$^$7$?$,!"$3$l$r;H$o$J$/$F$b!"e(B

  • e$BC/$+$,e(B Thread.abort_on_exception e$B$r@_Dj$7$F$*$j!"e(B
  • receiver_thread e$B$,Nc30$G=*N;$9$ke(B
    e$B>l9g$K!"F1MM$N$3$H$,5/$3$j$^$9!#e(B

e$B$3$l$K$D$$$F$O!"e(Breceiver_threade$B$G<B9T$9$k%a%=%C%I$NA4BN$re(Brescuee$B$9$k$/$i$$$G$9$+$M$(!#e(B

disconnect e$B$Oe(B close e$B$G%(%i!<$,5/$3$k$He(B join e$B$7$^$;$s$,!"e(B
e$B%(%i!<$,5/$-$F$be(B join e$B$9$k$H$$$&$N$O$I$&$G$9$+$M$'!#e(B

e$B$=$l$O$$$$$H;W$&$N$G$9$,!“>e5-$NNc$K$D$$$F$O2r7h$7$J$$$h$&$K;W$$$^$9!#e(B
e$B$”$H!"e(Breceiver_threade$B$,=*N;$7$J$$%1!<%9$G$O!"e(Bdisconnecte$B$,%V%m%C%/$9$k$3$H$K$J$j$^$9$M!#e(B