[#615] [MethodIndex] <!-- hhmts ... — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

13 messages 1997/10/01

[#645] pack/unpack base64 — WATANABE Hirofumi <watanabe@...>

わたなべです.

18 messages 1997/10/06

[#654] [BUG?] ruby -r nothing-file — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

29 messages 1997/10/06
[#661] Re: [BUG?] ruby -r nothing-file — matz@... (Yukihiro Matsumoto) 1997/10/07

まつもと ゆきひろです

[#662] Re: [BUG?] ruby -r nothing-file — WATANABE Hirofumi <watanabe@...> 1997/10/07

わたなべです.

[#663] Re: [BUG?] ruby -r nothing-file — matz@... (Yukihiro Matsumoto) 1997/10/07

まつもと ゆきひろです

[#666] Re: [BUG?] ruby -r nothing-file — keiju@... (石塚圭樹 ) 1997/10/07

けいじゅ@日本ラショナルソフトウェアです.

[#667] Re: [BUG?] ruby -r nothing-file — matz@... (Yukihiro Matsumoto) 1997/10/07

まつもと ゆきひろです

[#669] Re: [BUG?] ruby -r nothing-file — keiju@... (石塚圭樹 ) 1997/10/07

けいじゅ@日本ラショナルソフトウェアです.

[#670] Re: [BUG?] ruby -r nothing-file — matz@... (Yukihiro Matsumoto) 1997/10/07

まつもと ゆきひろです

[#671] Re: [BUG?] ruby -r nothing-file — keiju@... (石塚圭樹 ) 1997/10/07

けいじゅ@日本ラショナルソフトウェアです.

[#672] Re: [BUG?] ruby -r nothing-file — matz@... (Yukihiro Matsumoto) 1997/10/07

まつもと ゆきひろです

[#673] Re: [BUG?] ruby -r nothing-file — WATANABE Hirofumi <watanabe@...> 1997/10/07

わたなべです.

[#674] Re: [BUG?] ruby -r nothing-file — matz@... (Yukihiro Matsumoto) 1997/10/07

まつもと ゆきひろです

[#675] Re: [BUG?] ruby -r nothing-file — WATANABE Hirofumi <watanabe@...> 1997/10/07

わたなべです.

[#676] Re: [BUG?] ruby -r nothing-file — keiju@... (石塚圭樹 ) 1997/10/07

けいじゅ@日本ラショナルソフトウェアです.

[#677] Re: [BUG?] ruby -r nothing-file — matz@... (Yukihiro Matsumoto) 1997/10/07

まつもと ゆきひろです

[#678] Re: [BUG?] ruby -r nothing-file — keiju@... (石塚圭樹 ) 1997/10/07

けいじゅ@日本ラショナルソフトウェアです.

[#679] Re: [BUG?] ruby -r nothing-file — matz@... (Yukihiro Matsumoto) 1997/10/07

まつもと ゆきひろです

[#770] printn means print and newline — HYOUDOU Kouichi /note <hyoudo@...>

兵藤です%思い付きなのですが

19 messages 1997/10/28
[#771] Re: printn means print and newline — shugo@... (Shugo Maeda) 1997/10/28

前田です。

[ruby-dev:622] Java & GC

From: shugo@... (MAEDA Shugo)
Date: 1997-10-01 09:35:12 UTC
List: ruby-dev #622
前田です。

Javaモジュールを使っていてついにGC周りで落ちてしまいました:-(
どうもAWTを使っていてイベント処理の部分でrubyのメソッドをコール
した時にGCが起きると落ちてしまうようです。
バックトレースは以下のようになっていました。

Program received signal SIGSEGV, Segmentation fault.
mark_locations_array (x=0x414dd274, n=531401261) at gc.c:293
293             if (looks_pointerp(*x)) {
(gdb) bt
#0  mark_locations_array (x=0x414dd274, n=531401261) at gc.c:293
#1  0x8067bc1 in gc_mark_locations (start=0xbffffb28, end=0x414dd274)
    at gc.c:313
#2  0x806860d in gc () at gc.c:738
#3  0x8067a95 in rb_newobj () at gc.c:243
#4  0x8060fd5 in rb_call (class=0x40322aa8, recv=1077029404, mid=8145, 
    argc=0, argv=0x0, scope=2) at eval.c:2995
#5  0x805e1b0 in rb_eval (self=1077029404, node=0x4033c2f0) at eval.c:1606
#6  0x805fd7d in rb_yield_0 (val=1076985984, self=1077029404) at eval.c:2410
#7  0x805fe5e in rb_yield (val=1076985984) at eval.c:2446
#8  0x8063175 in proc_call (proc=1077014524, args=1076985984) at eval.c:4167
#9  0x8060bc2 in rb_call (class=0x4033e58c, recv=1077014524, mid=7457, 
    argc=1, argv=0x414dd670, scope=0) at eval.c:2891
#10 0x805e1b0 in rb_eval (self=1077014744, node=0x40320618) at eval.c:1606
#11 0x805d37c in rb_eval (self=1077014744, node=0x4032058c) at eval.c:1264
#12 0x8061279 in rb_call (class=0x4031f128, recv=1077014744, mid=8561, 
    argc=0, argv=0x414ddaa4, scope=1) at eval.c:3072
#13 0x80614e6 in f_send (argc=2, argv=0x414dda9c, recv=1077014744)
    at eval.c:3149
#14 0x8060be6 in rb_call (class=0x40348c94, recv=1077014744, mid=3481, 
    argc=2, argv=0x414dda9c, scope=1) at eval.c:2894
#15 0x806155d in rb_funcall (recv=1077014744, mid=3481, n=2, 
    __builtin_va_alist=17123) at eval.c:3182
#16 0x8055d9c in jri_RubyObject_callMethod0 (env=0x414dde3c, obj=0x1, 
    id=1077014744, method_name=0x2, arg=0x3) at java.c:2262
#17 0x40197613 in push_env ()
#18 0x4016586e in invokeJNINativeMethod ()
    at ../../../../src/share/java/runtime/classruntime.c:505
#19 0x40199e12 in invq_not_inm5 ()
#20 0x40741920 in ?? ()
#21 0x8476060 in ?? ()
#22 0x40740240 in ?? ()
#23 0x4031f128 in ?? ()
Cannot access memory at address 0x201.

/* jri.RubyObjectのnative method */
void jri_RubyObject_callMethod0(JNIEnv *env,
				jobject obj,
				jint id,
				jstring method_name,
				jobject arg)
{
    VALUE self = (VALUE) id;
    ID mid;
    char name[512];
    const char *tmp;

    gc_s_disable();
    tmp = (*env)->GetStringUTFChars(env, method_name, 0);
    strcpy(name, tmp);
    (*env)->ReleaseStringUTFChars(env, method_name, tmp);
    mid = rb_intern(name);
    if (rb_respond_to(self, mid))
	rb_funcall(self, rb_intern("send"), 2,
		   INT2NUM(mid), jobject_new(env, arg));
    gc_s_enable();
}

とりあえずJavaからrubyを呼ぶ部分でこのようにGCしないよう
にしてみたのですが、今度は

test.rb:41:in `print': fatal: stack level too deep
        from test.rb:41:in `countup'
        from test.rb:23:in `initialize'
        from test.rb:22:in `call'
        from /home/shugo/ruby/java/event/adjustment.rb:17:in `adjustmentValueChanged'
        from test.rb:41:in `send'
        from test.rb:41:in `sleep'
        from test.rb:41:in `mainloop'
        from test.rb:46

のように500回くらいイベントが呼ばれたところでstack level too deep
となってしまいました。
なぜstack level too deepなのかわからないのですが、やはりスレッド
がらみの問題なのでしょうか。

-- 
前田 修吾

In This Thread

Prev Next