[Gridflow-dev] segmentation faults with pd-0.39-test6

Mathieu Bouchard matju at artengine.ca
Wed Aug 24 17:38:44 EDT 2005

On Wed, 24 Aug 2005, Claude Heiland-Allen wrote:

> Seems to be a problem with Ruby's GC.  This happens about 70% of the 
> time when starting Pd, I find it strange that it doesn't happen 100% of 
> the time or 0% of the time, I guess threading is involved.
> $ ./configure --debug --debug-harder

Just --debug-harder is sufficient.

> Pd version 0.39 TEST 6

I've never tested with that one. I've tried with devel_0_39 and miller's 

> [gf] This is GridFlow 0.8.1 within Ruby version 1.8.2
> [gf] base/main.c was compiled on Aug 24 2005, 13:36:54
> pd_gui: pd process exited
> Segmentation fault (core dumped)

With yesterday's fix it should say something like this in the console:

  STACK_END old=0xbffffffc; new=0xbffffffc

If/when those values are really off from that then it can mean one of a 
few things:

  (1) you have a stack end misdetection problem
  (2) Win32 (has a different stack position than OSX+Linux)
  (3) 64-bit mode (AMD K8 "Opteron")
  (4) new Linux kernel (or GLIBC) decides to do things differently
  (666) bad horoscope, full moon, or voodoo

> (gdb) where
> #0  0xb7c74cd3 in rb_source_filename () from /usr/lib/libruby18.so.1.8
> #1  0xb7c75ee6 in rb_gc_mark_frame () from /usr/lib/libruby18.so.1.8
> #2  0xb7c748e9 in rb_newobj () from /usr/lib/libruby18.so.1.8
> #3  0xb7c9de20 in rb_node_newnode () from /usr/lib/libruby18.so.1.8

Yeah, definitely a problem with the collector. Actually you're supposed to 
see rb_gc () between #2 and #3 but i suppose that gets inlined (?) in 

You've sent me that line on IRC:

ClaudiusMinimus matju: STACK_END old=0xbfac3ffc; new=0xbfacfffc

That looks *super* wrong.

I'd first try forcing it to 0xbffffffc.

If it doesn't work, I'd try Ruby 1.9.0. Compile it yourself, with
./configure --enable-shared. You may first remove any trace of Ruby on
your system to avoid confusion, or else make sure you always know which
Ruby is running. NOTE: you then have to reconf+recompile+reinstall GF.

> #27 0x00000001 in ?? ()
> #28 0x00000000 in ?? ()
> #30 0x00000004 in ?? ()
> #31 0x00000000 in ?? ()
> #34 0x00000000 in ?? ()
> #35 0x00000000 in ?? ()
> #36 0x00000000 in ?? ()

Those are nonsense entries. I wonder where they come from.

Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju
Freelance Digital Arts Engineer, Montréal QC Canada

More information about the Gridflow-dev mailing list