[#19457] equality between "a" and Exception.new("a") — Tanaka Akira <akr@...17n.org>

ふと気がついたのですが、

39 messages 2003/02/02
[#19460] Re: equality between "a" and Exception.new("a") — matz@... (Yukihiro Matsumoto) 2003/02/03

まつもと ゆきひろです

[#19473] Re: equality between "a" and Exception.new("a") — Tanaka Akira <akr@...17n.org> 2003/02/04

In article <1044245817.592933.31973.nullmailer@picachu.netlab.jp>,

[#19474] Re: equality between "a" and Exception.new("a") — matz@... (Yukihiro Matsumoto) 2003/02/04

まつもと ゆきひろです

[#19475] Re: equality between "a" and Exception.new("a") — Tanaka Akira <akr@...17n.org> 2003/02/04

In article <1044329220.257740.28127.nullmailer@picachu.netlab.jp>,

[#19476] Re: equality between "a" and Exception.new("a") — matz@... (Yukihiro Matsumoto) 2003/02/04

まつもと ゆきひろです

[#19477] Re: equality between "a" and Exception.new("a") — Tanaka Akira <akr@...17n.org> 2003/02/04

In article <1044331431.138035.28173.nullmailer@picachu.netlab.jp>,

[#19478] Re: equality between "a" and Exception.new("a") — matz@... (Yukihiro Matsumoto) 2003/02/04

まつもと ゆきひろです

[#19479] Re: equality between "a" and Exception.new("a") — Tanaka Akira <akr@...17n.org> 2003/02/04

In article <1044332948.099873.28206.nullmailer@picachu.netlab.jp>,

[#19482] Re: equality between "a" and Exception.new("a") — matz@... (Yukihiro Matsumoto) 2003/02/04

まつもと ゆきひろです

[#19486] Re: equality between "a" and Exception.new("a") — Tanaka Akira <akr@...17n.org> 2003/02/04

In article <1044338964.502066.28474.nullmailer@picachu.netlab.jp>,

[#19491] Re: equality between "a" and Exception.new("a") — matz@... (Yukihiro Matsumoto) 2003/02/04

まつもと ゆきひろです

[#19493] Re: equality between "a" and Exception.new("a") — matz@... (Yukihiro Matsumoto) 2003/02/04

まつもと ゆきひろです

[#19556] compare between String and Exception — Tanaka Akira <akr@...17n.org> 2003/02/12

さらに気が付いたのですが、

[#19514] [Oniguruma] Version 1.7.1 — "K.Kosako" <kosako@...>

ftp.ruby-lang.orgに、onigd20030207.tar.gzを置きました。

19 messages 2003/02/07

[#19548] [PATCH] file.c for (PR#389) and (PR#390) — nobu.nakada@...

なかだです。

20 messages 2003/02/11
[#19572] Re: [PATCH] file.c for (PR#389) and (PR#390) — pegacorn@... 2003/02/14

From: nobu.nakada@nifty.ne.jp

[#19648] Re: SEGV at search_method in eval.c (PR#400) — nobu.nakada@...

なかだです。

13 messages 2003/02/24

[ruby-dev:19649] Re: SEGV at search_method in eval.c (PR#400)

From: "NAKAMURA, Hiroshi" <nahi@...>
Date: 2003-02-24 13:46:52 UTC
List: ruby-dev #19649
なひです。

> From: <nobu.nakada@nifty.ne.jp>
> Sent: Monday, February 24, 2003 5:24 PM

> At Mon, 24 Feb 2003 16:16:29 +0900 (JST),
> nakahiro@sarion.co.jp wrote:
> > ruby/1.6で動いているRWikiのdaemonが、最近、
> > 起動後しばらくして(4時間とか)coreを吐くようになりました。
> > 時間なのか、もしくはdRubyでの通信の回数なのか、偶然なのかは
> > わかりません。
> >
> > ともあれ、起動してしばらくは何の問題もなく動き、そして
> > しばらくして落ちるというのを7回再現中なので、なひの環境では
> > 再現性がありそうです。
>
> GC絡みのような気がします。

とりあえずは適当にGC.startを入れて様子を見てみることにしました。
それとは別に、原因究明したいです。

> > stack traceは長いのでここにおいてあります。
> > http://rrr.jin.gr.jp/rwiki?cmd=view;name=ToDo320
> > 他に何か必要な情報はあるでしょうか。
>
> rubyのスタックトレースとか。

SEGVした瞬間のrubyのスタックトレースはどう取ればいいでしょうか。^^;

> #6  0x4002e4d9 in search_method (klass=135285569, id=8201, origin=0xbffeb940)
>     at eval.c:275
> #7  0x4002e522 in rb_get_method_body (klassp=0xbffeb974, idp=0xbffeb978,
>     noexp=0xbffeb968) at eval.c:293
> #8  0x4002e981 in rb_method_boundp (klass=135285569, id=8201, ex=0)
>     at eval.c:453
> #9  0x40035a09 in rb_respond_to (obj=1078229828, id=8201) at eval.c:3311
> #10 0x400527fe in w_object (obj=1078229828, arg=0xbffebbd8, limit=-3)
>     at marshal.c:325
>
> klassが奇数ということはないはずなので、#9の時点で既に1078229828
> のオブジェクトは壊れているようです。

なるほどー。

> #11 0x400525d3 in obj_each (id=10858, value=1078229828, arg=0xbffeba90)
>     at marshal.c:240
> #12 0x40087021 in st_foreach (table=0x8ab3220, func=0x400525a4 <obj_each>,
>     arg=0xbffeba90) at st.c:488
> #13 0x400526b5 in w_ivar (tbl=0x8ab3220, arg=0xbffeba90) at marshal.c:262
> #14 0x40052eb3 in w_object (obj=1078141208, arg=0xbffebbd8, limit=-2)
>     at marshal.c:494
>
> FL_EXIVARのオブジェクトをMarshal.dumpしようとしているようですが、
> 1078141208と1078229828のオブジェクトの中身はどうなってるでしょ
> う。

中身を見てみました。

$ gdb -c core-20030224-1 /home/nahi/bin/ruby
...
#0  0x4012ad41 in __kill () from /lib/libc.so.6
(gdb) bt
#0  0x4012ad41 in __kill () from /lib/libc.so.6
#1  0x4012a9b6 in raise (sig=6) at ../sysdeps/posix/raise.c:27
#2  0x4012c0d8 in abort () at ../sysdeps/generic/abort.c:88
#3  0x4002cb91 in rb_bug () at error.c:180
#4  0x40083ea4 in sigpipe (sig=11) at signal.c:393
#5  0x4012ac68 in __restore ()
    at ../sysdeps/unix/sysv/linux/i386/sigaction.c:127
#6  0x4002e4d9 in search_method (klass=135285569, id=8201, origin=0xbffeb940)
    at eval.c:275
#7  0x4002e522 in rb_get_method_body (klassp=0xbffeb974, idp=0xbffeb978,
    noexp=0xbffeb968) at eval.c:293
#8  0x4002e981 in rb_method_boundp (klass=135285569, id=8201, ex=0)
    at eval.c:453
#9  0x40035a09 in rb_respond_to (obj=1078229828, id=8201) at eval.c:3311
#10 0x400527fe in w_object (obj=1078229828, arg=0xbffebbd8, limit=-3)
    at marshal.c:325
#11 0x400525d3 in obj_each (id=10858, value=1078229828, arg=0xbffeba90)
    at marshal.c:240
#12 0x40087021 in st_foreach (table=0x8ab3220, func=0x400525a4 <obj_each>,
    arg=0xbffeba90 "虻??愡??????敢??椪\005@\030!C@愡??????・237\n@\210時須022w\003@婿??・237\n@愡??賍037C@・237\n@愡??賍037C@\210時
晋刷植) at st.c:488
#13 0x400526b5 in w_ivar (tbl=0x8ab3220, arg=0xbffeba90) at marshal.c:262
#14 0x40052eb3 in w_object (obj=1078141208, arg=0xbffebbd8, limit=-2)
    at marshal.c:494
#15 0x40052edc in dump (arg=0xbffebbcc) at marshal.c:502
...
(gdb) up 8
#8  0x4002e981 in rb_method_boundp (klass=135285569, id=8201, ex=0)
    at eval.c:453
453         if (rb_get_method_body(&klass, &id, &noex)) {
(gdb) p klass
$1 = 135285569
(gdb) up
#9  0x40035a09 in rb_respond_to (obj=1078229828, id=8201) at eval.c:3311
3311        if (rb_method_boundp(CLASS_OF(obj), id, 0)) {
(gdb) p obj
$2 = 0
(gdb) up
#10 0x400527fe in w_object (obj=1078229828, arg=0xbffebbd8, limit=-3)
    at marshal.c:325
325             if (rb_respond_to(obj, s_dump)) {
(gdb) p obj
$3 = 1078229828
(gdb) p (struct RClass)obj
$4 = {basic = {flags = 1078229828, klass = 3221141900}, iv_tbl = 0xbffeb984,
  m_tbl = 0x40035a09, super = 135285569}
(gdb) up 4
#14 0x40052eb3 in w_object (obj=1078141208, arg=0xbffebbd8, limit=-2)
    at marshal.c:494
494             w_ivar(ivtbl, &c_arg);
(gdb) p obj
$5 = 1078141208
(gdb) p (struct RClass)obj
$6 = {basic = {flags = 1078141208, klass = 3221142172}, iv_tbl = 0x40052eb3,
  m_tbl = 0x8ab3220, super = 3221142160}
(gdb)

「オブジェクトの中身」のより良い見方を教えてください。

他にもcoreが取ってあるので見てみます(どれも26M強。。。)



In This Thread