Project

General

Profile

Actions

Bug #20941

closed

[BUG] object allocation during garbage collection phase reproduction

Added by segiddins (Samuel Giddins) 8 days ago. Updated 8 days ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 3.4.0dev (2024-12-10T10:28:22Z master 3568e7aef7) +PRISM [aarch64-linux]
[ruby-core:120172]

Description

I know there are many issues around this bug cropping up, and so far no one has shared a reproduction that doesn't involve C extensions.
I have managed to reproduce at least one instance that happens when there are hard memory limits.

#!/usr/bin/env -S RUBYOPT="--disable-gems"  ruby -v

s = "\x04\b#{"{\x06" * 100}i\x01".b.freeze

STDOUT.sync = true


es = Array.new(10000) { Object.new }
es = Array.new(10000) { 0 }

Process.warmup
1000.times do
  Marshal.load(s) rescue nil
end
puts "warmup"

Process.setrlimit(:DATA, 0)

i = 0
loop do
  begin
    Marshal.load(s)
  rescue ArgumentError => e
    es[i += 1] = e
  end
end

Backtrace from gdb on rb_bug:

#0  rb_bug (fmt=fmt@entry=0xfffff7dd9588 "object allocation during garbage collection phase") at /usr/src/ruby/error.c:1090
#1  0x0000fffff7a79df4 in newobj_slowpath (heap_idx=0, wb_protected=1, cache=0xaaaaaaabb440, objspace=0xaaaaaaab6460, flags=8193, klass=281474829569120) at /usr/src/ruby/gc/default/default.c:2473
#2  newobj_slowpath_wb_protected (klass=klass@entry=281474829569120, flags=flags@entry=8193, objspace=objspace@entry=0xaaaaaaab6460, cache=0xaaaaaaabb440, heap_idx=heap_idx@entry=0)
    at /usr/src/ruby/gc/default/default.c:2499
#3  0x0000fffff7a7a2c0 in rb_gc_impl_new_obj (alloc_size=32, wb_protected=true, v3=0, v2=0, v1=0, flags=8193, klass=281474829569120, cache_ptr=<optimized out>, objspace_ptr=0xaaaaaaab6460)
    at /usr/src/ruby/gc/default/default.c:2536
#4  newobj_of (size=32, wb_protected=true, v3=0, v2=0, v1=0, flags=8193, klass=281474829569120, cr=0xaaaaaaabb220) at /usr/src/ruby/gc.c:984
#5  rb_wb_protected_newobj_of (ec=<optimized out>, klass=klass@entry=281474829569120, flags=flags@entry=8193, size=size@entry=32) at /usr/src/ruby/gc.c:1013
#6  0x0000fffff7aed5cc in rb_class_allocate_instance (klass=281474829569120) at /usr/src/ruby/object.c:131
#7  0x0000fffff7af23d4 in class_call_alloc_func (klass=281474829569120, allocator=<optimized out>) at /usr/src/ruby/object.c:2143
#8  rb_class_alloc (klass=281474829569120) at /usr/src/ruby/object.c:2115
#9  rb_obj_alloc (klass=281474829569120) at /usr/src/ruby/object.c:2155
#10 0x0000fffff7c1e3d0 in ruby_vm_special_exception_copy (exc=281474829318160) at /usr/src/ruby/vm_insnhelper.c:52
#11 0x0000fffff7976da4 in rb_memerror () at /usr/src/ruby/gc.c:4443
#12 0x0000fffff7a6b43c in stack_chunk_alloc () at /usr/src/ruby/gc/default/default.c:4181
#13 push_mark_stack_chunk (stack=0xaaaaaaab6770) at /usr/src/ruby/gc/default/default.c:4242
#14 push_mark_stack (obj=281474828453840, stack=0xaaaaaaab6770) at /usr/src/ruby/gc/default/default.c:4312
#15 gc_grey (objspace=0xaaaaaaab6460, obj=281474828453840) at /usr/src/ruby/gc/default/default.c:4436
#16 0x0000fffff7a71340 in gc_mark (obj=<optimized out>, objspace=<optimized out>) at /usr/src/ruby/gc/default/default.c:4464
--Type <RET> for more, q to quit, c to continue without paging--c
#17 0x0000fffff7a7498c in gc_mark_internal (obj=<optimized out>) at /usr/src/ruby/include/ruby/internal/special_consts.h:329
#18 rb_gc_mark_children (objspace=objspace@entry=0xaaaaaaab6460, obj=<optimized out>) at /usr/src/ruby/gc.c:2687
#19 0x0000fffff7a75de4 in gc_mark_children (obj=<optimized out>, objspace=0xaaaaaaab6460) at /usr/src/ruby/gc/default/default.c:4644
#20 gc_mark_stacked_objects (count=<optimized out>, incremental=<optimized out>, objspace=<optimized out>) at /usr/src/ruby/gc/default/default.c:4665
#21 gc_mark_stacked_objects_all (objspace=<optimized out>) at /usr/src/ruby/gc/default/default.c:4703
#22 gc_marks_rest (objspace=0xaaaaaaab6460) at /usr/src/ruby/gc/default/default.c:5720
#23 0x0000fffff7a781e8 in gc_marks (full_mark=<optimized out>, objspace=0xaaaaaaab6460) at /usr/src/ruby/gc/default/default.c:5834
#24 gc_start (objspace=objspace@entry=0xaaaaaaab6460, reason=<optimized out>, reason@entry=107008) at /usr/src/ruby/gc/default/default.c:6483
#25 0x0000fffff7a78bb0 in garbage_collect (reason=107008, objspace=0xaaaaaaab6460) at /usr/src/ruby/gc/default/default.c:6363
#26 garbage_collect_with_gvl (objspace=0xaaaaaaab6460, reason=107008) at /usr/src/ruby/gc/default/default.c:6765
#27 0x0000fffff7a76dc0 in rb_gc_impl_malloc (objspace_ptr=0xaaaaaaab6460, size=size@entry=3072) at /usr/src/ruby/gc/default/default.c:8199
#28 0x0000fffff7a76e44 in ruby_xmalloc_body (size=3072) at /usr/src/ruby/gc.c:4481
#29 ruby_xmalloc (size=3072) at /usr/src/ruby/gc.c:4471
#30 0x0000fffff7ba2970 in rb_st_init_existing_table_with_size (size=<optimized out>, type=0xfffff7f8ee78 <rb_hashtype_ident>, tab=0xaaaaaacdd1a0) at /usr/src/ruby/st.c:456
#31 rb_st_init_table_with_size (type=0xfffff7f8ee78 <rb_hashtype_ident>, size=<optimized out>) at /usr/src/ruby/st.c:578
#32 0x0000fffff7ba2aa8 in rebuild_table (tab=tab@entry=0xaaaaaacdd120) at /usr/src/ruby/st.c:746
#33 0x0000fffff7ba30f4 in rebuild_table_if_necessary (tab=0xaaaaaacdd120) at /usr/src/ruby/st.c:1116
#34 rb_st_insert (tab=0xaaaaaacdd120, key=key@entry=64, value=281474829325000) at /usr/src/ruby/st.c:1134
#35 0x0000fffff7ac3b48 in r_entry0 (arg=0xfffff7373d68, num=64, v=281474829325000) at /usr/src/ruby/marshal.c:1610
#36 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2051
#37 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#38 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#39 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#40 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#41 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#42 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#43 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#44 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#45 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#46 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#47 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#48 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#49 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#50 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#51 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#52 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#53 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#54 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#55 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#56 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#57 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#58 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#59 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#60 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#61 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#62 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#63 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#64 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#65 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#66 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#67 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#68 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#69 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#70 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#71 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#72 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#73 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#74 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#75 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#76 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#77 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#78 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#79 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#80 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#81 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#82 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#83 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#84 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#85 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#86 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#87 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#88 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#89 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#90 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#91 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#92 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#93 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#94 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#95 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#96 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#97 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#98 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#99 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#100 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#101 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#102 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#103 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#104 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#105 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#106 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#107 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#108 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#109 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#110 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#111 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#112 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#113 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#114 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#115 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#116 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#117 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#118 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#119 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#120 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#121 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#122 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#123 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#124 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#125 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#126 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#127 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#128 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#129 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#130 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#131 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#132 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#133 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#134 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#135 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#136 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#137 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#138 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#139 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#140 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#141 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#142 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#143 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#144 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#145 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#146 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#147 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#148 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#149 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#150 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#151 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#152 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#153 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#154 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#155 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#156 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#157 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#158 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#159 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#160 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#161 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#162 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#163 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#164 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#165 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#166 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#167 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#168 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#169 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#170 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#171 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#172 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#173 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#174 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#175 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#176 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#177 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#178 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#179 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#180 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#181 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#182 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#183 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#184 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#185 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#186 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#187 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#188 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#189 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#190 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#191 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#192 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#193 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#194 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#195 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#196 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#197 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#198 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#199 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#200 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#201 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#202 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#203 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#204 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#205 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#206 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#207 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#208 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#209 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#210 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#211 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#212 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#213 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#214 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#215 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#216 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#217 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#218 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#219 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#220 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#221 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#222 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#223 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#224 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#225 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#226 0x0000fffff7ac3b90 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#227 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#228 r_object_for (arg=arg@entry=0xfffff7373d68, partial=partial@entry=false, ivp=ivp@entry=0x0, extmod=extmod@entry=4, type=123) at /usr/src/ruby/marshal.c:2054
#229 0x0000fffff7ac6124 in r_object0 (extmod=4, ivp=0x0, partial=false, arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:1801
#230 r_object (arg=0xfffff7373d68) at /usr/src/ruby/marshal.c:2283
#231 rb_marshal_load_with_proc (port=<optimized out>, proc=4, freeze=false) at /usr/src/ruby/marshal.c:2356
#232 0x0000fffff7c35230 in invoke_bf (argv=<optimized out>, bf=<optimized out>, reg_cfp=<optimized out>, ec=<optimized out>) at /usr/src/ruby/vm_insnhelper.c:7395
#233 vm_invoke_builtin_delegate (start_index=<optimized out>, bf=<optimized out>, cfp=<optimized out>, ec=<optimized out>) at /usr/src/ruby/vm_insnhelper.c:7423
#234 vm_exec_core (ec=0xaaaaaaabb4f0) at ../../usr/src/ruby/insns.def:1657
#235 0x0000fffff7c3bb54 in vm_exec_loop (result=<optimized out>, tag=0xfffffffff800, state=<optimized out>, ec=0xaaaaaaabb4f0) at /usr/src/ruby/vm.c:2613
#236 rb_vm_exec (ec=0xaaaaaaabb4f0) at /usr/src/ruby/vm.c:2592
#237 0x0000fffff7a52c18 in rb_ec_exec_node (ec=ec@entry=0xaaaaaaabb4f0, n=n@entry=0xfffff72c5068) at /usr/src/ruby/eval.c:281
#238 0x0000fffff7a563b4 in ruby_run_node (n=0xfffff72c5068) at /usr/src/ruby/eval.c:319
#239 0x0000aaaaaaaa0b6c in rb_main (argv=0xfffffffffce8, argc=3) at /usr/src/ruby/main.c:43
#240 main (argc=<optimized out>, argv=<optimized out>) at /usr/src/ruby/main.c:68
Actions #1

Updated by nobu (Nobuyoshi Nakada) 8 days ago

  • Status changed from Open to Closed

Applied in changeset git|f243733564940401d914686837b701bc31311248.


[Bug #20941] Bail out when recursing no memory

Actions

Also available in: Atom PDF

Like0
Like0