From: Brent Roman Date: 2007-06-08T14:50:12+09:00 Subject: Re: $2000 USD Reward for help fixing Segmentation Fault in GC Per the suggestion of ggarra and Sylvain, I've been running our robotic lab control application under valgrind on an x86 laptop rather than our ARM based CPU board. I've posted valgrind's stderr output and the suppression file on our FTP site: ftp://ftp.mbari.org/pub/brent the suppression file is rubySuppressions.valgrind the stderr output is valgrind.trace2 So far, I have not triggered a Segfault with the simulated hardware currently available to me. The unhandled ioctl is expected. We're locking a serial port for exclusive access. Many of the memcheck errors have been suppressed as they are apparently artifacts of Ruby's conservative garbarge collector. However, those below *do* worry me. Are they innocuous, or do they indicate a real problem? .... ==10837== Invalid write of size 1 ==10837== at 0x401DEAC: memcpy (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so) ==10837== by 0x8062E5E: rb_thread_restore_context (eval.c:7624) ==10837== by 0x8062CA8: stack_extend (eval.c:7575) ==10837== by 0x8062CF3: rb_thread_restore_context (eval.c:7592) ==10837== by 0x8062CA8: stack_extend (eval.c:7575) ==10837== by 0x8062CF3: rb_thread_restore_context (eval.c:7592) ==10837== by 0x8062CA8: stack_extend (eval.c:7575) ==10837== by 0x8062CF3: rb_thread_restore_context (eval.c:7592) ==10837== by 0x8062CA8: stack_extend (eval.c:7575) ==10837== by 0x8062CF3: rb_thread_restore_context (eval.c:7592) ==10837== by 0x8062CA8: stack_extend (eval.c:7575) ==10837== by 0x8062CF3: rb_thread_restore_context (eval.c:7592) ==10837== Address 0xBEFE8908 is on thread 1's stack ==10837== ==10837== Invalid write of size 1 ==10837== at 0x401DEAC: memcpy (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so) ==10837== by 0x8062E5E: rb_thread_restore_context (eval.c:7624) ==10837== by 0x8063D21: rb_thread_schedule (eval.c:7987) ==10837== by 0x8063E9D: rb_thread_fd_writable (eval.c:8018) ==10837== by 0x8070835: io_fflush (io.c:256) ==10837== by 0x8070A70: rb_io_flush (io.c:339) ==10837== by 0x805ACEE: call_cfunc (eval.c:4288) ==10837== by 0x805B78F: rb_call0 (eval.c:4423) ==10837== by 0x805C2CA: rb_call (eval.c:4654) ==10837== by 0x8055F53: rb_eval (eval.c:2559) ==10837== by 0x80594C9: rb_yield_0 (eval.c:3650) ==10837== by 0x80554A1: rb_eval (eval.c:2391) ==10837== Address 0xBEFE8908 is on thread 1's stack ==10837== ==10837== Invalid write of size 1 ==10837== at 0x401DEAC: memcpy (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so) ==10837== by 0x8062E5E: rb_thread_restore_context (eval.c:7624) ==10837== by 0x8063D21: rb_thread_schedule (eval.c:7987) ==10837== by 0x806466B: rb_thread_stop (eval.c:8309) ==10837== by 0x805ACEE: call_cfunc (eval.c:4288) ==10837== by 0x805B78F: rb_call0 (eval.c:4423) ==10837== by 0x805C2CA: rb_call (eval.c:4654) ==10837== by 0x8055F53: rb_eval (eval.c:2559) ==10837== by 0x805BDE8: rb_call0 (eval.c:4560) ==10837== by 0x805C2CA: rb_call (eval.c:4654) ==10837== by 0x8055F53: rb_eval (eval.c:2559) ==10837== by 0x805BDE8: rb_call0 (eval.c:4560) ==10837== Address 0xBEFE8908 is on thread 1's stack = -- Brent Roman Software Engineer Tel: 831 775 1808 425 Clinton St., Santa Cruz, California, 95062 mailto:brent@mbari.org http://www.mbari.org/~brent