From: yamamoto madoka Date: 2003-08-11T21:38:49+09:00 Subject: [ruby-dev:21179] [BUG]net/httpでBUG こんにちは、山本 円と申します。 スレッドとnet/httpとを使ったプログラムにて BUGが見つかりましたので報告いたします。 プログラムは、数の変化する多数のスレッドの その一つ一つでnet/httpを使用しています。 BUGのメッセージは以下の通りです。 /usr/local/lib/ruby/1.8/net/http.rb:892: [BUG] Segmentation fault ruby 1.8.0 (2003-08-11) [i686-linux] Aborted 今回は再現プログラムがありますのでやってみていただけると 早いかと思います。 ただ、プログラムの性質上ものすごくHTTPサーバーの負荷になりますので 大丈夫なサーバーがある方に試していただきたく思います。 以下、再現プログラムです。25行目のHTTP.getの引数を書き換えてご使用ください。 #!ruby -Ks require 'net/http' $DEBUG = TRUE latestTime = 0 threadSize = 10 while true arr = [] if latestTime > 45 p threadSize /= 0.8 else p threadSize *= 1.2 end threadSize.to_i.times{ arr << Thread.start{ breakFlag = false 10.times{ begin startTime = Time.now ret = Net::HTTP.get('dokkanoserver', "/") score = Time.now - startTime latestTime = score if latestTime < score rescue sleep 1 else breakFlag = true break end } raise if breakFlag == false } } arr.each {|t| t.join} end 山本 円 dan@xa2.so-net.ne.jp