From: Brent Roman Date: 2007-06-03T01:13:36+09:00 Subject: Re: $2000 USD Reward for help fixing Segmentation Fault in GC Zimbatm, SourceRef and ObjectSpace are pure ruby. They are for debugging and should not be used in normal operation. They are loaded in our application's initialization as a convenience. The only 'C' extensions used are the "standard" termios for configuring serial ports and our own, very trivial, mbarilib. mbarilib defines only one method, called "Kernel.doze", that is equivalent to Kernel.sleep but clears Thread.critical before sleeping (just as Thread.stop does). This lets one stop a thread with a "timeout" while avoiding the race condition that would otherwise result if Thread.critical were previously cleared as a separate ruby operation as in: Thread.critical = false sleep(time) #race if this thread gets interrupted between these two lines The full core dump at the time of the crash is available on our FTP site at: ftp://ftp.mbari.org/pub/brent "The code" is about 1MB of ruby source. If you can be more specific about you want to see, I'll look into releasing those parts to you. - brent > Hi Brent, > > I've looked a bit around but it seems hard to do anything without the > full running stack. As you said, the problem also occurs on an x86 > computer so if you are not bound by licencing you could share the code ? > > I've also looked at your ruby extensions. Do you use them a lot ? From > the backtrace, you have a lot of evals. Are they comming from the > SourceRef extension ? > > Also are you using ObjectSpace ? > > -- > Cheers, > zimbatm -- Brent Roman Software Engineer Tel: 831 775 1808 425 Clinton St., Santa Cruz, California, 95062 mailto:brent@mbari.org http://www.mbari.org/~brent