ruby-dev (Japanese) list archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-dev:44904] [ruby-trunk - Bug #5688][Open] Solaris10 で spawn を繰り返すとメモリリークする
@ 2011-11-29 10:03 okkez _
  2011-12-01 10:11 ` [ruby-dev:44914] [ruby-trunk - Bug #5688] " okkez _
                   ` (6 more replies)
  0 siblings, 7 replies; 14+ messages in thread
From: okkez _ @ 2011-11-29 10:03 UTC (permalink / raw
  To: ruby developers list


Issue #5688 has been reported by okkez _.

----------------------------------------
Bug #5688: Solaris10 で spawn を繰り返すとメモリリークする
http://redmine.ruby-lang.org/issues/5688

Author: okkez _
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 
ruby -v: ruby 1.9.3p0 (2011-10-30 revision 33570) [i386-solaris2.10]


Solaris10 で spawn を繰り返すとメモリリークします。
Ruby は Solaris の gcc でビルドしています。32bit でも 64bit でも結果は同じでした。
1.9.2-p180(64bit), 1.9.2-p290(32bit), 1.9.3-p0(64bit) で確認しました。

再現手順は以下の通りです。
spawn-sleep.rb を以下の内容で作ります。

  #!/usr/bin/env ruby
  ARGV[0].to_i.times do |n|
    spawn("sleep", "5")
    sleep 0.2
    GC.start if n % 100 == 0
  end

spawn-sleep.sh を以下の内容で作ります。

  #!/bin/bash
  ./spawn-sleep.rb 3000 &
  pid=$!
  echo spawn-sleep:$pid
  trap "kill $pid; exit" INT TERM
  
  count=0
  while true; do
      date "+%Y-%m-%d %H:%M:%S"
      ps -o pid,ppid,vsz,rss,args | head -1 
      ps -o pid,ppid,vsz,rss,args | grep spawn-sleep.rb | grep -v grep
      echo "=========="
      sleep 1
  done

これで spawn-sleep.sh を実行すると spawn-sleep.rb の VSZ と RSS が徐々に増えていきます。
これはメモリリークだと思うのですが、Debian(sid) では再現しませんでした。
ちなみに、spawn の部分を system に変えても同様でした。



-- 
http://redmine.ruby-lang.org

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [ruby-dev:44914] [ruby-trunk - Bug #5688] Solaris10 で spawn を繰り返すとメモリリークする
  2011-11-29 10:03 [ruby-dev:44904] [ruby-trunk - Bug #5688][Open] Solaris10 で spawn を繰り返すとメモリリークする okkez _
@ 2011-12-01 10:11 ` okkez _
  2011-12-01 10:35 ` [ruby-dev:44915] [ruby-trunk - Bug #5688][Assigned] " Nobuyoshi Nakada
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 14+ messages in thread
From: okkez _ @ 2011-12-01 10:11 UTC (permalink / raw
  To: ruby developers list


Issue #5688 has been updated by okkez _.


=begin

r33784 向けのパッチです。
Debian 上で test-all が全て通ることを確認しています。
Solaris 上では確認できていませんので、どなたか追試していただけると助かります。

  diff --git a/thread_pthread.c b/thread_pthread.c
  index 7fa8e95..b5c97bd 100644
  --- a/thread_pthread.c
  +++ b/thread_pthread.c
  @@ -1236,6 +1236,7 @@ rb_thread_create_timer_thread(void)
              fprintf(stderr, "[FATAL] Failed to create timer thread (errno: %d)\n", err);
              exit(EXIT_FAILURE);
          }
  +        pthread_attr_destroy(&attr);
       }
   }


以下のパッチで Solaris 上の 1.9.2-p180 でメモリリークが解消できました。
Solaris 上で test-all の E,F が増えていないことを確認しました。

  diff --git a/thread_pthread.c b/thread_pthread.c
  index 4746aaa..ab7bdf9 100644
  --- a/thread_pthread.c
  +++ b/thread_pthread.c
  @@ -835,6 +835,7 @@ rb_thread_create_timer_thread(void)
   	}
   	native_cond_wait(&timer_thread_cond, &timer_thread_lock);
   	native_mutex_unlock(&timer_thread_lock);
  +	pthread_attr_destroy(&attr);
       }
       rb_disable_interrupt(); /* only timer thread recieve signal */
   }

