[#31166] is_ruby_native_thread() — Masahiro Sakai (酒井政裕) <masahiro.sakai@...>

酒井です。

16 messages 2007/07/08
[#31269] Re: is_ruby_native_thread() — Nobuyoshi Nakada <nobu@...> 2007/07/21

なかだです。

[#31270] Re: is_ruby_native_thread() — Hidetoshi NAGAI <nagai@...> 2007/07/22

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

[#31298] retryの使い方 — eklerni <eklerni@...>

松尾といいます。

52 messages 2007/07/25
[#31299] Re: retryの使い方 — SASADA Koichi <ko1@...> 2007/07/26

 ささだです。

[#31300] Re: retryの使い方 — eklerni <eklerni@...> 2007/07/26

松尾です、返信ありがとうございます。

[#31303] Re: retryの使い方 — Yugui <yugui@...> 2007/07/26

Yuguiといいます。

[#31306] Re: retryの使い方 — eklerni <eklerni@...> 2007/07/26

松尾といいます。

[#31308] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/07/26

In article <46A909DD.1070405@for.mail-box.ne.jp>,

[#31310] Re: retryの使い方 — eklerni <eklerni@...> 2007/07/26

Tanaka Akira さんは書きました:

[#31314] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/07/30

In article <46A92530.80507@for.mail-box.ne.jp>,

[#31315] Re: retryの使い方 — eklerni <eklerni@...> 2007/07/30

Tanaka Akira さんは書きました:

[#31316] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/07/30

In article <46AD7A16.8080509@for.mail-box.ne.jp>,

[#31317] Re: retryの使い方 — eklerni <eklerni@...> 2007/07/31

松尾です。

[#31381] Re: retryの使い方 — SASADA Koichi <ko1@...> 2007/08/12

 ささだです。

[#31422] Re: retryの使い方 — Yukihiro Matsumoto <matz@...> 2007/08/15

まつもと ゆきひろです

[#31425] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/08/15

In article <E1ILDTi-0005T6-Be@x31>,

[#31426] Re: retryの使い方 — Yukihiro Matsumoto <matz@...> 2007/08/15

まつもと ゆきひろです

[#31433] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/08/16

In article <E1ILKn6-0003Nv-0f@x31>,

[#31435] Re: retryの使い方 — Yukihiro Matsumoto <matz@...> 2007/08/16

まつもと ゆきひろです

[#31447] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/08/16

In article <E1ILVN9-0006xJ-7I@x31>,

[#31450] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/08/17

In article <E1ILq4x-0002Bs-Lg@x31>,

[#31451] Re: retryの使い方 — Yukihiro Matsumoto <matz@...> 2007/08/17

まつもと ゆきひろです

[ruby-dev:31168] 構造体オブジェクトのcloneメソッド呼び出しでメモリリーク発生

From: m-ohkubo@... (Mitsuhiko OHKUBO)
Date: 2007-07-08 16:55:10 UTC
List: ruby-dev #31168
大久保といいます。はじめまして。


    ruby-1.8.6-p36にてメモリリークと思しき現象を発見しましたので、
お知らせします。というか、現バージョンのバグ報告はこちらなのでしょ
うか???よろしくご教授ください。


【手順】
$ cat memleak.rb
#! /usr/local/bin/ruby

a = Struct.new(:aaa, :bbb, :ccc).new(1, 2, 3)
while true
  a.clone
  GC.start
end
$ ruby -v memleak.rb
ruby 1.8.6 (2007-06-07 patchlevel 36) [i386-freebsd6.2]


【現象】
topコマンドでrubyプロセスのSIZE値が増加していく。200MBytesあたり
までは確認。


【原因】
struct.c:368でALLOC_Nによって確保されたメモリへのポインタが、
struct.c:560で上書きされてしまう。メモリの開放はなし。


【回避策】
次の修正で現象が発生しないことを確認(ただし、適切ではない)。

Index: struct.c
===================================================================
RCS file: /usr/home/cvsroot/cmdtools/ruby/struct.c,v
retrieving revision 1.1.2.1.2.1
diff -u -r1.1.2.1.2.1 struct.c
--- struct.c	11 Jun 2007 16:05:30 -0000	1.1.2.1.2.1
+++ struct.c	8 Jul 2007 16:03:11 -0000
@@ -557,7 +557,7 @@
     if (!rb_obj_is_instance_of(s, rb_obj_class(copy))) {
 	rb_raise(rb_eTypeError, "wrong argument class");
     }
-    RSTRUCT(copy)->ptr = ALLOC_N(VALUE, RSTRUCT(s)->len);
+    REALLOC_N(RSTRUCT(copy)->ptr, VALUE, RSTRUCT(s)->len);
     RSTRUCT(copy)->len = RSTRUCT(s)->len;
     MEMCPY(RSTRUCT(copy)->ptr, RSTRUCT(s)->ptr, VALUE, RSTRUCT(copy)->len);


----


In This Thread

Prev Next