# Re: Marshal.load $B$GNc30H/@8;~$K(B Segmentation fault$B%(%i!\<(B

**URL:** <https://www.ruby-forum.com/t/re-marshal-load-b-gnc30h-8-k-b-segmentation-fault-b-i-b/176668>\
**Category:** Development\
**Created:** [October 4, 2009, 2:13pm UTC](https://www.ruby-forum.com/t/re-marshal-load-b-gnc30h-8-k-b-segmentation-fault-b-i-b/176668 "2009-10-04T14:13:02Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [October 4, 2009, 2:13pm UTC](https://www.ruby-forum.com/t/re-marshal-load-b-gnc30h-8-k-b-segmentation-fault-b-i-b/176668/1 "2009-10-04T14:13:02Z")

</div>

e$BEDCf$5$^!#e(B

e$B$_@$OC$K$J$C$F$_$j$^$9!#6bED$G$9!#e(B

e$B:G?7HG$N%9%J%C%W%7%g%C%H$G$“$ke(Bruby-1.8 (ruby 1.8.8dev  
(2009-10-02))e$B$G$b;n$7$F$\_$^$7$?!#e(B  
e$B@h$NDs\<($7$?%3!\<%I$G$OLdBj$”$j$^$;$s$G$7$?!#e(B  
e$B$^$?!"HyL/$KJQ2=$5$;$?%3!\<%I$G$d$O$je(Bcore  
dumpe$B$,H/@8$7$^$7$?!#e(B  
e$B%3%a%s%H9T$NM-L5$Ge(Bcore dumpe$B$7$?$je(B  
e$B$7$J$+$C$?$j$9$k$h$&$G$9$N$G!"e(B  
e$B%9%?%C%/$NHyL/$J\>uBV$K0MB8$7$F$$$k$h$&$K;W$($^$9!#e(B

## core dumpe$B$H$J$C$?%3!\<%Ie(B

## #! /usr/local/bin/ruby GC.stress = true loop do begin f = File.open(“d”) Marshal.load(“”) rescue end end

$ ./ruby marshal\_error.rb  
marshal\_error.rb:6: [BUG] Segmentation fault  
ruby 1.8.8dev (2009-10-02) [x86\_64-linux]

$ gdb ./ruby core.11520  
GNU gdb Fedora (6.8-27.el5)  
Copyright (C) 2008 Free Software Foundation, Inc.  
License GPLv3+: GNU GPL version 3 or later  
[http://gnu.org/licenses/gpl.html](http://gnu.org/licenses/gpl.html)  
This is free software: you are free to change and redistribute it.  
There is NO WARRANTY, to the extent permitted by law. Type “show  
copying”  
and “show warranty” for details.  
This GDB was configured as “x86\_64-redhat-linux-gnu”…  
Reading symbols from /lib64/librt.so.1…done.  
Loaded symbols for /lib64/librt.so.1  
Reading symbols from /lib64/libdl.so.2…done.  
Loaded symbols for /lib64/libdl.so.2  
Reading symbols from /lib64/libcrypt.so.1…done.  
Loaded symbols for /lib64/libcrypt.so.1  
Reading symbols from /lib64/libm.so.6…done.  
Loaded symbols for /lib64/libm.so.6  
Reading symbols from /lib64/libc.so.6…done.  
Loaded symbols for /lib64/libc.so.6  
Reading symbols from /lib64/libpthread.so.0…done.  
Loaded symbols for /lib64/libpthread.so.0  
Reading symbols from /lib64/ld-linux-x86-64.so.2…done.  
Loaded symbols for /lib64/ld-linux-x86-64.so.2  
Core was generated by `./ruby marshal\_error.rb’.  
Program terminated with signal 6, Aborted.  
[New process 11520]  
#0 0x0000003131030215 in raise () from /lib64/libc.so.6  
(gdb) bt  
#0 0x0000003131030215 in raise () from /lib64/libc.so.6  
#1 0x0000003131031cc0 in abort () from /lib64/libc.so.6  
#2 0x000000000049b478 in rb\_bug (fmt=0x4b7d6d “Segmentation fault”) at  
error.c:213  
#3 0x000000000047155a in sigsegv (sig=) at  
signal.c:634  
#4  
#5 0x0000000000473e1d in st\_foreach (table=0x42d8db, func=0x42eac0  
\<mark\_entry\>, arg=0) at  
st.c:486  
#6 0x000000000042eb91 in mark\_locations\_array (x=0x7fffeac84b90,  
n=1920) at gc.c:708  
#7 0x000000000042ece2 in garbage\_collect () at gc.c:1505  
#8 0x000000000042f7b9 in rb\_newobj () at gc.c:453  
#9 0x00000000004755f9 in str\_alloc (klass=4380891) at string.c:67  
#10 0x00000000004756f9 in str\_new3 (klass=4380891, str=4385472) at  
string.c:143  
#11 0x0000000000475746 in rb\_str\_new3 (str=47703126413440) at  
string.c:157  
#12 0x00000000004165b1 in rb\_eval (self=47703126553240, n=) at eval.c:3  
926  
#13 0x0000000000416c20 in rb\_eval (self=47703126553240, n=) at eval.c:3  
550  
#14 0x00000000004187b1 in rb\_eval (self=47703126553240, n=) at eval.c:3  
369  
#15 0x0000000000426b55 in rb\_yield\_0 (val=6, self=47703126553240,  
klass=0,  
flags=, avalue=0) at eval.c:5154  
#16 0x0000000000428067 in loop\_i () at eval.c:5286  
#17 0x0000000000410bc4 in rb\_rescue2 (b\_proc=0x428050 \<loop\_i\>, data1=0,  
r\_proc=0, data2=0)  
at eval.c:5550  
#18 0x0000000000410da0 in rb\_f\_loop () at eval.c:5311  
#19 0x000000000041a5d6 in rb\_call0 (klass=47703126563120,  
recv=47703126553240, id=4129, oid=  
4129,  
argc=32767, argv=0x0, body=0x2b62bfe99b78, flags=) at eval.c:5990  
#20 0x000000000041b3e8 in rb\_call (klass=47703126563120,  
recv=47703126553240, mid=4129, argc  
=0,  
argv=0x0, scope=1, self=47703126553240) at eval.c:6241  
#21 0x0000000000416dcb in rb\_eval (self=, n=)  
at eval.c:3570  
#22 0x0000000000419149 in rb\_eval (self=47703126553240, n=) at eval.c:3  
283  
#23 0x00000000004285e5 in ruby\_exec\_internal () at eval.c:1688  
#24 0x0000000000428605 in ruby\_exec () at eval.c:1711  
#25 0x000000000042862f in ruby\_run () at eval.c:1721  
#26 0x000000000040deb3 in main (argc=2, argv=0x7fffeac86638) at  
main.c:48

----- Original Message -----  
e$BAw?.\<Te(B: Tanaka A.[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
e$B08@he(B: removed\_email\_address@domain.invalid  
e$BF|IUe(B:Sunday, October, 04, 2009, 08:30 PM  
e$B7oL\>e(B: [ruby-dev:39431] Re: Marshal.load e$B$GNc30H/@8;~$Ke(B  
Segmentation faulte$B%(%i!\<e(B

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [October 4, 2009, 3:03pm UTC](https://www.ruby-forum.com/t/re-marshal-load-b-gnc30h-8-k-b-segmentation-fault-b-i-b/176668/2 "2009-10-04T15:03:23Z")

</div>

In article [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid),  
removed\_email\_address@domain.invalid writes:

> e$B:G?7HG$N%9%J%C%W%7%g%C%H$G$"$ke(Bruby-1.8 (ruby 1.8.8dev (2009-10-02))e$B$G$b;n$7$F$\_$^$7$?!#e(B

e$B%9%J%C%W%7%g%C%H$J$ie(B

Sun Oct 4 19:30:54 2009 Nobuyoshi N. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

```
    * marshal.c (struct {dump,load}_arg): manage with dfree, instead
      of using local variable which may be moved by context switch.
      [ruby-dev:39425]

```

e$B$,F~$C$F$$$k!"$\*$=$i$/L@F|@8@.$5$l$k$b$N$G!#e(B
