[Gridflow-dev] segmentation faults with pd-0.39-test6
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
(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