[#36069] 日本語に混じった URL を抜き出したい — keiichi matsunaga <ma2@...>

 松永です。

26 messages 2002/10/02
[#36072] Re: 日本語に混じった URL を抜き出したい — keiichi matsunaga <ma2@...> 2002/10/02

 松永です。

[#36073] Re: 日本語に混じった URL を抜き出したい — SAITO Shukaku <shukaku@...> 2002/10/02

At Wed, 2 Oct 2002 13:51:42 +0900,

[ruby-list:36171] Re: gc_sweepでアボート

From: 原田 潤 <j-harada@...4u.or.jp>
Date: 2002-10-18 06:52:56 UTC
List: ruby-list #36171
原田です。

原田 潤 <j-harada@hh.iij4u.or.jp> wrote:
> 問題のスクリプトを削っていって、再現スクリプトを作ってみようと思
> います。出来たらまたメールさせていただきます。
> 
> nobu.nakada@nifty.ne.jp wrote:
> > 私にもさっぱりですが、再現できる(なるべく小さい)スクリプト(とデー
> > タ?)はないでしょうか。

出来ました。たくさんのスレッドでsocketを使っているという条件で作
ってみたところ、添付したスクリプトで同じように再現しました。

========================
[j-harada@db185 AbortRuby]$ ruby test.rb
thread started(1)
thread started(2)
thread started(3)

      :(中略)

thread started(99)
+++ Now running threads...100
thread started(100)
+++ Now running threads...100
/usr/lib/ruby/1.6/timeout.rb:35: [BUG] gc_sweep(): unknown data type 48
ruby 1.6.8 (2002-10-10) [i686-linux]
アボートしました
[j-harada@db185 AbortRuby]$
========================

#スクリプト中でローカルホストにECHOで接続していますので、
#環境によってはinetdの設定が必要かもしれません。

--
原田 潤
j-harada@hh.iij4u.or.jp

Attachments (1)

AbortTest.rb (508 Bytes, text/x-ruby)
require 'socket'
require 'timeout'

time_out = 60
threads = []

(1 .. 100).each{|i|
  threads.push(Thread.start{
		 printf("thread started(%d)\n", i)
		 sock = nil

		 # connect localhost(port:echo)
		 sock = TCPSocket.open('127.0.0.1', '7')
		 (1 .. 100).each do
		   sock.print("012345\n")
		   timeout(time_out){
		     line = sock.gets
		   }
		 end

		 sock.close
	       })
}


until threads == []
  printf("+++ Now running threads...%d\n", threads.size)
  threads.reject!{|t| !t.alive?}
  sleep 5
end

In This Thread