From: Sylvain Joyeux Date: 2007-06-04T03:32:54+09:00 Subject: Re: $2000 USD Reward for help fixing Segmentation Fault in GC --Boundary-00=_DlwYGGeeWUPqPP+ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline On Friday 01 June 2007 20:04:09 Sylvain Joyeux wrote: > If you can run your application on x86 and still have the crash, run the > interpreter under valgrind. You'll have to generate a suppression file > beforehand though. Brent, you can try the attached file. They are for 1.8.5 under debian, but maybe the backtraces will be similar enough to do the trick for you. Sylvain --Boundary-00=_DlwYGGeeWUPqPP+ Content-Type: text/plain; charset="iso-8859-1"; name="ruby2.valgrind" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="ruby2.valgrind" { RubyGC:New Memcheck:Value4 obj:/usr/lib/libruby.so.1.8.4 obj:/usr/lib/libruby.so.1.8.4 obj:/usr/lib/libruby.so.1.8.4 fun:rb_newobj } { RubyGC:New Memcheck:Cond obj:/usr/lib/libruby.so.1.8.4 obj:/usr/lib/libruby.so.1.8.4 obj:/usr/lib/libruby.so.1.8.4 fun:rb_newobj } { RubyGC:New Memcheck:Value4 obj:/usr/lib/libruby.so.1.8.4 obj:/usr/lib/libruby.so.1.8.4 fun:rb_newobj } { RubyGC:New Memcheck:Cond obj:/usr/lib/libruby.so.1.8.4 obj:/usr/lib/libruby.so.1.8.4 fun:rb_newobj } { RubyGC:New Memcheck:Value4 obj:/usr/lib/libruby.so.1.8.4 obj:/usr/lib/libruby.so.1.8.4 obj:/usr/lib/libruby.so.1.8.4 obj:/usr/lib/libruby.so.1.8.4 fun:rb_newobj } { RubyGC:New Memcheck:Cond obj:/usr/lib/libruby.so.1.8.4 obj:/usr/lib/libruby.so.1.8.4 obj:/usr/lib/libruby.so.1.8.4 obj:/usr/lib/libruby.so.1.8.4 fun:rb_newobj } { RubyGC:Mark Memcheck:Value4 obj:/usr/lib/libruby.so.1.8.4 obj:/usr/lib/libruby.so.1.8.4 fun:rb_gc_mark_locations } { RubyGC:Mark Memcheck:Cond obj:/usr/lib/libruby.so.1.8.4 obj:/usr/lib/libruby.so.1.8.4 fun:rb_gc_mark_locations } { RubyGC:Mark Memcheck:Value4 obj:/usr/lib/libruby.so.1.8.4 obj:/usr/lib/libruby.so.1.8.4 obj:/usr/lib/libruby.so.1.8.4 fun:rb_gc_mark_locations } { RubyGC:Mark Memcheck:Cond obj:/usr/lib/libruby.so.1.8.4 obj:/usr/lib/libruby.so.1.8.4 obj:/usr/lib/libruby.so.1.8.4 fun:rb_gc_mark_locations } { RubyGC:MarkChildren Memcheck:Cond fun:gc_mark_children fun:mark_locations_array fun:garbage_collect fun:rb_newobj } { RubyGC:MarkChildren Memcheck:Value4 fun:gc_mark_children fun:mark_locations_array fun:garbage_collect fun:rb_newobj } { RubyGC:Mark Memcheck:Cond fun:gc_mark fun:mark_locations_array fun:garbage_collect fun:rb_newobj } { RubyGC:Mark Memcheck:Value4 fun:gc_mark fun:mark_locations_array fun:garbage_collect fun:rb_newobj } { RubyGC:MarkLocations Memcheck:Cond fun:mark_locations_array fun:garbage_collect fun:rb_newobj } { RubyGC:MarkLocations Memcheck:Value4 fun:mark_locations_array fun:garbage_collect fun:rb_newobj } { RubyGC:Mark Memcheck:Value4 fun:gc_mark fun:mark_locations_array fun:garbage_collect fun:rb_newobj fun:rb_node_newnode fun:new_fcall fun:ruby_yyparse fun:yycompile fun:load_file fun:rb_load fun:rb_require_safe fun:rb_f_require } { RubyGC:Mark Memcheck:Cond fun:gc_mark fun:mark_locations_array fun:garbage_collect fun:rb_newobj fun:rb_node_newnode fun:new_fcall fun:ruby_yyparse fun:yycompile fun:load_file fun:rb_load fun:rb_require_safe fun:rb_f_require } { RubyGC:MarkChildren Memcheck:Value4 fun:gc_mark_children fun:mark_locations_array fun:garbage_collect fun:rb_newobj fun:rb_node_newnode fun:new_fcall fun:ruby_yyparse fun:yycompile fun:load_file fun:rb_load fun:rb_require_safe fun:rb_f_require } { RubyGC:MarkLocations Memcheck:Cond fun:gc_mark_children fun:mark_locations_array fun:garbage_collect fun:rb_newobj fun:rb_node_newnode fun:new_fcall fun:ruby_yyparse fun:yycompile fun:load_file fun:rb_load fun:rb_require_safe fun:rb_f_require } { RubyGC:MarkLocations Memcheck:Value4 fun:mark_locations_array fun:garbage_collect fun:rb_newobj fun:rb_node_newnode fun:new_fcall fun:ruby_yyparse fun:yycompile fun:load_file fun:rb_load fun:rb_require_safe fun:rb_f_require fun:call_cfunc } { RubyGC:MarkLocations Memcheck:Cond fun:mark_locations_array fun:garbage_collect fun:rb_newobj fun:rb_node_newnode fun:new_fcall fun:ruby_yyparse fun:yycompile fun:load_file fun:rb_load fun:rb_require_safe fun:rb_f_require fun:call_cfunc } { Memcheck:Value4 fun:gc_mark_children fun:mark_locations_array fun:garbage_collect fun:rb_newobj fun:rb_node_newnode fun:new_fcall fun:ruby_yyparse fun:yycompile fun:load_file fun:rb_load fun:rb_require_safe fun:rb_f_require } { Memcheck:Cond fun:gc_mark_children fun:mark_locations_array fun:garbage_collect fun:rb_newobj fun:rb_node_newnode fun:new_fcall fun:ruby_yyparse fun:yycompile fun:load_file fun:rb_load fun:rb_require_safe fun:rb_f_require } { Memcheck:Cond obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so fun:do_sym fun:dlsym_doit obj:/lib/ld-2.3.6.so fun:_dlerror_run fun:dlsym } { Memcheck:Cond obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so fun:dl_open_worker obj:/lib/ld-2.3.6.so fun:_dl_open fun:dlopen_doit obj:/lib/ld-2.3.6.so fun:_dlerror_run fun:dlopen@@GLIBC_2.1 } { Memcheck:Cond obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so fun:dl_open_worker obj:/lib/ld-2.3.6.so fun:_dl_open fun:dlopen_doit obj:/lib/ld-2.3.6.so fun:_dlerror_run fun:dlopen@@GLIBC_2.1 } { Memcheck:Cond obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so } { Memcheck:Addr4 fun:_wordcopy_fwd_dest_aligned fun:mempcpy fun:_IO_default_xsputn fun:vfprintf fun:vsnprintf fun:snprintf fun:backtrace fun:rb_longjmp fun:rb_exc_raise fun:rb_raise fun:load_failed fun:rb_require_safe } { Memcheck:Addr4 obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so fun:dl_open_worker obj:/lib/ld-2.3.6.so fun:_dl_open fun:dlopen_doit obj:/lib/ld-2.3.6.so fun:_dlerror_run fun:dlopen@@GLIBC_2.1 } { Memcheck:Addr4 obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so fun:dl_open_worker obj:/lib/ld-2.3.6.so fun:_dl_open fun:dlopen_doit obj:/lib/ld-2.3.6.so fun:_dlerror_run fun:dlopen@@GLIBC_2.1 fun:dln_load fun:rb_require_safe } { Memcheck:Addr4 obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so fun:dl_open_worker obj:/lib/ld-2.3.6.so fun:_dl_open fun:dlopen_doit obj:/lib/ld-2.3.6.so } { Memcheck:Addr4 obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so fun:dl_open_worker obj:/lib/ld-2.3.6.so fun:_dl_open } { Memcheck:Addr4 obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so fun:dl_open_worker obj:/lib/ld-2.3.6.so fun:_dl_open fun:dlopen_doit obj:/lib/ld-2.3.6.so fun:_dlerror_run } { Memcheck:Cond obj:/lib/ld-2.3.6.so fun:dl_open_worker obj:/lib/ld-2.3.6.so fun:_dl_open fun:dlopen_doit obj:/lib/ld-2.3.6.so fun:_dlerror_run fun:dlopen@@GLIBC_2.1 fun:dln_load fun:rb_require_safe fun:rb_f_require fun:call_cfunc } { Memcheck:Cond obj:/lib/ld-2.3.6.so obj:* obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so fun:dl_open_worker obj:/lib/ld-2.3.6.so fun:_dl_open fun:dlopen_doit obj:/lib/ld-2.3.6.so fun:_dlerror_run fun:dlopen@@GLIBC_2.1 fun:rb_dlhandle_initialize } { Memcheck:Value4 obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so fun:dl_open_worker obj:/lib/ld-2.3.6.so fun:_dl_open fun:dlopen_doit obj:/lib/ld-2.3.6.so fun:_dlerror_run fun:dlopen@@GLIBC_2.1 fun:rb_dlhandle_initialize fun:call_cfunc } { Memcheck:Addr4 obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so fun:dl_open_worker obj:/lib/ld-2.3.6.so fun:_dl_open fun:dlopen_doit obj:/lib/ld-2.3.6.so fun:_dlerror_run fun:dlopen@@GLIBC_2.1 } { Memcheck:Value4 obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so fun:dl_open_worker obj:/lib/ld-2.3.6.so fun:_dl_open fun:dlopen_doit obj:/lib/ld-2.3.6.so fun:_dlerror_run fun:dlopen@@GLIBC_2.1 fun:rb_dlhandle_initialize } { Memcheck:Value4 obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so fun:dl_open_worker obj:/lib/ld-2.3.6.so fun:_dl_open fun:dlopen_doit obj:/lib/ld-2.3.6.so fun:_dlerror_run fun:dlopen@@GLIBC_2.1 fun:rb_dlhandle_initialize } { Memcheck:Addr4 obj:/lib/ld-2.3.6.so obj:/lib/ld-2.3.6.so fun:do_sym fun:dlsym_doit obj:/lib/ld-2.3.6.so fun:_dlerror_run fun:dlsym fun:rb_dlhandle_sym fun:call_cfunc fun:rb_call0 fun:rb_call fun:rb_f_send } --Boundary-00=_DlwYGGeeWUPqPP+ Content-Type: text/plain; charset="iso-8859-1"; name="ruby-dbg.valgrind" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="ruby-dbg.valgrind" { Memcheck:Cond fun:mark_locations_array fun:garbage_collect fun:rb_newobj } { Memcheck:Cond fun:gc_mark fun:mark_locations_array fun:garbage_collect fun:rb_newobj } { Memcheck:Cond fun:gc_mark_children fun:mark_locations_array fun:garbage_collect fun:rb_newobj } { Memcheck:Value4 fun:mark_locations_array fun:garbage_collect fun:rb_newobj } { Memcheck:Value4 fun:gc_mark fun:mark_locations_array fun:garbage_collect fun:rb_newobj } { Memcheck:Value4 fun:gc_mark_children fun:mark_locations_array fun:garbage_collect fun:rb_newobj } { Memcheck:Cond fun:gc_mark_children fun:mark_locations_array fun:thread_mark fun:gc_mark_children } { Memcheck:Cond fun:gc_mark fun:mark_locations_array fun:thread_mark fun:gc_mark_children } { Memcheck:Cond fun:mark_locations_array fun:thread_mark fun:gc_mark_children } { Memcheck:Value4 fun:gc_mark_children fun:mark_locations_array fun:thread_mark fun:gc_mark_children } { Memcheck:Value4 fun:gc_mark fun:mark_locations_array fun:thread_mark fun:gc_mark_children } { Memcheck:Value4 fun:mark_locations_array fun:thread_mark fun:gc_mark_children } --Boundary-00=_DlwYGGeeWUPqPP+ Content-Type: text/plain; charset="iso-8859-1"; name="ruby.valgrind" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="ruby.valgrind" { Bla Memcheck:Value4 obj:/usr/lib/libruby.so.1.8.5 fun:rb_newobj } { Bla Memcheck:Cond obj:/usr/lib/libruby.so.1.8.5 fun:rb_newobj } { Bla Memcheck:Value4 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 fun:rb_newobj } { Bla Memcheck:Cond obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 fun:rb_newobj } { Bla Memcheck:Value4 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 fun:rb_newobj } { Bla Memcheck:Cond obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 fun:rb_newobj } { Bla Memcheck:Cond obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 fun:st_foreach } { Bla Memcheck:Value4 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 fun:st_foreach } { Bla Memcheck:Cond obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 fun:st_foreach } { Bla Memcheck:Value4 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 fun:st_foreach } { Bla Memcheck:Value4 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 fun:st_foreach } { Bla Memcheck:Cond obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 fun:st_foreach } { Bla Memcheck:Value4 fun:st_lookup fun:rb_mark_generic_ivar } { Bla Memcheck:Cond fun:st_lookup fun:rb_mark_generic_ivar } { Bla Memcheck:Value4 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 fun:rb_gc_mark_threads obj:/usr/lib/libruby.so.1.8.5 fun:rb_newobj } { Bla Memcheck:Cond obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 fun:rb_gc_mark_threads obj:/usr/lib/libruby.so.1.8.5 fun:rb_newobj } { Bla Memcheck:Cond obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 fun:rb_gc } { Bla Memcheck:Value4 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 fun:rb_gc } { Bla Memcheck:Cond obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 fun:rb_gc } { Bla Memcheck:Value4 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 obj:/usr/lib/libruby.so.1.8.5 fun:rb_gc } --Boundary-00=_DlwYGGeeWUPqPP+--