渡辺哲也です。

ruby 1.9 trunk で core したのでお知らせします。

ruby 1.9.0 (2007-06-06 patchlevel 0) [i686-linux] rev 12449
Vine Linux 3.2 glibc-2.3.3-3vl1.3


再現方法

再現スクリプトです。条件をしぼり込んだところグローバル変数($ 
付きの変数)で発生するようです。最初に気が付いたときは、$_ で
起きました。

------------------------------

while $a = gets
end
------------------------------

ファイルサイズは 250MB 程度必要のようです。テキストファイル系
で元ファイルを用意して、次のように倍に(ファイルの数を増やせば
さらに)して 250MB 程度のファイルを用意してください。

------------------------------
cat j.txt j.txt >| jj.txt
cat jj.txt jj.txt >| j.txt
------------------------------

バックトレースです。

------------------------------
#0  0x40134a6f in mallopt () from /lib/i686/libc.so.6
#1  0x40133d23 in malloc () from /lib/i686/libc.so.6
#2  0x0805ec91 in ruby_xmalloc (size=1075819392) at gc.c:239
#3  0x0805ed23 in ruby_xmalloc2 (n=1075819392, size=1) at gc.c:259
#4  0x080a38ab in rb_str_buf_new (capa=128) at string.c:286
#5  0x08062aaa in appendline (fptr=0x816a320, delim=10, strp=0xbf800138, lp=0xbf800158) at io.c:1560
#6  0x08062c56 in rb_io_getline_fast (fptr=0x816a320, delim=10 '\n', limit=0) at io.c:1642
#7  0x080630de in rb_io_gets (io=1076507540) at io.c:1784
#8  0x08066181 in argf_getline (argc=0, argv=0x401ff020) at io.c:4451
#9  0x08066280 in rb_f_gets (argc=0, argv=0x401ff020) at io.c:4511
#10 0x080bdf0e in call_cfunc (func=0x80661e6 <rb_f_gets>, recv=1076549840, len=1075819392, argc=0, argv=0x401fb390) at call_cfunc.ci:32
#11 0x080bbfc3 in th_eval (th=0x8130fd8, initial=0) at insns.def:1279
#12 0x080bd85f in th_eval_body (th=0x8130fd8) at vm.c:1658
#13 0x080bdd48 in rb_thread_eval (th=0x8130fd8, iseqval=1076507960) at vm.c:1864
#14 0x080bf115 in yarvcore_eval_iseq (iseq=1076507960) at yarvcore.c:98
#15 0x080bf1b2 in yarvcore_eval_parsed (node=0x402a35b0, file=1076508060) at yarvcore.c:130
#16 0x080593ea in ruby_exec_internal () at eval.c:212
#17 0x08059425 in ruby_exec () at eval.c:227
#18 0x0805945b in ruby_run () at eval.c:246
#19 0x08056df9 in main () at main.c:47
#20 0x400d9c1f in __libc_start_main () from /lib/i686/libc.so.6
------------------------------