[mew-dist 24208] Re: ssh is not dead even with mew-ssh-keep-connection set to nil
Katsuhiro Kondou
kondou at example.com
2003年 11月 21日 (金) 02:45:53 JST
In article <20031119.161040.81456834.gotoh at example.com>,
Shun-ichi GOTO <gotoh at example.com> wrote;
} これは、Emacs 上からではなく、shell からport-forwarding 付きでssh を使用
} している場合にも起きる、ということでしょうか?
ええ。
} それであればEmacs / Mew 側の問題の可能性はかなり減ります。
私もそう思っています。
} ちなみに先方のpop server はナニでしょうか?
qpopper 4.0.4 です。
} あと、Mew がport-forwarding を利用している間は M-x list-processes
} すると以下のようなsession が存在していることがわかるはずですが、
} 件の症状が発生している時はどうでしょうか?
こんな状態です。
Proc Status Buffer Tty Command
---- ------ ------ --- -------
mew-ssh-info-:192.168.1.20:127.0.0.1:110:9906 run *Mew* ssh /dev/ttyp2 ssh -x -vv -o NumberOfPasswordPrompts 3 -L9906:127.0.0.1:110 192.168.1.20
} またその状態で
} (process-send-eof (get-buffer-process "xxxx"))
} するとセッションは切れるのではないかと思いますが、どうでしょう?
確かに切れます。
} たやりとりが見てとれるわけです。異常が出ている時の-vv出力から eof のsend/recv
} の動きと、状態の遷移がどうなっているのか、がヒントになるのではないかなと
} 思います。
最後のあたりだけを載せますが、
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
となりほぼ同じ状況です。
} もちろん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 の実装に問題が
あるのかもしれません。
--
Katsuhiro Kondou
Mew-dist メーリングリストの案内