# Trunk dumps core with csv lib

**URL:** <https://www.ruby-forum.com/t/trunk-dumps-core-with-csv-lib/85740>\
**Category:** Development\
**Created:** [February 15, 2007, 11:31pm UTC](https://www.ruby-forum.com/t/trunk-dumps-core-with-csv-lib/85740 "2007-02-15T23:31:23Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![sheepman](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/d07c76/32.png) [@sheepman](https://www.ruby-forum.com/u/sheepman)\
**Post date:** [February 15, 2007, 11:31pm UTC](https://www.ruby-forum.com/t/trunk-dumps-core-with-csv-lib/85740/1 "2007-02-15T23:31:23Z")

</div>

e$B$3$s$K$A$O!"e(Bsheepman e$B$G$9!#e(B

e$B0J2\<$N$h$&$Ke(B csv e$B%i%$%V%i%j$r;H$&$He(B core e$B$rEG$-$^$9!#e(B

$ cat t.rb  
require ‘csv’  
a = “7777777,4444,1\r\n”  
s = a \* 20000  
CSV.parse(s)

$ ruby-1.9 -v t.rb  
ruby 1.9.0 (2007-02-15 patchlevel 0) [i686-linux]  
zsh: segmentation fault ruby-1.9 -v t.rb

$ gdb ~/ruby/src/ruby-build/ruby-1.9  
GNU gdb 5.2.1  
Copyright 2002 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 “i386-vine-linux”…  
(gdb) run t.rb  
Starting program: /home/sheepman/ruby/src/ruby-build/ruby-1.9 t.rb

Program received signal SIG32, Real-time event 32.  
0x4002c1d4 in pthread\_getconcurrency () from /lib/i686/libpthread.so.0  
(gdb) c  
Continuing.

Program received signal SIGSEGV, Segmentation fault.  
0x080a37b9 in str\_new (klass=1076542560,  
ptr=0x4022d7b2  
“44,1\r\n7777777,4444,1\r\n7777777,4444,1\r\n7777777,4444,1\r\n7777777,4444,1\r\n7777777,4444,1\r\n7777777,4444,1\r\n7777777,4444,1\r\n7777777,4444,1\r\n7777777,4444,1\r\n7777777,4444,1\r\n7777777,4444,1\r\n7777777,4444,1\r\n77”…,  
len=1) at …/ruby/string.c:142  
142 str = str\_alloc(klass);  
(gdb) bt  
#0 0x080a37b9 in str\_new (klass=1076542560,  
ptr=0x4022d7b2  
“44,1\r\n7777777,4444,1\r\n7777777,4444,1\r\n7777777,4444,1\r\n7777777,4444,1\r\n7777777,4444,1\r\n7777777,4444,1\r\n7777777,4444,1\r\n7777777,4444,1\r\n7777777,4444,1\r\n7777777,4444,1\r\n7777777,4444,1\r\n7777777,4444,1\r\n77”…,  
len=1) at …/ruby/string.c:142  
#1 0x080a4d41 in rb\_str\_substr (str=1076758380, beg=182186, len=1) at  
…/ruby/string.c:646  
#2 0x080a70ee in rb\_str\_aref (str=1076758380, indx=364373) at  
…/ruby/string.c:1630  
#3 0x080bf6b3 in call\_cfunc (func=0x80a7194 \<rb\_str\_aref\_m\>,  
recv=1076758380, len=1076542560,  
argc=1, argv=0x3) at call\_cfunc.ci:21  
#4 0x080bed65 in th\_eval (th=0x8150bd0, initial=0) at insns.def:1289  
#5 0x080bf2b3 in th\_eval\_body (th=0x8150bd0) at …/ruby/vm.c:1600  
#6 0x080ba666 in th\_call0 (th=0x8150bd0, klass=1076762940,  
recv=1076758360, id=3920,  
oid=1076542560, argc=0, argv=0x0, body=0x81890b8, nosuper=0) at  
…/ruby/vm.c:534  
#7 0x0805a6bb in rb\_call (klass=1076762940, recv=1076758360, mid=3920,  
argc=0, argv=0x0, scope=2)  
at …/ruby/eval.c:1640  
#8 0x08059f52 in iterate\_method (obj=1076542560) at ruby.h:752  
#9 0x08059ed4 in rb\_iterate (it\_proc=0x8059f24 \<iterate\_method\>,  
data1=3221219056,  
bl\_proc=0x80d0570 \<collect\_i\>, data2=1076758300) at  
…/ruby/eval.c:1246  
#10 0x08059fc6 in rb\_block\_call (obj=1076542560, mid=1076542560,  
argc=1076542560,  
argv=0x402abc60, bl\_proc=0x80d0570 \<collect\_i\>, data2=1076758300) at  
…/ruby/eval.c:1315  
#11 0x080d05fc in enum\_collect (obj=1076758360) at …/ruby/enum.c:312  
#12 0x080bf6b3 in call\_cfunc (func=0x80d05a8 \<enum\_collect\>,  
recv=1076758360, len=1076542560,  
argc=0, argv=0x3) at call\_cfunc.ci:21  
#13 0x080bed65 in th\_eval (th=0x8150bd0, initial=0) at insns.def:1289  
#14 0x080bf2b3 in th\_eval\_body (th=0x8150bd0) at …/ruby/vm.c:1600  
#15 0x080bf643 in rb\_thread\_eval (th=0x8150bd0, iseqval=1076875640) at  
…/ruby/vm.c:1806  
#16 0x080c08a8 in yarvcore\_eval\_iseq (iseq=1076875640) at  
…/ruby/yarvcore.c:96  
#17 0x08058f3c in ruby\_exec\_internal () at …/ruby/eval.c:228  
#18 0x08058f58 in ruby\_exec () at …/ruby/eval.c:241  
#19 0x08058f93 in ruby\_run () at …/ruby/eval.c:260  
#20 0x0805689c in th\_get\_ruby\_level\_cfp (th=0x402abc60, cfp=0x3) at  
…/ruby/main.c:47  
#21 0x400dbc1f in \_\_libc\_start\_main () from /lib/i686/libc.so.6

