[Mew-dist 14042] Re: connection failed

Shuichi KITAGUCHI ( 北口修一 ) kit at example.com
2000年 9月 3日 (日) 02:05:14 JST


北口です。

結論から書きますと、なぜかあれ以来、異常な状態になることがほとんど
なくなって、実用上困らなくなっています。稀に "connection failed" が
出ても、連続して出ることがありません。

また、Wanderlust でやってみても "connection failed" となる場合がある
ようなので、Mew は関係なさそうです。
というわけで、お騒がせしてすみません。


なのですが、いちおうわかったことを書いておきます。

かず> 改造後、"connection failed" が発生し、エラーを拾えた。エラー番号は、0 
かず> で未定義。しばし悩む。(FreeBSD のやることは、よー分からんとも邪推する。)

かず> あ、Emacs 20.7 の IPv6 パッチ間違っているやん。エラーのとき必ず 0 が戻
かず> るぞ。Emacs 21 もそう。

IPv6 パッチを

     ret = connect(s, lres->ai_addr, lres->ai_addrlen);
     if (ret){
+      xerrno = errno;
       close(s);
       s= -1;
       continue;

と修正して頑張って再現させてみると、

  connection failed, interrupted system call

と、EINTR が返ってきています。元のコードは EINTR が返ってきたら loop
に飛んでもう一度 connect するようですが、IPv6 パッチの方はエラーだと
continue して次の for に行っちゃうので、それっきりになるようですね。


--
Shuichi Kitaguchi <kit at example.com>



Mew-dist メーリングリストの案内