2006年7月11日

[ruby-list:42564] Re: IO::select() のdead lock ?

まつもと ゆきひろです

めったに起きない現象だそうですから、原因の特定は難しいかもし
れませんが。

In message "Re: [ruby-list:42563] IO::select() の dead lock ?"
on Tue, 11 Jul 2006 00:04:29 +0900, Hiroshi migimatsu ^^ writes:

| 切替元サーバは telnet コネクションが継続してるとみなして,
| データを送って来ているのですが,telnet クライアントはアド
| レスが変わった切替先のサーバに応答をしています.
|
| 切替元 [データ] --> Net::telnet --> [ACK] 切替先
| <-- [RST]
|     [ 再送 ] --> --> [ACK]
| <-- [RST]
| ...

うーむ。これはこれで難儀な...。

| この時,Net::telnet() 内 IO::select() にてデッドロックする
| 現象に悩まされています.telnet#cmd() がタイムアウトを検知
| しないばかりか,timeout ブロックで括ってもタイムアウト検知
| しません.

Net::telnet()内IO::selectというのはtelnet.rb何行目に登場する
IO::selectでしょうか。telnet.rbには3ヶ所selectが登場するので
すが、ふたつはwaitforメソッド、もうひとつはwriteメソッドです。

また、net/telnet自身はスレッドを使っていませんが、クライアン
トプログラムはスレッドを利用しているのでしょうか。その辺も関
係があるかもしれません。

まつもと ゆきひろ /:|)

投稿者 xml-rpc : 2006年7月11日 01:06
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/41474
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。