できれば、1.9.2, 1.9.3 にもバックポートして欲しいです。
よろしくお願いします。

=end

----------------------------------------
Bug #5688: Solaris10 で spawn を繰り返すとメモリリークする
http://redmine.ruby-lang.org/issues/5688

Author: okkez _
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 
ruby -v: ruby 1.9.3p0 (2011-10-30 revision 33570) [i386-solaris2.10]


Solaris10 で spawn を繰り返すとメモリリークします。
Ruby は Solaris の gcc でビルドしています。32bit でも 64bit でも結果は同じでした。
1.9.2-p180(64bit), 1.9.2-p290(32bit), 1.9.3-p0(64bit) で確認しました。

再現手順は以下の通りです。
spawn-sleep.rb を以下の内容で作ります。

  #!/usr/bin/env ruby
  ARGV[0].to_i.times do |n|
    spawn("sleep", "5")
    sleep 0.2
    GC.start if n % 100 == 0
  end

spawn-sleep.sh を以下の内容で作ります。

  #!/bin/bash
  ./spawn-sleep.rb 3000 &
  pid=$!
  echo spawn-sleep:$pid
  trap "kill $pid; exit" INT TERM
  
  count=0
  while true; do
      date "+%Y-%m-%d %H:%M:%S"
      ps -o pid,ppid,vsz,rss,args | head -1 
      ps -o pid,ppid,vsz,rss,args | grep spawn-sleep.rb | grep -v grep
      echo "=========="
      sleep 1
  done

これで spawn-sleep.sh を実行すると spawn-sleep.rb の VSZ と RSS が徐々に増えていきます。
これはメモリリークだと思うのですが、Debian(sid) では再現しませんでした。
ちなみに、spawn の部分を system に変えても同様でした。



