[#30232] [patch] rb_type(): シンボル型に対する型判定が怪しい — "Yoshinori Sano" <yoshinori.sano@...>
さの よしのり です。
6 messages
2007/02/01
[#30241] 質問: 関数風メソッド呼び出しのYARV命令列について — "Yoshinori Sano" <yoshinori.sano@...>
さの よしのり です
7 messages
2007/02/01
[#30259] getinstancevariable2 — SASADA Koichi <ko1@...>
ささだです。
5 messages
2007/02/05
[#30263] exception on Singleton — SASADA Koichi <ko1@...>
ささだです。
10 messages
2007/02/05
[#30273] Re: exception on Singleton
— SASADA Koichi <ko1@...>
2007/02/05
ささだです.
[#30332] Re: exception on Singleton
— SASADA Koichi <ko1@...>
2007/02/14
ささだです。
[#30284] Re: 1.8.5 release on 3/3 — Urabe Shyouhei <shyouhei@...>
卜部です。1.8.5も3/3に同時リリースするといいと思いました。
14 messages
2007/02/06
[#30293] Re: 1.8.5 release on 3/3
— Shugo Maeda <shugo@...>
2007/02/06
前田です。
[#30307] Re: [ruby-cvs:18927] Ruby:r11679: * ext/thread: Make style fixes (mostly de-K&R'ism) to match the — Nobuyoshi Nakada <nobu@...>
なかだです。
8 messages
2007/02/09
[#30312] Re: [ruby-cvs:18927] Ruby:r11679: * ext/thread: Make style fixes (mostly de-K&R'ism) to match the
— "Akinori MUSHA" <knu@...>
2007/02/10
At Sat, 10 Feb 2007 00:00:44 +0900,
[#30321] [ruby_1_8] can't grub Digest::SHAxxx on powerpc-darwin — Tadashi Saito <shiba@...2.accsnet.ne.jp>
こんばんは。斎藤と申します。
5 messages
2007/02/11
[#30328] Re: [ruby-cvs:18955] Ruby:r11707: * ext/win32ole/win32ole.c (ole_variant2val): support VT_I8, VT_UI8. — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
3 messages
2007/02/13
[#30338] backporting URI to ruby_1_8 — "Akinori MUSHA" <knu@...>
lib/uri を trunk から ruby_1_8 にマージします。
7 messages
2007/02/14
[#30362] Re: class local instance variable — "Park Ji-In" <tisphie@...>
44GT44KT44Gw44KT44Gv44CC5py0IOiKneWNsCDjgajnlLPjgZfjgb7jgZnjgIIKCuWIneOCgeOB
5 messages
2007/02/16
[#30373] Ruby 1.8.6 preview1 has been released — "Akinori MUSHA" <knu@...>
Ruby 1.8.6 preview1 をリリースしました。
5 messages
2007/02/17
[#30396] unsupported: th_call0 in 1.9 — "KUBO Takehiro" <kubo@...>
久保です。
5 messages
2007/02/21
[#30404] ruby-1.8 で SEGV — Tomoyuki Chikanaga <chikanag@...>
日本コントロールシステム(株)の近永と申します。
6 messages
2007/02/24
[#30433] Re: ruby-1.8 で SEGV
— Chikanaga Tomoyuki <chikanag@...>
2007/02/26
日本コントロールシステム(株)の近永と申します。
[#30407] Arrayのメソッド増強について — Minero Aoki <aamine@...>
青木です。
7 messages
2007/02/24
[#30408] Ruby 1.8.6 preview2 has been released — "Akinori MUSHA" <knu@...>
Ruby 1.8.6 preview2 をリリースしました。
20 messages
2007/02/24
[#30414] fail to autoload at $SAFE==4 (Re: Ruby 1.8.6 preview2 has been released)
— Hidetoshi NAGAI <nagai@...>
2007/02/25
永井@知能.九工大です.
[#30418] Re: fail to autoload at $SAFE==4 (Re: Ruby 1.8.6 preview2 has been released)
— Nobuyoshi Nakada <nobu@...>
2007/02/25
なかだです。
[#30419] Re: fail to autoload at $SAFE==4
— Hidetoshi NAGAI <nagai@...>
2007/02/25
永井@知能.九工大です.
[#30434] Re: fail to autoload at $SAFE==4
— Nobuyoshi Nakada <nobu@...>
2007/02/27
なかだです。
[#30435] Re: fail to autoload at $SAFE==4
— Hidetoshi NAGAI <nagai@...>
2007/02/27
永井@知能.九工大です.
[#30437] Re: fail to autoload at $SAFE==4
— "Nobuyoshi Nakada" <nobu@...>
2007/02/27
なかだです。
[#30412] fastthreadについて — Shugo Maeda <shugo@...>
前田です。
9 messages
2007/02/25
[#30439] Re: MIME decoding confused by non-MIME characters — Urabe Shyouhei <shyouhei@...>
-devに振ってみる。
9 messages
2007/02/27
[#30440] Re: MIME decoding confused by non-MIME characters
— "H.Holon" <holon@...>
2007/02/27
はじめてこちらには postします。相馬と申します。
[#30441] Re: MIME decoding confused by non-MIME characters
— "H.Holon" <holon@...>
2007/02/27
相馬です。
[#30445] Re: MIME decoding confused by non-MIME characters
— "H.Holon" <holon@...>
2007/02/27
相馬です。
[ruby-dev:30252] Re: coredump on Mac OS X
From:
"Yoshinori Sano" <yoshinori.sano@...>
Date:
2007-02-04 09:52:20 UTC
List:
ruby-dev #30252
さの よしのり です
> はじめまして、まるまる と申します。
> Mac OS X 10.4 でも [ruby-dev:30198] coredump on NetBSD と同様の症状が
> 見られましたので、ご報告致します。
以下の環境でもバグが再現することを確認しました。
% uname -a
Darwin MacBookPro.local 8.8.1 Darwin Kernel Version 8.8.1: Mon Sep 25
19:42:00 PDT 2006; root:xnu-792.13.8.obj~1/RELEASE_I386 i386 i386
% gcc --version
i686-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 5250)
Copyright (C) 2005 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
% cat no_such_file.rb
cat: no_such_file.rb: No such file or directory
% ./ruby no_such_file.rb
-- stack frame ------------
-- control frame ----------
c:0001 p:---- s:0000 b:-001 l:000000 d:000000 ------
---------------------------
[BUG] Segmentation fault
ruby 1.9.0 (2007-02-04) [i686-darwin8.8.1]
zsh: abort ./ruby no_such_file.rb
GDBでこのバグを分析してみました。
% gdb --quiet ./ruby
Reading symbols for shared libraries ... done
(gdb) run no_such_file.rb
Starting program: /Users/ysano/ruby-trunk/ruby no_such_file.rb
Reading symbols for shared libraries .... done
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x0068500c
frame_func_id (cfp=0x685000) at eval.c:1861
1861 yarv_iseq_t *iseq = cfp->iseq;
(gdb) bt
#0 frame_func_id (cfp=0x685000) at eval.c:1861
#1 0x00003349 in error_pos () at eval_error.h:39
#2 0x00005f55 in error_print () at eval_error.h:100
#3 0x000063ab in error_handle (ex=893572) at eval_error.h:241
#4 0x0000643f in ruby_options (argc=2, argv=0xbffff0c0) at eval.c:146
#5 0x00001d6e in main (argc=2, argv=0xbffff0c0, envp=0xbffff0cc) at main.c:46
(gdb) f 0
#0 frame_func_id (cfp=0x685000) at eval.c:1861
1861 yarv_iseq_t *iseq = cfp->iseq;
(gdb) list
1856 }
1857
1858 static ID
1859 frame_func_id(yarv_control_frame_t *cfp)
1860 {
1861 yarv_iseq_t *iseq = cfp->iseq;
1862 if (!iseq) {
1863 return cfp->method_id;
1864 }
1865 else if (YARV_IFUNC_P(iseq)) {
(gdb) p *(yarvCurrentThread->cfp)
$2 = {
pc = 0x0,
sp = 0x605000,
bp = 0x0,
iseq = 0x0,
magic = 0,
self = 4,
lfp = 0x605000,
dfp = 0x605000,
block_iseq = 0x0,
proc = 0,
callee_id = 0,
method_id = 0,
method_klass = 0,
prof_time_self = 0,
prof_time_chld = 0,
dummy = 0
}
(gdb) p *(yarvCurrentThread->cfp+1)
Cannot access memory at address 0x685000
(gdb) p (yarvCurrentThread->stack)
$4 = (VALUE *) 0x605000
(gdb) p (yarvCurrentThread->stack + yarvCurrentThread->stack_size)
$5 = (VALUE *) 0x685000
この分析結果から、以下のパッチを作りました。
yarvCurrentThread->cfp+1が、yarvcore.cのth_init2()で確保されたスレッドスタック
の中にあるかどうかチェックするようにしました。
Index: eval.c
===================================================================
--- eval.c (revision 11626)
+++ eval.c (working copy)
@@ -1879,7 +1879,13 @@
ID
rb_frame_callee(void)
{
- return frame_func_id(GET_THREAD()->cfp + 1);
+ yarv_thread_t *th = GET_THREAD();
+ yarv_control_frame_t *prev_cfp = YARV_PREVIOUS_CONTROL_FRAME(th->cfp);
+ /* check if prev_cfp can be accessible */
+ if ((void *)(th->stack + th->stack_size) == (void *)(prev_cfp)) {
+ return 0;
+ }
+ return frame_func_id(prev_cfp);
}
このパッチを適用すると、seg faultしなくなります。
% ./ruby no_such_file.rb
./ruby:1: No such file or directory -- no_such_file.rb (LoadError)
また、[ruby-core:9856] YARV segfault when reading from STDIN
で指摘されていた問題も、このパッチを適用すると解決できます。
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/9856
(パッチ適用前)
% ./ruby
(Ctrl+c)
-- stack frame ------------
-- control frame ----------
c:0001 p:---- s:0000 b:-001 l:000000 d:000000 ------
---------------------------
[BUG] Segmentation fault
ruby 1.9.0 (2007-02-04) [i686-darwin8.8.1]
zsh: abort ./ruby
(パッチ適用後)
% ./ruby
(Ctrl+c)
./ruby:1: Interrupt
07/01/29 に T. Kanai<tin.k.gm@gmail.com> さんは書きました:
> はじめまして、まるまる と申します。
> Mac OS X 10.4 でも [ruby-dev:30198] coredump on NetBSD と同様の症状が
> 見られましたので、ご報告致します。
>
> ただし、OS X では Revision11540 以降ビルドできなくなっているため、
> ([riby-core:9958] rb_cProc and rb_cBinding defined twice in trunk)
> 以下の crash.log は Revision11540 のものです。
> (念のため、手元でソースを変更してビルドした ruby 1.9.0 (2007-01-28 patchlevel 0)
> でも同様でした。)
>
> $ ruby/11540/miniruby -v 0
> ruby 1.9.0 (2007-01-16 patchlevel 0) [powerpc-darwin8.8.0]
> -- stack frame ------------
> -- control frame ----------
> c:0001 p:---- s:0000 b:-001 l:000000 d:000000 ------
> ---------------------------
> [BUG] Segmentation fault
> ruby 1.9.0 (2007-01-16) [powerpc-darwin8.8.0]
>
> Abort trap
>
>
> --- ここから miniruby.crash.log抜粋 ---
> Exception: EXC_BAD_ACCESS (0x0001)
> Codes: KERN_INVALID_ADDRESS (0x0001) at 0x0068500c
>
> Thread 0 Crashed:
> 0 miniruby 0x00004434 frame_func_id + 4 (eval.c:1858)
> 1 miniruby 0x00004534 error_pos + 100 (eval_error.h:39)
> 2 miniruby 0x000075e4 error_print + 308 (eval_error.h:100)
> 3 miniruby 0x00007b9c error_handle + 364 (eval_error.h:241)
> 4 miniruby 0x00007c84 ruby_options + 148 (eval.c:149)
> 5 miniruby 0x00002590 main + 48 (eval_intern.h:303)
> 6 miniruby 0x0000217c _start + 760
> 7 miniruby 0x00001e80 start + 48
>
> Thread 1:
> 0 libSystem.B.dylib 0x90040978 mach_wait_until + 8
> 1 libSystem.B.dylib 0x90040744 nanosleep + 388
> 2 miniruby 0x0005f734 thread_timer + 100 (thread_pthread.ci:414)
> 3 libSystem.B.dylib 0x9002b508 _pthread_body + 96
>
> Thread 0 crashed with PPC Thread State 64:
> srr0: 0x0000000000004434 srr1: 0x100000000000f030
> vrsave: 0x0000000000000000
> cr: 0x28000424 xer: 0x0000000000000000 lr:
> 0x0000000000004534 ctr: 0x00000000900015c0
> r0: 0x0000000000004534 r1: 0x00000000bffff260 r2:
> 0x00000000000e7034 r3: 0x0000000000685000
> r4: 0x00000000011220d1 r5: 0x000000000000754c r6:
> 0x00000000bffff374 r7: 0x00000000000000ff
> r8: 0x00000000bffff360 r9: 0x00000000002c5000 r10:
> 0x00000000000044a8 r11: 0x0000000000000000
> r12: 0x00000000900015c0 r13: 0x0000000000000000 r14:
> 0x0000000000000000 r15: 0x0000000000000000
> r16: 0x0000000000000000 r17: 0x0000000000000000 r18:
> 0x0000000000000000 r19: 0x0000000000000000
> r20: 0x0000000000000000 r21: 0x0000000000000000 r22:
> 0x0000000000000000 r23: 0x0000000000000000
> r24: 0x0000000000000000 r25: 0x0000000000000003 r26:
> 0x00000000bffffb98 r27: 0x0000000000000001
> r28: 0x00000000000f3d4c r29: 0x00000000000f3d50 r30:
> 0x00000000000e7034 r31: 0x00000000000044dc
>
> Binary Images Description:
> 0x1000 - 0xe6fff miniruby /Users/marumaru/ruby/11540/miniruby
> 0x8fe00000 - 0x8fe51fff dyld 45.3 /usr/lib/dyld
> 0x90000000 - 0x901bcfff libSystem.B.dylib /usr/lib/libSystem.B.dylib
> 0x90214000 - 0x90219fff libmathCommon.A.dylib
> /usr/lib/system/libmathCommon.A.dylib
> 0x90a3a000 - 0x90abefff libobjc.A.dylib /usr/lib/libobjc.A.dylib
> 0x90b6e000 - 0x90b80fff libauto.dylib /usr/lib/libauto.dylib
> --- miniruby.crash.log ここまで ---
>
> 以上です。
> ---
> まるまる = T.Kanai
>
>
--
Yoshinori Sano <yoshinori.sano@gmail.com>