---

<div class="post-metadata">

**Author:** ![sheepman](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/d07c76/32.png) [@sheepman](https://www.ruby-forum.com/u/sheepman)\
**Post date:** [February 16, 2007, 11:57am UTC](https://www.ruby-forum.com/t/trunk-dumps-core-with-csv-lib/85740/2 "2007-02-16T11:57:22Z")

</div>

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:30357] trunk dumps core with csv lib”  
on Fri, 16 Feb 2007 07:30:20 +0900, sheepman  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|e$B0J2\<$N$h$&$Ke(B csv e$B%i%$%V%i%j$r;H$&$He(B core e$B$rEG$-$^$9!#e(B

e$B;d$N$H$3$m$G$O:F8=$7$^$;$s$M!#e(B

|$ cat t.rb  
|require ‘csv’  
|a = “7777777,4444,1\r\n”  
|s = a \* 20000  
|CSV.parse(s)  
|  
|$ ruby-1.9 -v t.rb  
|ruby 1.9.0 (2007-02-15 patchlevel 0) [i686-linux]

% miniruby -I lib -v /tmp/c.rb  
ruby 1.9.0 (2007-02-15 patchlevel 0) [i686-linux]  
%

e$B%j%S%8%g%s$Oe(B11755e$B$G$7$?!#e(B

---

<div class="post-metadata">

**Author:** ![sheepman](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/d07c76/32.png) [@sheepman](https://www.ruby-forum.com/u/sheepman)\
**Post date:** [February 16, 2007, 12:27pm UTC](https://www.ruby-forum.com/t/trunk-dumps-core-with-csv-lib/85740/3 "2007-02-16T12:27:27Z")

</div>

e$B!!$5$5$@$G$9!#e(B

sheepman wrote:

> e$B0J2\<$N$h$&$Ke(B csv e$B%i%$%V%i%j$r;H$&$He(B core e$B$rEG$-$^$9!#e(B
> 
> $ cat t.rb  
> require ‘csv’  
> a = “7777777,4444,1\r\n”  
> s = a \* 20000  
> CSV.parse(s)

e$B!!:F8=$7$J$$$s$G$9$h$M!#e(BGCe$B$+$J$!!#e(B