-- 
http://redmine.ruby-lang.org

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [ruby-dev:44915] [ruby-trunk - Bug #5688][Assigned] Solaris10 で spawn を繰り返すとメモリリークする
  2011-11-29 10:03 [ruby-dev:44904] [ruby-trunk - Bug #5688][Open] Solaris10 で spawn を繰り返すとメモリリークする okkez _
  2011-12-01 10:11 ` [ruby-dev:44914] [ruby-trunk - Bug #5688] " okkez _
@ 2011-12-01 10:35 ` Nobuyoshi Nakada
  2011-12-01 12:59 ` [ruby-dev:44916] [ruby-trunk - Bug #5688] " okkez _
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 14+ messages in thread
From: Nobuyoshi Nakada @ 2011-12-01 10:35 UTC (permalink / raw
  To: ruby developers list


Issue #5688 has been updated by Nobuyoshi Nakada.

Category set to core
Status changed from Open to Assigned
Assignee set to okkez _
Target version set to 2.0.0

たしかにpthread_attr_destroy()が抜けているように見えます。
コミットよろしく。
----------------------------------------
Bug #5688: Solaris10 で spawn を繰り返すとメモリリークする
http://redmine.ruby-lang.org/issues/5688

Author: okkez _
Status: Assigned
Priority: Normal
Assignee: okkez _
Category: core
Target version: 2.0.0
ruby -v: ruby 1.9.3p0 (2011-10-30 revision 33570) [i386-solaris2.10]


Solaris10 で spawn を繰り返すとメモリリークします。
Ruby は Solaris の gcc でビルドしています。32bit でも 64bit でも結果は同じでした。
1.9.2-p180(64bit), 1.9.2-p290(32bit), 1.9.3-p0(64bit) で確認しました。

再現手順は以下の通りです。
spawn-sleep.rb を以下の内容で作ります。

  #!/usr/bin/env ruby
  ARGV[0].to_i.times do |n|
    spawn("sleep", "5")
    sleep 0.2
    GC.start if n % 100 == 0
  end

spawn-sleep.sh を以下の内容で作ります。

  #!/bin/bash
  ./spawn-sleep.rb 3000 &
  pid=$!
  echo spawn-sleep:$pid
  trap "kill $pid; exit" INT TERM
  
  count=0
  while true; do
      date "+%Y-%m-%d %H:%M:%S"
      ps -o pid,ppid,vsz,rss,args | head -1 
      ps -o pid,ppid,vsz,rss,args | grep spawn-sleep.rb | grep -v grep
      echo "=========="
      sleep 1
  done

これで spawn-sleep.sh を実行すると spawn-sleep.rb の VSZ と RSS が徐々に増えていきます。
これはメモリリークだと思うのですが、Debian(sid) では再現しませんでした。
ちなみに、spawn の部分を system に変えても同様でした。



-- 
http://redmine.ruby-lang.org

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [ruby-dev:44916] [ruby-trunk - Bug #5688] Solaris10 で spawn を繰り返すとメモリリークする
  2011-11-29 10:03 [ruby-dev:44904] [ruby-trunk - Bug #5688][Open] Solaris10 で spawn を繰り返すとメモリリークする okkez _
  2011-12-01 10:11 ` [ruby-dev:44914] [ruby-trunk - Bug #5688] " okkez _
  2011-12-01 10:35 ` [ruby-dev:44915] [ruby-trunk - Bug #5688][Assigned] " Nobuyoshi Nakada
@ 2011-12-01 12:59 ` okkez _
  2011-12-01 13:05   ` [ruby-dev:44917] " U.Nakamura
  2011-12-02  4:16 ` [ruby-dev:44922] " okkez _
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 14+ messages in thread
From: okkez _ @ 2011-12-01 12:59 UTC (permalink / raw
  To: ruby developers list


Issue #5688 has been updated by okkez _.

Assignee deleted (okkez _)

いや、私はコミット権持ってないのでコミットできないです。

----------------------------------------
Bug #5688: Solaris10 で spawn を繰り返すとメモリリークする
http://redmine.ruby-lang.org/issues/5688

Author: okkez _
Status: Assigned
Priority: Normal
Assignee: 
Category: core
Target version: 2.0.0
ruby -v: ruby 1.9.3p0 (2011-10-30 revision 33570) [i386-solaris2.10]


Solaris10 で spawn を繰り返すとメモリリークします。
Ruby は Solaris の gcc でビルドしています。32bit でも 64bit でも結果は同じでした。
1.9.2-p180(64bit), 1.9.2-p290(32bit), 1.9.3-p0(64bit) で確認しました。

再現手順は以下の通りです。
spawn-sleep.rb を以下の内容で作ります。

  #!/usr/bin/env ruby
  ARGV[0].to_i.times do |n|
    spawn("sleep", "5")
    sleep 0.2
    GC.start if n % 100 == 0
  end

spawn-sleep.sh を以下の内容で作ります。

  #!/bin/bash
  ./spawn-sleep.rb 3000 &
  pid=$!
  echo spawn-sleep:$pid
  trap "kill $pid; exit" INT TERM
  
  count=0
  while true; do
      date "+%Y-%m-%d %H:%M:%S"
      ps -o pid,ppid,vsz,rss,args | head -1 
      ps -o pid,ppid,vsz,rss,args | grep spawn-sleep.rb | grep -v grep
      echo "=========="
      sleep 1
  done

これで spawn-sleep.sh を実行すると spawn-sleep.rb の VSZ と RSS が徐々に増えていきます。
これはメモリリークだと思うのですが、Debian(sid) では再現しませんでした。
ちなみに、spawn の部分を system に変えても同様でした。



-- 
http://redmine.ruby-lang.org

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [ruby-dev:44917] Re: [ruby-trunk - Bug #5688] Solaris10  で spawn を繰り返すとメモリリークする
  2011-12-01 12:59 ` [ruby-dev:44916] [ruby-trunk - Bug #5688] " okkez _
@ 2011-12-01 13:05   ` U.Nakamura
  0 siblings, 0 replies; 14+ messages in thread
From: U.Nakamura @ 2011-12-01 13:05 UTC (permalink / raw
  To: ruby developers list

こんにちは、なかむら(う)です。

In message "[ruby-dev:44916] [ruby-trunk - Bug #5688] Solaris10 で spawn を繰り返すとメモリリークする"
    on Dec.01,2011 21:59:37, <redmine@ruby-lang.org> wrote:
> いや、私はコミット権持ってないのでコミットできないです。

これが勧誘の手口です。


それでは。
-- 
U.Nakamura <usa@garbagecollect•jp>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [ruby-dev:44922] [ruby-trunk - Bug #5688] Solaris10 で spawn を繰り返すとメモリリークする
  2011-11-29 10:03 [ruby-dev:44904] [ruby-trunk - Bug #5688][Open] Solaris10 で spawn を繰り返すとメモリリークする okkez _
                   ` (2 preceding siblings ...)
  2011-12-01 12:59 ` [ruby-dev:44916] [ruby-trunk - Bug #5688] " okkez _
@ 2011-12-02  4:16 ` okkez _
  2011-12-02  4:40   ` [ruby-dev:44923] " KOSAKI Motohiro
  2011-12-12  3:36 ` [ruby-dev:44968] " okkez _
                   ` (2 subsequent siblings)
  6 siblings, 1 reply; 14+ messages in thread
From: okkez _ @ 2011-12-02  4:16 UTC (permalink / raw
  To: ruby developers list


Issue #5688 has been updated by okkez _.

Assignee set to okkez _

勧誘の手口に乗ります!

http://redmine.ruby-lang.org/projects/ruby/wiki/CommitterHowtoJa
によると、まつもとさんの承認が必要らしいので、承認お願いします。 > まつもとさん


----------------------------------------
Bug #5688: Solaris10 で spawn を繰り返すとメモリリークする
http://redmine.ruby-lang.org/issues/5688

Author: okkez _
Status: Assigned
Priority: Normal
Assignee: okkez _
Category: core
Target version: 2.0.0
ruby -v: -


Solaris10 で spawn を繰り返すとメモリリークします。
Ruby は Solaris の gcc でビルドしています。32bit でも 64bit でも結果は同じでした。
1.9.2-p180(64bit), 1.9.2-p290(32bit), 1.9.3-p0(64bit) で確認しました。

再現手順は以下の通りです。
spawn-sleep.rb を以下の内容で作ります。

  #!/usr/bin/env ruby
  ARGV[0].to_i.times do |n|
    spawn("sleep", "5")
    sleep 0.2
    GC.start if n % 100 == 0
  end

spawn-sleep.sh を以下の内容で作ります。

  #!/bin/bash
  ./spawn-sleep.rb 3000 &
  pid=$!
  echo spawn-sleep:$pid
  trap "kill $pid; exit" INT TERM
  
  count=0
  while true; do
      date "+%Y-%m-%d %H:%M:%S"
      ps -o pid,ppid,vsz,rss,args | head -1 
      ps -o pid,ppid,vsz,rss,args | grep spawn-sleep.rb | grep -v grep
      echo "=========="
      sleep 1
  done

これで spawn-sleep.sh を実行すると spawn-sleep.rb の VSZ と RSS が徐々に増えていきます。
これはメモリリークだと思うのですが、Debian(sid) では再現しませんでした。
ちなみに、spawn の部分を system に変えても同様でした。



-- 
http://redmine.ruby-lang.org

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [ruby-dev:44923] Re: [ruby-trunk - Bug #5688] Solaris10  で spawn  を繰り返すとメモリリークする
  2011-12-02  4:16 ` [ruby-dev:44922] " okkez _
@ 2011-12-02  4:40   ` KOSAKI Motohiro
  2011-12-02  5:00     ` [ruby-dev:44924] " Shota Fukumori (sora_h)
  0 siblings, 1 reply; 14+ messages in thread
From: KOSAKI Motohiro @ 2011-12-02  4:40 UTC (permalink / raw
  To: ruby developers list

> 勧誘の手口に乗ります!
>
> http://redmine.ruby-lang.org/projects/ruby/wiki/CommitterHowtoJa
> によると、まつもとさんの承認が必要らしいので、承認お願いします。 > まつもとさん

ああ、悪辣なRubyistたちの手口に善良なデベロッパがまたひとり・・・・

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [ruby-dev:44924] Re: [ruby-trunk - Bug #5688] Solaris10  で spawn  を繰り返すとメモリリークする
  2011-12-02  4:40   ` [ruby-dev:44923] " KOSAKI Motohiro
@ 2011-12-02  5:00     ` Shota Fukumori (sora_h)
  0 siblings, 0 replies; 14+ messages in thread
From: Shota Fukumori (sora_h) @ 2011-12-02  5:00 UTC (permalink / raw
  To: ruby developers list

On 12/2/11 1:40 PM, KOSAKI Motohiro wrote:
> ああ、悪辣なRubyistたちの手口に善良なデベロッパがまたひとり・・・・

Ruby コミッターこわいわー

-- 
Shota Fukumori a.k.a. sora_h - http://sorah.jp/

>僕と契約して Ruby コミッターになってよ!

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [ruby-dev:44968] [ruby-trunk - Bug #5688] Solaris10 で spawn を繰り返すとメモリリークする
  2011-11-29 10:03 [ruby-dev:44904] [ruby-trunk - Bug #5688][Open] Solaris10 で spawn を繰り返すとメモリリークする okkez _
                   ` (3 preceding siblings ...)
  2011-12-02  4:16 ` [ruby-dev:44922] " okkez _
@ 2011-12-12  3:36 ` okkez _
  2011-12-12  3:54   ` [ruby-dev:44969] " Yukihiro Matsumoto
  2011-12-12  4:31 ` [ruby-dev:44973] " Naohisa Goto
  2011-12-13 15:41 ` [ruby-dev:44986] " okkez _
  6 siblings, 1 reply; 14+ messages in thread
From: okkez _ @ 2011-12-12  3:36 UTC (permalink / raw
  To: ruby developers list


Issue #5688 has been updated by okkez _.

Assignee changed from okkez _ to Yukihiro Matsumoto

見落されているようなので一旦まつもとさんに担当を振ってみます。

----------------------------------------
Bug #5688: Solaris10 で spawn を繰り返すとメモリリークする
http://redmine.ruby-lang.org/issues/5688

Author: okkez _
Status: Assigned
Priority: Normal
Assignee: Yukihiro Matsumoto
Category: core
Target version: 2.0.0
ruby -v: -


Solaris10 で spawn を繰り返すとメモリリークします。
Ruby は Solaris の gcc でビルドしています。32bit でも 64bit でも結果は同じでした。
1.9.2-p180(64bit), 1.9.2-p290(32bit), 1.9.3-p0(64bit) で確認しました。

再現手順は以下の通りです。
spawn-sleep.rb を以下の内容で作ります。

  #!/usr/bin/env ruby
  ARGV[0].to_i.times do |n|
    spawn("sleep", "5")
    sleep 0.2
    GC.start if n % 100 == 0
  end

spawn-sleep.sh を以下の内容で作ります。

  #!/bin/bash
  ./spawn-sleep.rb 3000 &
  pid=$!
  echo spawn-sleep:$pid
  trap "kill $pid; exit" INT TERM
  
  count=0
  while true; do
      date "+%Y-%m-%d %H:%M:%S"
      ps -o pid,ppid,vsz,rss,args | head -1 
      ps -o pid,ppid,vsz,rss,args | grep spawn-sleep.rb | grep -v grep
      echo "=========="
      sleep 1
  done

これで spawn-sleep.sh を実行すると spawn-sleep.rb の VSZ と RSS が徐々に増えていきます。
これはメモリリークだと思うのですが、Debian(sid) では再現しませんでした。
ちなみに、spawn の部分を system に変えても同様でした。



-- 
http://redmine.ruby-lang.org

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [ruby-dev:44969] Re: [ruby-trunk - Bug #5688] Solaris10 で spawn  を繰り返すとメモリリークする
  2011-12-12  3:36 ` [ruby-dev:44968] " okkez _
@ 2011-12-12  3:54   ` Yukihiro Matsumoto
  2011-12-12  4:16     ` [ruby-dev:44971] " Shugo Maeda
  0 siblings, 1 reply; 14+ messages in thread
From: Yukihiro Matsumoto @ 2011-12-12  3:54 UTC (permalink / raw
  To: ruby developers list

まつもと ゆきひろです

In message "Re: [ruby-dev:44968] [ruby-trunk - Bug #5688] Solaris10 で spawn を繰り返すとメモリリークする"
    on Mon, 12 Dec 2011 12:36:09 +0900, okkez _ <redmine@ruby-lang.org> writes:

|Assignee changed from okkez _ to Yukihiro Matsumoto
|見落されているようなので一旦まつもとさんに担当を振ってみます。

おお、見落としてました。例の手順(see [ruby-dev:43227])で申請
してください。前田くん、よろしく。

そろそろgithub化してpull requestで処理すべき?

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [ruby-dev:44971] Re: [ruby-trunk - Bug #5688] Solaris10  で spawn  を繰り返すとメモリリークする
  2011-12-12  3:54   ` [ruby-dev:44969] " Yukihiro Matsumoto
@ 2011-12-12  4:16     ` Shugo Maeda
  2011-12-12  4:21       ` [ruby-dev:44972] " Yukihiro Matsumoto
  0 siblings, 1 reply; 14+ messages in thread
From: Shugo Maeda @ 2011-12-12  4:16 UTC (permalink / raw
  To: ruby developers list

前田です。

2011年12月12日12:54 Yukihiro Matsumoto <matz@ruby-lang.org>:
> |Assignee changed from okkez _ to Yukihiro Matsumoto
> |見落されているようなので一旦まつもとさんに担当を振ってみます。
>
> おお、見落としてました。例の手順(see [ruby-dev:43227])で申請
> してください。前田くん、よろしく。

了解しました。

> そろそろgithub化してpull requestで処理すべき?

これはRubyのリポジトリ自体の話です?

-- 
Shugo Maeda

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [ruby-dev:44972] Re: [ruby-trunk - Bug #5688] Solaris10  で spawn   を繰り返すとメモリリークする
  2011-12-12  4:16     ` [ruby-dev:44971] " Shugo Maeda
@ 2011-12-12  4:21       ` Yukihiro Matsumoto
  0 siblings, 0 replies; 14+ messages in thread
From: Yukihiro Matsumoto @ 2011-12-12  4:21 UTC (permalink / raw
  To: ruby developers list

まつもと ゆきひろです

In message "Re: [ruby-dev:44971] Re: [ruby-trunk - Bug #5688] Solaris10 	で spawn 	を繰り返すとメモリリークする"
    on Mon, 12 Dec 2011 13:16:08 +0900, Shugo Maeda <shugo@ruby-lang.org> writes:

|> そろそろgithub化してpull requestで処理すべき?
|
|これはRubyのリポジトリ自体の話です?

ええ。定期的に指揮者のご意見を伺いたいものです。たとえ今回も
移行できないにしても。

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [ruby-dev:44973] [ruby-trunk - Bug #5688] Solaris10 で spawn を繰り返すとメモリリークする
  2011-11-29 10:03 [ruby-dev:44904] [ruby-trunk - Bug #5688][Open] Solaris10 で spawn を繰り返すとメモリリークする okkez _
                   ` (4 preceding siblings ...)
  2011-12-12  3:36 ` [ruby-dev:44968] " okkez _
@ 2011-12-12  4:31 ` Naohisa Goto
  2011-12-13 15:41 ` [ruby-dev:44986] " okkez _
  6 siblings, 0 replies; 14+ messages in thread
From: Naohisa Goto @ 2011-12-12  4:31 UTC (permalink / raw
  To: ruby developers list


Issue #5688 has been updated by Naohisa Goto.


後藤です。sparc上のSolaris担当ということになってますが、Intelチップ上のSolarisはよく知りません。

r34010 + trunk用のパッチが、sparc 上の Solaris10 にて、SunStudio 11, gcc 4.4.3, gcc 3.4.3, fcc 5.6 の32ビット、64ビット両方のコンパイルオプションにて、make testが通り、Error/Failureが増えていないことを確認しました。

Oracle SolarisStudio 12.2 で 64ビットコンパイルすると make test-all が Segmentation Fault になるのは別の問題だと思うので後で調べます。
----------------------------------------
Bug #5688: Solaris10 で spawn を繰り返すとメモリリークする
http://redmine.ruby-lang.org/issues/5688

Author: okkez _
Status: Assigned
Priority: Normal
Assignee: Yukihiro Matsumoto
Category: core
Target version: 2.0.0
ruby -v: -


Solaris10 で spawn を繰り返すとメモリリークします。
Ruby は Solaris の gcc でビルドしています。32bit でも 64bit でも結果は同じでした。
1.9.2-p180(64bit), 1.9.2-p290(32bit), 1.9.3-p0(64bit) で確認しました。

再現手順は以下の通りです。
spawn-sleep.rb を以下の内容で作ります。

  #!/usr/bin/env ruby
  ARGV[0].to_i.times do |n|
    spawn("sleep", "5")
    sleep 0.2
    GC.start if n % 100 == 0
  end

spawn-sleep.sh を以下の内容で作ります。

  #!/bin/bash
  ./spawn-sleep.rb 3000 &
  pid=$!
  echo spawn-sleep:$pid
  trap "kill $pid; exit" INT TERM
  
  count=0
  while true; do
      date "+%Y-%m-%d %H:%M:%S"
      ps -o pid,ppid,vsz,rss,args | head -1 
      ps -o pid,ppid,vsz,rss,args | grep spawn-sleep.rb | grep -v grep
      echo "=========="
      sleep 1
  done

これで spawn-sleep.sh を実行すると spawn-sleep.rb の VSZ と RSS が徐々に増えていきます。
これはメモリリークだと思うのですが、Debian(sid) では再現しませんでした。
ちなみに、spawn の部分を system に変えても同様でした。



-- 
http://redmine.ruby-lang.org

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [ruby-dev:44986] [ruby-trunk - Bug #5688] Solaris10 で spawn を繰り返すとメモリリークする
  2011-11-29 10:03 [ruby-dev:44904] [ruby-trunk - Bug #5688][Open] Solaris10 で spawn を繰り返すとメモリリークする okkez _
                   ` (5 preceding siblings ...)
  2011-12-12  4:31 ` [ruby-dev:44973] " Naohisa Goto
@ 2011-12-13 15:41 ` okkez _
  6 siblings, 0 replies; 14+ messages in thread
From: okkez _ @ 2011-12-13 15:41 UTC (permalink / raw
  To: ruby developers list


Issue #5688 has been updated by okkez _.

Assignee changed from Yukihiro Matsumoto to okkez _

コミット権を頂いたので担当を変更します。

----------------------------------------
Bug #5688: Solaris10 で spawn を繰り返すとメモリリークする
http://redmine.ruby-lang.org/issues/5688

Author: okkez _
Status: Assigned
Priority: Normal
Assignee: okkez _
Category: core
Target version: 2.0.0
ruby -v: -


Solaris10 で spawn を繰り返すとメモリリークします。
Ruby は Solaris の gcc でビルドしています。32bit でも 64bit でも結果は同じでした。
1.9.2-p180(64bit), 1.9.2-p290(32bit), 1.9.3-p0(64bit) で確認しました。

再現手順は以下の通りです。
spawn-sleep.rb を以下の内容で作ります。

  #!/usr/bin/env ruby
  ARGV[0].to_i.times do |n|
    spawn("sleep", "5")
    sleep 0.2
    GC.start if n % 100 == 0
  end

spawn-sleep.sh を以下の内容で作ります。

  #!/bin/bash
  ./spawn-sleep.rb 3000 &
  pid=$!
  echo spawn-sleep:$pid
  trap "kill $pid; exit" INT TERM
  
  count=0
  while true; do
      date "+%Y-%m-%d %H:%M:%S"
      ps -o pid,ppid,vsz,rss,args | head -1 
      ps -o pid,ppid,vsz,rss,args | grep spawn-sleep.rb | grep -v grep
      echo "=========="
      sleep 1
  done

これで spawn-sleep.sh を実行すると spawn-sleep.rb の VSZ と RSS が徐々に増えていきます。
これはメモリリークだと思うのですが、Debian(sid) では再現しませんでした。
ちなみに、spawn の部分を system に変えても同様でした。



-- 
http://redmine.ruby-lang.org

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2011-12-13 15:56 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-29 10:03 [ruby-dev:44904] [ruby-trunk - Bug #5688][Open] Solaris10 で spawn を繰り返すとメモリリークする okkez _
2011-12-01 10:11 ` [ruby-dev:44914] [ruby-trunk - Bug #5688] " okkez _
2011-12-01 10:35 ` [ruby-dev:44915] [ruby-trunk - Bug #5688][Assigned] " Nobuyoshi Nakada
2011-12-01 12:59 ` [ruby-dev:44916] [ruby-trunk - Bug #5688] " okkez _
2011-12-01 13:05   ` [ruby-dev:44917] " U.Nakamura
2011-12-02  4:16 ` [ruby-dev:44922] " okkez _
2011-12-02  4:40   ` [ruby-dev:44923] " KOSAKI Motohiro
2011-12-02  5:00     ` [ruby-dev:44924] " Shota Fukumori (sora_h)
2011-12-12  3:36 ` [ruby-dev:44968] " okkez _
2011-12-12  3:54   ` [ruby-dev:44969] " Yukihiro Matsumoto
2011-12-12  4:16     ` [ruby-dev:44971] " Shugo Maeda
2011-12-12  4:21       ` [ruby-dev:44972] " Yukihiro Matsumoto
2011-12-12  4:31 ` [ruby-dev:44973] " Naohisa Goto
2011-12-13 15:41 ` [ruby-dev:44986] " okkez _

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).