Bug #706: Segmentation fault in garbage collector ruby 1.8.7 (2008-10-31 revision 0) [x86_64-linux]
http://redmine.ruby-lang.org/issues/show/706

Author: hank tank
Status: Open, Priority: Immediate

When using C/C++ objects in ruby through SWIG wrappers the garbage collectors causes segmentation faults when run. Heere is a backtrace

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 47395701238496 (LWP 30763)]
garbage_collect () at gc.c:1184
1184		    if (!(p->as.basic.flags & FL_MARK)) {
(gdb) bt
#0  garbage_collect () at gc.c:1184
#1  0x000000000042e41b in rb_gc () at gc.c:1533
#2  0x000000000042e439 in rb_gc_start () at gc.c:1550
#3  0x000000000041b87a in rb_call0 (klass=47395691970840, recv=47395691970880, id=5313, oid=5313, argc=0, argv=0x0, body=0x2b1b2b6240f0, 
    flags=<value optimized out>) at eval.c:5906
#4  0x000000000041c63f in rb_call (klass=47395691970840, recv=47395691970880, mid=5313, argc=0, argv=0x0, scope=0, self=47395816630240) at eval.c:6153
#5  0x000000000041734c in rb_eval (self=47395816630240, n=<value optimized out>) at eval.c:3494
#6  0x000000000041c0f2 in rb_call0 (klass=47395816630320, recv=47395816630240, id=107929, oid=107929, argc=0, argv=0x7fff7f4c4f50, body=0x2b1b32d383a8, 
    flags=<value optimized out>) at eval.c:6057
#7  0x000000000041c63f in rb_call (klass=47395816630320, recv=47395816630240, mid=107929, argc=4, argv=0x7fff7f4c4f30, scope=0, self=47395815611600) at eval.c:6153
#8  0x000000000041734c in rb_eval (self=47395815611600, n=<value optimized out>) at eval.c:3494
#9  0x00000000004176db in rb_eval (self=47395815611600, n=<value optimized out>) at eval.c:3049
#10 0x000000000041c0f2 in rb_call0 (klass=47395816155560, recv=47395815611600, id=111321, oid=111321, argc=0, argv=0x7fff7f4c5c48, body=0x2b1b32cc22c0, 
    flags=<value optimized out>) at eval.c:6057
#11 0x000000000041c63f in rb_call (klass=47395816155560, recv=47395815611600, mid=111321, argc=0, argv=0x7fff7f4c5c48, scope=1, self=6) at eval.c:6153
#12 0x000000000042421e in rb_f_send (argc=1, argv=0x7fff7f4c5c40, recv=47395815611600) at eval.c:6201
#13 0x000000000041b87a in rb_call0 (klass=47395692112200, recv=47395815611600, id=4225, oid=4225, argc=1, argv=0x7fff7f4c5c40, body=0x2b1b2b6423c0, 
    flags=<value optimized out>) at eval.c:5906
#14 0x000000000041c63f in rb_call (klass=47395692112200, recv=47395815611600, mid=4225, argc=1, argv=0x7fff7f4c5c40, scope=1, self=47395815611600) at eval.c:6153
#15 0x0000000000417482 in rb_eval (self=47395815611600, n=<value optimized out>) at eval.c:3509
#16 0x000000000041c0f2 in rb_call0 (klass=47395735937960, recv=47395815611600, id=63369, oid=56801, argc=0, argv=0x0, body=0x2b1b2e1bf750, 
    flags=<value optimized out>) at eval.c:6057
#17 0x000000000041c63f in rb_call (klass=47395735937960, recv=47395815611600, mid=63369, argc=0, argv=0x0, scope=2, self=47395815611600) at eval.c:6153
#18 0x00000000004174cc in rb_eval (self=47395815611600, n=<value optimized out>) at eval.c:3515
#19 0x000000000041c0f2 in rb_call0 (klass=47395736540480, recv=47395815611600, id=63337, oid=63337, argc=0, argv=0x7fff7f4c68a8, body=0x2b1b2dfa87f0, 
    flags=<value optimized out>) at eval.c:6057
#20 0x000000000041c63f in rb_call (klass=47395736540480, recv=47395815611600, mid=63337, argc=3, argv=0x7fff7f4c6890, scope=1, self=47395815611600) at eval.c:6153
#21 0x0000000000417482 in rb_eval (self=47395815611600, n=<value optimized out>) at eval.c:3509


----------------------------------------
http://redmine.ruby-lang.org