[#42508] [Ruby 1.9-Bug#4013][Open] rake/test_tasks.rb fails if ENV assined test value — Akio Tajima <redmine@...>
Bug #4013: rake/test_tasks.rb fails if ENV assined test value
7 messages
2010/11/01
[#42520] GC issues — SASADA Koichi <ko1@...>
ささだです。
6 messages
2010/11/03
[#42551] [Ruby 1.9-Bug#4034][Open] format() の %a 指定子での丸めが常に零方向になっている — tadayoshi funaba <redmine@...>
Bug #4034: format() の %a 指定子での丸めが常に零方向になっている
5 messages
2010/11/07
[#42564] [Ruby 1.9-Feature#4043][Open] グローバル関数current_classの提案 — Makoto Kishimoto <redmine@...>
Feature #4043: =E3=82=B0=E3=83=AD=E3=83=BC=E3=83=90=E3=83=AB=E9=96=A2=E6=95=
15 messages
2010/11/11
[#42774] Re: [Ruby 1.9-Feature#4043][Open] グローバル関数current_classの提案
— Yukihiro Matsumoto <matz@...>
2010/12/16
まつもと ゆきひろです
[#42834] Re: [Ruby 1.9-Feature#4043][Open] グローバル関数current_classの提案
— "KISHIMOTO, Makoto" <ksmakoto@...4u.or.jp>
2010/12/21
きしもとです
[#42835] Re: [Ruby 1.9-Feature#4043][Open] グローバル関数current_classの提案
— Yukihiro Matsumoto <matz@...>
2010/12/21
まつもと ゆきひろです
[#42838] Re: [Ruby 1.9-Feature#4043][Open] グローバル関数current_classの提案
— "KISHIMOTO, Makoto" <ksmakoto@...4u.or.jp>
2010/12/21
きしもとです
[#42845] Re: [Ruby 1.9-Feature#4043][Open] グローバル関数current_classの提案
— Yukihiro Matsumoto <matz@...>
2010/12/21
まつもと ゆきひろです
[#42849] Re: [Ruby 1.9-Feature#4043][Open] グローバル関数current_classの提案
— "U.Nakamura" <usa@...>
2010/12/22
こんにちは、なかむら(う)です。
[#42577] Rubyのバグレポートのガイドライン — "Shota Fukumori (sora_h)" <sorah@...>
sora_hです。
11 messages
2010/11/15
[#42588] Re: Rubyのバグレポートのガイドライン
— Yugui <yugui@...>
2010/11/18
2010/11/15 Shota Fukumori (sora_h) <sorah@tubusu.net>:
[#42589] Re: Rubyのバグレポートのガイドライン
— "Shota Fukumori (sora_h)" <sorah@...>
2010/11/18
元を書いてくれたmame3の様子をみてドラフトを外してみようかと思います。
[#42601] [Ruby 1.9-Bug#4072][Open] dRubyで作成したサーバプログラムがsleepしていてもexitしてしまう — 三村 益隆 <redmine@...>
Bug #4072: dRubyで作成したサーバプログラムがsleepしていてもexitしてしまう
7 messages
2010/11/19
[#42625] [Ruby 1.9-Feature#4089][Open] Add addr2line for C level backtrace — Yui NARUSE <redmine@...>
Feature #4089: Add addr2line for C level backtrace
6 messages
2010/11/26
[#42638] Enumerable#categorize — Tanaka Akira <akr@...>
enumerable から hash を生成するメソッドとして
25 messages
2010/11/27
[#42639] Re: Enumerable#categorize
— Urabe Shyouhei <shyouhei@...>
2010/11/27
(2010/11/27 18:45), Tanaka Akira wrote:
[#42643] Re: Enumerable#categorize
— Yukihiro Matsumoto <matz@...>
2010/11/27
まつもと ゆきひろです
[#42644] Re: Enumerable#categorize
— Tanaka Akira <akr@...>
2010/11/27
2010年11月27日23:19 Yukihiro Matsumoto <matz@ruby-lang.org>:
[#42645] Re: Enumerable#categorize
— Yukihiro Matsumoto <matz@...>
2010/11/27
まつもと ゆきひろです
[#42646] Re: Enumerable#categorize
— Tanaka Akira <akr@...>
2010/11/27
2010年11月27日23:51 Yukihiro Matsumoto <matz@ruby-lang.org>:
[#42656] [Request for Comment] avoid timer thread — SASADA Koichi <ko1@...>
Hi,
1 message
2010/11/29
[ruby-dev:42540] [Ruby 1.9-Bug#4027][Open] Signal.trap で busy loop に陥る
From:
Tomoyuki Chikanaga <redmine@...>
Date:
2010-11-05 10:40:46 UTC
List:
ruby-dev #42540
Bug #4027: Signal.trap で busy loop に陥る
http://redmine.ruby-lang.org/issues/show/4027
起票者: Tomoyuki Chikanaga
ステータス: Open, 優先度: Normal
カテゴリ: core
ruby -v: ruby 1.9.3dev (2010-10-29 trunk 29626) [i686-linux]
Signal.trap のシグナルハンドラ内で Mutex(Monitor) を用いる調査をしていて
稀にインタプリタが CPU を占有して busy loop 状態になることがありました。
あまり小さく絞れていませんが再現させたスクリプトを添付します。
元々はこれで時々 ThreadError: deadlock; recursive locking になるのを
避ける方法を考えるために実験していたのですが、ごく稀にインタプリタが止まり、
gdb attach すると下記のスタックトレースを得ました。
環境は
Red Hat Enterprise Linux ES release 3 (Taroon Update 8)
Linux 2.4.21-47.ELsmp #1 SMP Wed Jul 5 20:38:41 EDT 2006 i686 i686 i386 GNU/Linux
です。
また signal_buff という変数の内容がおかしいと思い表示させてみると
(gdb) p signal_buff
$1 = {cnt = {0 <repeats 65 times>}, size = -1}
のように signal_buff.size がアンダーフローしているようです。
sighandler() で signal_buff.cnt[sig] と signal_buff.size を increment しているところを
rb_disable_interrupt() で保護しないといけないのでしょうか?
そのようなパッチを当てて追試してみて今のところ再現していませんが、
元々なかなか起きていなかったので直ったのかははっきりしません。
(gdb) where
#0 0x00cb3007 in sched_yield () from /lib/tls/libc.so.6
#1 0x081524fc in rb_threadptr_execute_interrupts_rec (th=0x83da590, sched_depth=0) at thread.c:1253
#2 0x081526d7 in rb_threadptr_execute_interrupts (th=0x83da590) at thread.c:1318
#3 0x0814819c in vm_call0 (th=0x83da590, recv=0, id=792, argc=0, argv=0x0, me=0x84140a8) at vm_eval.c:146
#4 0x08148f19 in rb_call0 (recv=0, mid=792, argc=0, argv=0x0, scope=CALL_FCALL, self=6) at vm_eval.c:235
#5 0x08148e6c in rb_call (recv=0, mid=792, argc=0, argv=0x0, scope=CALL_FCALL) at vm_eval.c:438
#6 0x08148fb8 in rb_funcall (recv=0, mid=792, n=0) at vm_eval.c:637
#7 0x0808c997 in rb_obj_inspect (obj=0) at object.c:442
#8 0x08144949 in call_cfunc (func=0x808c83d <rb_obj_inspect>, recv=0, len=0, argc=0, argv=0x0) at vm_insnhelper.c:319
#9 0x08147e8a in vm_call0 (th=0x83da590, recv=0, id=800, argc=0, argv=0x0, me=0x8410700) at vm_eval.c:79
#10 0x08148f19 in rb_call0 (recv=0, mid=800, argc=0, argv=0x0, scope=CALL_FCALL, self=6) at vm_eval.c:235
#11 0x08148e6c in rb_call (recv=0, mid=800, argc=0, argv=0x0, scope=CALL_FCALL) at vm_eval.c:438
#12 0x08148fb8 in rb_funcall (recv=0, mid=800, n=0) at vm_eval.c:637
#13 0x0808c5cf in rb_inspect (obj=0) at object.c:356
#14 0x0807811d in rb_p (obj=0) at io.c:6196
#15 0x08078279 in rb_f_p (argc=1, argv=0xb7282028, self=138456320) at io.c:6234
#16 0x08144936 in call_cfunc (func=0x8078245 <rb_f_p>, recv=138456320, len=-1, argc=1, argv=0xb7282028) at vm_insnhelper.c:316
#17 0x08144821 in vm_call_cfunc (th=0x83da590, reg_cfp=0xb7301f84, num=1, recv=138456320, blockptr=0x0, me=0x84461f0) at vm_insnhelper.c:403
#18 0x08143f49 in vm_call_method (th=0x83da590, cfp=0xb7301f84, num=1, blockptr=0x0, flag=8, id=6160, me=0x84461f0, recv=138456320) at vm_insnhelper.c:525
#19 0x0814122d in vm_exec_core (th=0x83da590, initial=0) at insns.def:1006
#20 0x0814d1f4 in vm_exec (th=0x83da590) at vm.c:1142
#21 0x0814db49 in rb_iseq_eval_main (iseqval=138364160) at vm.c:1383
#22 0x0805c74d in ruby_exec_internal (n=0x83f4500) at eval.c:214
#23 0x0805c858 in ruby_exec_node (n=0x83f4500) at eval.c:261
#24 0x0805c82c in ruby_run_node (n=0x83f4500) at eval.c:254
#25 0x0805b190 in main (argc=2, argv=0xbfffa164) at main.c:35
----------------------------------------
http://redmine.ruby-lang.org
Attachments (1)
sigchldtest.rb
(762 Bytes, text/x-ruby)
require "monitor"
class Test
include MonitorMixin
def initialize
mon_initialize
@cond = new_cond
@flag = false
@thread = nil
end
attr_reader :flag
def start
@thread = Thread.start do
synchronize do
while true
@cond.wait_until{ @flag }
@flag = false
begin
while true
Process.wait
end
rescue Errno::ECHILD
end
end
end
end
end
def set_signal_handler
Signal.trap(:CHLD) do
synchronize do
@flag = true
@cond.signal
end
end
end
end
o = Test.new
o.set_signal_handler
o.start
while true
1000.times do
Process.spawn("ls > /dev/null")
end
sleep 1
p o.flag
end