Re: $2000 USD Reward for help fixing Segmentation Fault in GC
From:
Sylvain Joyeux <sylvain.joyeux@...4x.org>
Date:
2007-06-03 18:32:54 UTC
List:
ruby-core #11399
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
Attachments (3)
ruby2.valgrind
(9.32 KB, text/plain)
{
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
}
{
<insert a suppression name here>
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
}
{
<insert a suppression name here>
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
}
{
<insert a suppression name here>
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
}
{
<insert a suppression name here>
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
}
{
<insert a suppression name here>
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
}
{
<insert a suppression name here>
Memcheck:Cond
obj:/lib/ld-2.3.6.so
obj:/lib/ld-2.3.6.so
}
{
<insert a suppression name here>
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
}
{
<insert a suppression name here>
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
}
{
<insert a suppression name here>
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
}
{
<insert a suppression name here>
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
}
{
<insert a suppression name here>
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
}
{
<insert a suppression name here>
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
}
{
<insert a suppression name here>
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
}
{
<insert a suppression name here>
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
}
{
<insert a suppression name here>
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
}
{
<insert a suppression name here>
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
}
{
<insert a suppression name here>
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
}
{
<insert a suppression name here>
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
}
{
<insert a suppression name here>
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
}
ruby-dbg.valgrind
(1.65 KB, text/plain)
{
<insert a suppression name here>
Memcheck:Cond
fun:mark_locations_array
fun:garbage_collect
fun:rb_newobj
}
{
<insert a suppression name here>
Memcheck:Cond
fun:gc_mark
fun:mark_locations_array
fun:garbage_collect
fun:rb_newobj
}
{
<insert a suppression name here>
Memcheck:Cond
fun:gc_mark_children
fun:mark_locations_array
fun:garbage_collect
fun:rb_newobj
}
{
<insert a suppression name here>
Memcheck:Value4
fun:mark_locations_array
fun:garbage_collect
fun:rb_newobj
}
{
<insert a suppression name here>
Memcheck:Value4
fun:gc_mark
fun:mark_locations_array
fun:garbage_collect
fun:rb_newobj
}
{
<insert a suppression name here>
Memcheck:Value4
fun:gc_mark_children
fun:mark_locations_array
fun:garbage_collect
fun:rb_newobj
}
{
<insert a suppression name here>
Memcheck:Cond
fun:gc_mark_children
fun:mark_locations_array
fun:thread_mark
fun:gc_mark_children
}
{
<insert a suppression name here>
Memcheck:Cond
fun:gc_mark
fun:mark_locations_array
fun:thread_mark
fun:gc_mark_children
}
{
<insert a suppression name here>
Memcheck:Cond
fun:mark_locations_array
fun:thread_mark
fun:gc_mark_children
}
{
<insert a suppression name here>
Memcheck:Value4
fun:gc_mark_children
fun:mark_locations_array
fun:thread_mark
fun:gc_mark_children
}
{
<insert a suppression name here>
Memcheck:Value4
fun:gc_mark
fun:mark_locations_array
fun:thread_mark
fun:gc_mark_children
}
{
<insert a suppression name here>
Memcheck:Value4
fun:mark_locations_array
fun:thread_mark
fun:gc_mark_children
}
ruby.valgrind
(2.94 KB, text/plain)
{
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
}