[#30220] schedule for Ruby 1.8.6 — "Akinori MUSHA" <knu@...>

 ruby-core を読んでいない人もいると思うので、ここでもアナウンス

20 messages 2007/01/30

[ruby-dev:30088] trunkの2回目のmake install

From: Kazuhiro NISHIYAMA <zn@...>
Date: 2007-01-05 11:14:42 UTC
List: ruby-dev #30088
西山和広です。

trunkを一度make installして、installした先を消さずに
もう一度make installすると、installing rdocの途中で
負荷があがりはじめて、Linuxマシン自体の反応がなくなるほどに
なってしまいました。


gdb上で実行して、負荷があがり始めるまで待ってから、
Ctrl+Cで止めてみると、gc.cの中のループが回りまくっているように
見えました。

% gdb --args ./miniruby /home/kazu/wc/ruby-svn/ruby-trunk/instruby.rb --dest-dir="" --extout=".ext" --make="make" --mflags="" --make-flags="" --installed-list .installed.list --install=rdoc --rdoc-output=".ext/rdoc"
GNU gdb 6.4.90-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".

(gdb) r
Starting program: /home/kazu/build/ruby-trunk/ruby-trunk/miniruby /home/kazu/wc/ruby-svn/ruby-trunk/instruby.rb --dest-dir= --extout=.ext --make=make --mflags= --make-flags= --installed-list .installed.list --install=rdoc --rdoc-output=.ext/rdoc
[Thread debugging using libthread_db enabled]
[New Thread -1209837904 (LWP 18340)]
[New Thread -1209840736 (LWP 18343)]
installing rdoc

Program received signal SIGINT, Interrupt.
[Switching to Thread -1209837904 (LWP 18340)]
add_heap () at /home/kazu/wc/ruby-svn/ruby-trunk/gc.c:453
453             p->as.free.flags = 0;
(gdb) p p
$1 = (RVALUE *) 0x8bba3020
(gdb) p pend
$2 = (RVALUE *) 0xb70f46d4
(gdb)


IRCでの話によると、yamlファイルが大量にあって、FileUtilsのinstallの
コピー元と先を比較して全く同じだったらコピーしないという処理が
メモリを食いまくっているのではないかということのようです。


-- 
|ZnZ(ゼット エヌ ゼット)
|西山和広(Kazuhiro NISHIYAMA)

In This Thread

Prev Next