[#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:625] Re: Java & GC

From: matz@... (Yukihiro Matsumoto)
Date: 1997-10-02 01:57:01 UTC
List: ruby-dev #625
まつもと ゆきひろです

In message "[ruby-dev:622] Java & GC"
    on 97/10/01, MAEDA Shugo <shugo@po.aianet.ne.jp> writes:

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

直接的な原因は

|(gdb) bt
|#0  mark_locations_array (x=0x414dd274, n=531401261) at gc.c:293

で,スタックサイズとは思えない値(531401261)が与えられている
事です.で,スタック内だと信じて行った操作(*x)がSEGVを起こし
ています.なぜそのような大きな値が与えられたかと言うと,

|#1  0x8067bc1 in gc_mark_locations (start=0xbffffb28, end=0x414dd274)
|    at gc.c:313

となっていて,&stack_endの値とおぼしきアドレスが0x414dd274に
なっているためです.ix86-linuxの場合,スタックは上方に延びま
すから,endはstartよりも大きな値になるはずです.にもかかわら
ず endは0x414dd274とstartよりもはるかに小さい値になっていま
す.しかし,&stack_endはローカル変数のアドレスをとったもので
すから,スタック以外の場所のアドレスを返すと言うのも考えにく
いです.なぜだろう?

あ,そうか.rubyのgcとstack_length()はスタックが連続した1本
であることを仮定していますが,JavaはOSのスレッドを多用するた
めにスタックは不連続な領域になりますね.そのせいでしょう.

たとえば,rubyコードの実行は一つのスレッドに任せるという対症
療法が考えられますね.現在のスレッドにおけるスタックの先頭を
知る移植可能な方法があれば良いのですが….

# 実はrubyが自前のスレッドを使っている理由の一つはGCとの共存
# ができなくなるからだったりします.

                                まつもと ゆきひろ /:|)

In This Thread