From: Kazuhiro NISHIYAMA Date: 2007-01-05T20:14:42+09:00 Subject: [ruby-dev:30088] trunkの2回目のmake install 西山和広です。 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)