[mew-dist 24211] Re: ssh is not dead even with mew-ssh-keep-connection set to nil

Shun-ichi GOTO gotoh at example.com
2003年 11月 21日 (金) 19:00:32 JST


>>>>> at Fri, 21 Nov 2003 02:45:53 +0900 (JST),
>>>>> Katsuhiro Kondou <kondou at example.com> said,

> 最後のあたりだけを載せますが、
> 
> debug2: channel 2: rcvd close
> debug2: channel 2: close_read
> debug2: channel 2: input open -> closed
> debug2: channel 2: almost dead
> debug2: channel 2: gc: notify user
> debug2: channel 2: gc: user detached
> debug2: channel 2: send close
> debug2: channel 2: is dead
> debug2: channel 2: garbage collecting
> debug1: channel 2: free: client-session, nchannels 4
> 
> となりほぼ同じ状況です。

上のログのchannel 2 は client-session なわけですが、このチャネルは正常の
ようですね。exit 送出でsession をちゃんと閉じていると思われます。他に見
るべきはdirect tcp session (channel 3 かな?)の状態遷移です。問題は
client session は閉じられていてもdirect tcp sessionが残ってしまっている
ためにssh が終れない、というものだと思うので。



> } もちろんNetwork パケットキャプチャしてEmacs <-> SSH 間のやりとりを見てみ
> } るのもヒントになるかと思います。
> 
> これを取ってみて気になるところがありました。
> 
> 02:16:39.216209 127.0.0.1.1059 > 127.0.0.1.9906: P 52:58(6) ack 98 win 57344 <nop,nop,timestamp 221130 221124> (DF)
> 02:16:39.220284 127.0.0.1.9906 > 127.0.0.1.1059: P 98:143(45) ack 58 win 57344 <nop,nop,timestamp 221131 221130> (DF)
> 02:16:39.225893 127.0.0.1.9906 > 127.0.0.1.1059: F 143:143(0) ack 58 win 57344 <nop,nop,timestamp 221131 221130> (DF)
> 02:16:39.225916 127.0.0.1.1059 > 127.0.0.1.9906: . ack 144 win 57344 <nop,nop,timestamp 221131 221131> (DF)
> 
> 9906 -> 1059 で fin が飛んでいるのに、1059 -> 9906
> への fin がいつまで待っても戻ってきていないので、
> 待ちの状態となっているようです。TCP の実装に問題が
> あるのかもしれません。

これはこれで予想通りというか、先のメールでCLOSE_WAIT な状態だったわけで
すから、それを裏付けるものですね。ssh としては正常にFIN発行(close())して
いますので罪はないと思われるかな。となると、clientプログラム(Emacs) 側が
それを検知できないか、検知していても処理を間違ってるか、となります。とな
るとclient プログラムのロジックの問題かsocket library の問題となってしま
いますが、後者を信用するならばEmacs の問題ということ。でも、他のアプリケー
ションでもおきているとなると後者の可能性があがる。うーん、ですね。


Mew にて対処をするならば、POP server に対して QUIT を送る処理にて、QUIT 
に対するレスポンスを取得した後でpop のsession に対して(通常は自動で行な
われる) close 要求(process-send-eof)をしてあげられれば回避できるのではな
いかと思います。どこでそれをやるかのパッチの作成はお任せします > だれか

--- Regards,
 Shun-ichi Goto  <gotoh at example.com>
   R&D Group, TAIYO Corp., Tokyo, JAPAN



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