[#21225] Re: [ruby-cvs] ruby: * enum.c (inject_i): use rb_yield_values. — "U.Nakamura" <usa@...>

こんにちは、なかむら(う)です。

14 messages 2003/08/22
[#21227] Re: [ruby-cvs] ruby: * enum.c (inject_i): use rb_yield_values. — nobu.nakada@... 2003/08/22

なかだです。

[#21228] Re: [ruby-cvs] ruby: * enum.c (inject_i): use rb_yield_values. — matz@... (Yukihiro Matsumoto) 2003/08/22

まつもと ゆきひろです

[#21281] 大量メモリ消費攻撃に対する対応 — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

16 messages 2003/08/29
[#21285] Re: 大量メモリ消費攻撃に対する対応 — matz@... (Yukihiro Matsumoto) 2003/08/29

まつもと ゆきひろです

[#21288] Re: 大量メモリ消費攻撃に対する対応 — Hidetoshi NAGAI <nagai@...> 2003/08/29

永井@知能.九工大です.

[#21306] Re: 大量メモリ消費攻撃に対する対応 — matz@... (Yukihiro Matsumoto) 2003/09/03

まつもと ゆきひろです

[ruby-dev:21280] スレッド内の例外でRuby停止

From: "yamamoto madoka" <dan@...2.so-net.ne.jp>
Date: 2003-08-29 04:20:08 UTC
List: ruby-dev #21280
こんにちは、山本と申します。
次々に申し訳ありません。

スレッド内の例外発生で、Rubyプロセスが停止する現象に出会いました。
この状態になるとKillが利きません。
以下再現スクリプトです。


#!ruby -Ks

$DEBUG = true

def wrapErr
  def $stderr.write(str)
    errFile = open("errLog", "a")
    errFile.write(str)
    errFile.flush
  end
end

wrapErr

t = Thread.start{raise}
t.join



以下、このプロセスにAttachしてのトレースです。


0x080629d9 in rb_thread_schedule () at eval.c:8600
8600                if (rb_thread_dead(th->join)) {
(gdb) bt
#0  0x080629d9 in rb_thread_schedule () at eval.c:8600
#1  0x08062b2c in rb_thread_fd_writable (fd=4) at eval.c:8830
#2  0x0806e48d in io_fflush (f=0x8117c50, fptr=0x8117c30) at io.c:306
#3  0x0806e83c in rb_io_flush (io=1074408108) at io.c:467
#4  0x0806532f in call_cfunc (func=0x806e804 <rb_io_flush>, recv=1074408108,
len=32, argc=0,
    argv=0x0) at eval.c:4787
#5  0x0805adad in rb_call0 (klass=1074437188, recv=1074408108, id=7513,
oid=0, argc=0, argv=0x0,
    body=0x400a95b4, nosuper=0) at eval.c:4924
#6  0x0805b54d in rb_call (klass=1074437188, recv=1074408108, mid=7513,
argc=0, argv=0x0, scope=0)
    at eval.c:5142
#7  0x08056e39 in rb_eval (self=1074434668, n=0x0) at eval.c:2995
#8  0x0805b096 in rb_call0 (klass=1074408588, recv=1074434668, id=7225,
oid=0, argc=0,
    argv=0xbfffe2b4, body=0x400a2ffc, nosuper=0) at eval.c:5052
#9  0x0805b54d in rb_call (klass=1074408588, recv=1074434668, mid=7225,
argc=1, argv=0xbfffe2b0,
    scope=1) at eval.c:5142
#10 0x0805b7ad in rb_funcall (recv=1074434668, mid=7225, n=1) at ruby.h:627
#11 0x0806e7e5 in rb_io_write (io=1074434668, str=1074408188) at io.c:445
#12 0x08052c14 in error_print () at eval.c:1072
#13 0x08063a6d in rb_thread_start_0 (fn=0x8063ba0 <rb_thread_yield>,
arg=0x400a2c50, th_arg=0x0)
    at eval.c:9483
#14 0x08063d0f in rb_thread_start (klass=1074463048, args=1074408528) at
eval.c:9566
#15 0x0806532f in call_cfunc (func=0x8063ce4 <rb_thread_start>,
recv=1074463048, len=32, argc=0,
    argv=0x0) at eval.c:4787
#16 0x0805adad in rb_call0 (klass=1074463028, recv=1074463048, id=4993,
oid=0, argc=0, argv=0x0,
    body=0x400b00bc, nosuper=0) at eval.c:4924
#17 0x0805b54d in rb_call (klass=1074463028, recv=1074463048, mid=4993,
argc=0, argv=0x0, scope=0)
    at eval.c:5142
#18 0x08056e39 in rb_eval (self=1074473568, n=0x0) at eval.c:2995
#19 0x08056329 in rb_eval (self=1074473568, n=0x0) at eval.c:2721
#20 0x0805681a in rb_eval (self=1074473568, n=0x0) at eval.c:3161
#21 0x080536f0 in ruby_exec () at eval.c:1388
#22 0x08053724 in ruby_run () at eval.c:1409
#23 0x08051ba1 in main (argc=2, argv=0xbffff8a4, envp=0xbffff8b0) at
main.c:50
#24 0x420158f7 in __libc_start_main () from /lib/i686/libc.so.6


環境は、CVS最新のruby、
OSはKernel2.4.18 Redhat8,7.3で確認しました。

ちなみにCygwin環境では再現しませんでした。


山本 円 dan@xa2.so-net.ne.jp


In This Thread

Prev Next