ruby-dev (Japanese) list archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-dev:49731] [Ruby trunk Bug#12583] Class#instance_methods dumps core
       [not found] <redmine.issue-12583.20160713053311@ruby-lang.org>
@ 2016-07-13  5:33 ` shyouhei
  2016-07-13  6:16 ` [ruby-dev:49732] " shyouhei
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 5+ messages in thread
From: shyouhei @ 2016-07-13  5:33 UTC (permalink / raw
  To: ruby-dev

Issue #12583 has been reported by Shyouhei Urabe.

----------------------------------------
Bug #12583: Class#instance_methods dumps core
https://bugs.ruby-lang.org/issues/12583

* Author: Shyouhei Urabe
* Status: Open
* Priority: Normal
* Assignee: 
* ruby -v: ruby 2.4.0dev (2016-07-13 trunk 55653) [x86_64-darwin15]
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
次のようにすると core を吐きます。

```
% cat tmp.rb
ObjectSpace.each_object{|o|o.singleton_class rescue 0}
ObjectSpace.each_object{|o|case o when Module then o.instance_methods end}

% lldb -- ruby -v tmp.rb
(lldb) target create "/Users/urabe.shyouhei/data/etc/rbenv/versions/trunk@svn/bin/ruby"
Current executable set to '/Users/urabe.shyouhei/.rbenv/versions/trunk@svn/bin/ruby' (x86_64).
(lldb) settings set -- target.run-args  "-v" "tmp.rb"
(lldb) run
Process 96798 launched: '/Users/urabe.shyouhei/.rbenv/versions/trunk@svn/bin/ruby' (x86_64)
ruby 2.4.0dev (2016-07-13 trunk 55653) [x86_64-darwin15]
Process 96798 stopped
* thread #1: tid = 0x4bbb9, 0x0000000100178d45 ruby`rb_id_table_foreach [inlined] rb_id_serial_to_id at symbol.c:361, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x4d55545a)
    frame #0: 0x0000000100178d45 ruby`rb_id_table_foreach [inlined] rb_id_serial_to_id at symbol.c:361
   358  #endif
   359  rb_id_serial_to_id(rb_id_serial_t num)
   360  {
-> 361      if (is_notop_id((ID)num)) {
   362          VALUE sym = get_id_entry(num, ID_ENTRY_SYM);
   363          return SYM2ID(sym);
   364      }
(lldb) bt
* thread #1: tid = 0x4bbb9, 0x0000000100178d45 ruby`rb_id_table_foreach [inlined] rb_id_serial_to_id at symbol.c:361, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x4d55545a)
  * frame #0: 0x0000000100178d45 ruby`rb_id_table_foreach [inlined] rb_id_serial_to_id at symbol.c:361
    frame #1: 0x0000000100178d45 ruby`rb_id_table_foreach [inlined] key2id at id_table.c:216
    frame #2: 0x0000000100178d45 ruby`rb_id_table_foreach + 27 at id_table.c:1396
    frame #3: 0x0000000100178d2a ruby`rb_id_table_foreach [inlined] mix_id_table_foreach + 718 at id_table.c:1539
    frame #4: 0x0000000100178a5c ruby`rb_id_table_foreach(tbl=<unavailable>, func=(ruby`method_entry_i at class.c:1148), data=0x00007fff5fbfdce8) + 28 at id_table.c:1574
    frame #5: 0x000000010002f384 ruby`class_instance_method_list(argc=<unavailable>, argv=<unavailable>, mod=4317777480, obj=<unavailable>, func=<unavailable>) + 468 at class.c:1195
    frame #6: 0x00000001001bf0a0 ruby`vm_call_cfunc [inlined] vm_call_cfunc_with_frame + 190 at vm_insnhelper.c:1641
    frame #7: 0x00000001001befe2 ruby`vm_call_cfunc(th=<unavailable>, reg_cfp=<unavailable>, calling=<unavailable>, ci=<unavailable>, cc=<unavailable>) + 66 at vm_insnhelper.c:1736
    frame #8: 0x00000001001a9016 ruby`vm_exec_core(th=<unavailable>, initial=<unavailable>) + 12534 at insns.def:1064
    frame #9: 0x00000001001b94dd ruby`vm_exec(th=<unavailable>) + 125 at vm.c:1653
    frame #10: 0x00000001001b4887 ruby`rb_yield [inlined] invoke_block_from_c_splattable(th=<unavailable>, block=<unavailable>, self=<unavailable>, argc=0, argv=<unavailable>, blockptr=<unavailable>, cref=<unavailable>) + 183 at vm.c:990
    frame #11: 0x00000001001b487f ruby`rb_yield [inlined] vm_yield(th=<unavailable>, argc=0) at vm.c:1025
    frame #12: 0x00000001001b487f ruby`rb_yield [inlined] rb_yield_0(argc=0) at vm_eval.c:1019
    frame #13: 0x00000001001b487f ruby`rb_yield(val=<unavailable>) + 175 at vm_eval.c:1032
    frame #14: 0x000000010008dd48 ruby`os_obj_of_i(vstart=<unavailable>, vend=<unavailable>, stride=<unavailable>, data=<unavailable>) + 168 at gc.c:2490
    frame #15: 0x000000010007f9b3 ruby`objspace_each_objects(arg=<unavailable>) + 195 at gc.c:2358
    frame #16: 0x00000001000726b6 ruby`rb_ensure(b_proc=(ruby`objspace_each_objects at gc.c:2340), data1=140734799799296, e_proc=<unavailable>, data2=<unavailable>) + 166 at eval.c:900
    frame #17: 0x000000010007f72a ruby`rb_objspace_each_objects(callback=<unavailable>, data=<unavailable>) + 266 at gc.c:2428
    frame #18: 0x0000000100087eb7 ruby`os_each_obj [inlined] os_obj_of(of=<unavailable>) + 28 at gc.c:2506
    frame #19: 0x0000000100087e9b ruby`os_each_obj(argc=<unavailable>, argv=<unavailable>, os=4317810480) + 43 at gc.c:2558
    frame #20: 0x00000001001bf0a0 ruby`vm_call_cfunc [inlined] vm_call_cfunc_with_frame + 190 at vm_insnhelper.c:1641
    frame #21: 0x00000001001befe2 ruby`vm_call_cfunc(th=<unavailable>, reg_cfp=<unavailable>, calling=<unavailable>, ci=<unavailable>, cc=<unavailable>) + 66 at vm_insnhelper.c:1736
    frame #22: 0x00000001001a889f ruby`vm_exec_core(th=<unavailable>, initial=<unavailable>) + 10623 at insns.def:965
    frame #23: 0x00000001001b94dd ruby`vm_exec(th=<unavailable>) + 125 at vm.c:1653
    frame #24: 0x0000000100071690 ruby`ruby_exec_internal(n=0x00000001018578c8) + 144 at eval.c:244
    frame #25: 0x00000001000715a6 ruby`ruby_run_node [inlined] ruby_exec_node(n=<unavailable>) + 54 at eval.c:308
    frame #26: 0x0000000100071598 ruby`ruby_run_node(n=<unavailable>) + 40 at eval.c:300
    frame #27: 0x00000001000013b3 ruby`main(argc=<unavailable>, argv=<unavailable>) + 99 at main.c:36
    frame #28: 0x00007fff8f0be5ad libdyld.dylib`start + 1
(lldb)
```



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [ruby-dev:49732] [Ruby trunk Bug#12583] Class#instance_methods dumps core
       [not found] <redmine.issue-12583.20160713053311@ruby-lang.org>
  2016-07-13  5:33 ` [ruby-dev:49731] [Ruby trunk Bug#12583] Class#instance_methods dumps core shyouhei
@ 2016-07-13  6:16 ` shyouhei
  2016-07-13 10:44 ` [ruby-dev:49734] " nagachika00
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 5+ messages in thread
From: shyouhei @ 2016-07-13  6:16 UTC (permalink / raw
  To: ruby-dev

Issue #12583 has been updated by Shyouhei Urabe.

Description updated

----------------------------------------
Bug #12583: Class#instance_methods dumps core
https://bugs.ruby-lang.org/issues/12583#change-59602

* Author: Shyouhei Urabe
* Status: Open
* Priority: Normal
* Assignee: 
* ruby -v: ruby 2.4.0dev (2016-07-13 trunk 55653) [x86_64-darwin15]
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
次のようにすると core を吐きます。

```
% cat tmp.rb
ObjectSpace.each_object{|o|o.singleton_class rescue 0}
ObjectSpace.each_object(Module){|o|o.instance_methods}

% lldb -- ruby -v tmp.rb
(lldb) target create "/Users/urabe.shyouhei/data/etc/rbenv/versions/trunk@svn/bin/ruby"
Current executable set to '/Users/urabe.shyouhei/.rbenv/versions/trunk@svn/bin/ruby' (x86_64).
(lldb) settings set -- target.run-args  "-v" "tmp.rb"
(lldb) run
Process 96798 launched: '/Users/urabe.shyouhei/.rbenv/versions/trunk@svn/bin/ruby' (x86_64)
ruby 2.4.0dev (2016-07-13 trunk 55653) [x86_64-darwin15]
Process 96798 stopped
* thread #1: tid = 0x4bbb9, 0x0000000100178d45 ruby`rb_id_table_foreach [inlined] rb_id_serial_to_id at symbol.c:361, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x4d55545a)
    frame #0: 0x0000000100178d45 ruby`rb_id_table_foreach [inlined] rb_id_serial_to_id at symbol.c:361
   358  #endif
   359  rb_id_serial_to_id(rb_id_serial_t num)
   360  {
-> 361      if (is_notop_id((ID)num)) {
   362          VALUE sym = get_id_entry(num, ID_ENTRY_SYM);
   363          return SYM2ID(sym);
   364      }
(lldb) bt
* thread #1: tid = 0x4bbb9, 0x0000000100178d45 ruby`rb_id_table_foreach [inlined] rb_id_serial_to_id at symbol.c:361, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x4d55545a)
  * frame #0: 0x0000000100178d45 ruby`rb_id_table_foreach [inlined] rb_id_serial_to_id at symbol.c:361
    frame #1: 0x0000000100178d45 ruby`rb_id_table_foreach [inlined] key2id at id_table.c:216
    frame #2: 0x0000000100178d45 ruby`rb_id_table_foreach + 27 at id_table.c:1396
    frame #3: 0x0000000100178d2a ruby`rb_id_table_foreach [inlined] mix_id_table_foreach + 718 at id_table.c:1539
    frame #4: 0x0000000100178a5c ruby`rb_id_table_foreach(tbl=<unavailable>, func=(ruby`method_entry_i at class.c:1148), data=0x00007fff5fbfdce8) + 28 at id_table.c:1574
    frame #5: 0x000000010002f384 ruby`class_instance_method_list(argc=<unavailable>, argv=<unavailable>, mod=4317777480, obj=<unavailable>, func=<unavailable>) + 468 at class.c:1195
    frame #6: 0x00000001001bf0a0 ruby`vm_call_cfunc [inlined] vm_call_cfunc_with_frame + 190 at vm_insnhelper.c:1641
    frame #7: 0x00000001001befe2 ruby`vm_call_cfunc(th=<unavailable>, reg_cfp=<unavailable>, calling=<unavailable>, ci=<unavailable>, cc=<unavailable>) + 66 at vm_insnhelper.c:1736
    frame #8: 0x00000001001a9016 ruby`vm_exec_core(th=<unavailable>, initial=<unavailable>) + 12534 at insns.def:1064
    frame #9: 0x00000001001b94dd ruby`vm_exec(th=<unavailable>) + 125 at vm.c:1653
    frame #10: 0x00000001001b4887 ruby`rb_yield [inlined] invoke_block_from_c_splattable(th=<unavailable>, block=<unavailable>, self=<unavailable>, argc=0, argv=<unavailable>, blockptr=<unavailable>, cref=<unavailable>) + 183 at vm.c:990
    frame #11: 0x00000001001b487f ruby`rb_yield [inlined] vm_yield(th=<unavailable>, argc=0) at vm.c:1025
    frame #12: 0x00000001001b487f ruby`rb_yield [inlined] rb_yield_0(argc=0) at vm_eval.c:1019
    frame #13: 0x00000001001b487f ruby`rb_yield(val=<unavailable>) + 175 at vm_eval.c:1032
    frame #14: 0x000000010008dd48 ruby`os_obj_of_i(vstart=<unavailable>, vend=<unavailable>, stride=<unavailable>, data=<unavailable>) + 168 at gc.c:2490
    frame #15: 0x000000010007f9b3 ruby`objspace_each_objects(arg=<unavailable>) + 195 at gc.c:2358
    frame #16: 0x00000001000726b6 ruby`rb_ensure(b_proc=(ruby`objspace_each_objects at gc.c:2340), data1=140734799799296, e_proc=<unavailable>, data2=<unavailable>) + 166 at eval.c:900
    frame #17: 0x000000010007f72a ruby`rb_objspace_each_objects(callback=<unavailable>, data=<unavailable>) + 266 at gc.c:2428
    frame #18: 0x0000000100087eb7 ruby`os_each_obj [inlined] os_obj_of(of=<unavailable>) + 28 at gc.c:2506
    frame #19: 0x0000000100087e9b ruby`os_each_obj(argc=<unavailable>, argv=<unavailable>, os=4317810480) + 43 at gc.c:2558
    frame #20: 0x00000001001bf0a0 ruby`vm_call_cfunc [inlined] vm_call_cfunc_with_frame + 190 at vm_insnhelper.c:1641
    frame #21: 0x00000001001befe2 ruby`vm_call_cfunc(th=<unavailable>, reg_cfp=<unavailable>, calling=<unavailable>, ci=<unavailable>, cc=<unavailable>) + 66 at vm_insnhelper.c:1736
    frame #22: 0x00000001001a889f ruby`vm_exec_core(th=<unavailable>, initial=<unavailable>) + 10623 at insns.def:965
    frame #23: 0x00000001001b94dd ruby`vm_exec(th=<unavailable>) + 125 at vm.c:1653
    frame #24: 0x0000000100071690 ruby`ruby_exec_internal(n=0x00000001018578c8) + 144 at eval.c:244
    frame #25: 0x00000001000715a6 ruby`ruby_run_node [inlined] ruby_exec_node(n=<unavailable>) + 54 at eval.c:308
    frame #26: 0x0000000100071598 ruby`ruby_run_node(n=<unavailable>) + 40 at eval.c:300
    frame #27: 0x00000001000013b3 ruby`main(argc=<unavailable>, argv=<unavailable>) + 99 at main.c:36
    frame #28: 0x00007fff8f0be5ad libdyld.dylib`start + 1
(lldb)
```



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [ruby-dev:49734] [Ruby trunk Bug#12583] Class#instance_methods dumps core
       [not found] <redmine.issue-12583.20160713053311@ruby-lang.org>
  2016-07-13  5:33 ` [ruby-dev:49731] [Ruby trunk Bug#12583] Class#instance_methods dumps core shyouhei
  2016-07-13  6:16 ` [ruby-dev:49732] " shyouhei
@ 2016-07-13 10:44 ` nagachika00
  2016-08-16  4:29 ` [ruby-dev:49758] " nagachika00
  2016-08-16  4:36 ` [ruby-dev:49760] " usa
  4 siblings, 0 replies; 5+ messages in thread
From: nagachika00 @ 2016-07-13 10:44 UTC (permalink / raw
  To: ruby-dev

Issue #12583 has been updated by Tomoyuki Chikanaga.

Backport changed from 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN to 2.1: DONTNEED, 2.2: REQUIRED, 2.3: REQUIRED

----------------------------------------
Bug #12583: Class#instance_methods dumps core
https://bugs.ruby-lang.org/issues/12583#change-59611

* Author: Shyouhei Urabe
* Status: Closed
* Priority: Normal
* Assignee: 
* ruby -v: ruby 2.4.0dev (2016-07-13 trunk 55653) [x86_64-darwin15]
* Backport: 2.1: DONTNEED, 2.2: REQUIRED, 2.3: REQUIRED
----------------------------------------
次のようにすると core を吐きます。

```
% cat tmp.rb
ObjectSpace.each_object{|o|o.singleton_class rescue 0}
ObjectSpace.each_object(Module){|o|o.instance_methods}

% lldb -- ruby -v tmp.rb
(lldb) target create "/Users/urabe.shyouhei/data/etc/rbenv/versions/trunk@svn/bin/ruby"
Current executable set to '/Users/urabe.shyouhei/.rbenv/versions/trunk@svn/bin/ruby' (x86_64).
(lldb) settings set -- target.run-args  "-v" "tmp.rb"
(lldb) run
Process 96798 launched: '/Users/urabe.shyouhei/.rbenv/versions/trunk@svn/bin/ruby' (x86_64)
ruby 2.4.0dev (2016-07-13 trunk 55653) [x86_64-darwin15]
Process 96798 stopped
* thread #1: tid = 0x4bbb9, 0x0000000100178d45 ruby`rb_id_table_foreach [inlined] rb_id_serial_to_id at symbol.c:361, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x4d55545a)
    frame #0: 0x0000000100178d45 ruby`rb_id_table_foreach [inlined] rb_id_serial_to_id at symbol.c:361
   358  #endif
   359  rb_id_serial_to_id(rb_id_serial_t num)
   360  {
-> 361      if (is_notop_id((ID)num)) {
   362          VALUE sym = get_id_entry(num, ID_ENTRY_SYM);
   363          return SYM2ID(sym);
   364      }
(lldb) bt
* thread #1: tid = 0x4bbb9, 0x0000000100178d45 ruby`rb_id_table_foreach [inlined] rb_id_serial_to_id at symbol.c:361, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x4d55545a)
  * frame #0: 0x0000000100178d45 ruby`rb_id_table_foreach [inlined] rb_id_serial_to_id at symbol.c:361
    frame #1: 0x0000000100178d45 ruby`rb_id_table_foreach [inlined] key2id at id_table.c:216
    frame #2: 0x0000000100178d45 ruby`rb_id_table_foreach + 27 at id_table.c:1396
    frame #3: 0x0000000100178d2a ruby`rb_id_table_foreach [inlined] mix_id_table_foreach + 718 at id_table.c:1539
    frame #4: 0x0000000100178a5c ruby`rb_id_table_foreach(tbl=<unavailable>, func=(ruby`method_entry_i at class.c:1148), data=0x00007fff5fbfdce8) + 28 at id_table.c:1574
    frame #5: 0x000000010002f384 ruby`class_instance_method_list(argc=<unavailable>, argv=<unavailable>, mod=4317777480, obj=<unavailable>, func=<unavailable>) + 468 at class.c:1195
    frame #6: 0x00000001001bf0a0 ruby`vm_call_cfunc [inlined] vm_call_cfunc_with_frame + 190 at vm_insnhelper.c:1641
    frame #7: 0x00000001001befe2 ruby`vm_call_cfunc(th=<unavailable>, reg_cfp=<unavailable>, calling=<unavailable>, ci=<unavailable>, cc=<unavailable>) + 66 at vm_insnhelper.c:1736
    frame #8: 0x00000001001a9016 ruby`vm_exec_core(th=<unavailable>, initial=<unavailable>) + 12534 at insns.def:1064
    frame #9: 0x00000001001b94dd ruby`vm_exec(th=<unavailable>) + 125 at vm.c:1653
    frame #10: 0x00000001001b4887 ruby`rb_yield [inlined] invoke_block_from_c_splattable(th=<unavailable>, block=<unavailable>, self=<unavailable>, argc=0, argv=<unavailable>, blockptr=<unavailable>, cref=<unavailable>) + 183 at vm.c:990
    frame #11: 0x00000001001b487f ruby`rb_yield [inlined] vm_yield(th=<unavailable>, argc=0) at vm.c:1025
    frame #12: 0x00000001001b487f ruby`rb_yield [inlined] rb_yield_0(argc=0) at vm_eval.c:1019
    frame #13: 0x00000001001b487f ruby`rb_yield(val=<unavailable>) + 175 at vm_eval.c:1032
    frame #14: 0x000000010008dd48 ruby`os_obj_of_i(vstart=<unavailable>, vend=<unavailable>, stride=<unavailable>, data=<unavailable>) + 168 at gc.c:2490
    frame #15: 0x000000010007f9b3 ruby`objspace_each_objects(arg=<unavailable>) + 195 at gc.c:2358
    frame #16: 0x00000001000726b6 ruby`rb_ensure(b_proc=(ruby`objspace_each_objects at gc.c:2340), data1=140734799799296, e_proc=<unavailable>, data2=<unavailable>) + 166 at eval.c:900
    frame #17: 0x000000010007f72a ruby`rb_objspace_each_objects(callback=<unavailable>, data=<unavailable>) + 266 at gc.c:2428
    frame #18: 0x0000000100087eb7 ruby`os_each_obj [inlined] os_obj_of(of=<unavailable>) + 28 at gc.c:2506
    frame #19: 0x0000000100087e9b ruby`os_each_obj(argc=<unavailable>, argv=<unavailable>, os=4317810480) + 43 at gc.c:2558
    frame #20: 0x00000001001bf0a0 ruby`vm_call_cfunc [inlined] vm_call_cfunc_with_frame + 190 at vm_insnhelper.c:1641
    frame #21: 0x00000001001befe2 ruby`vm_call_cfunc(th=<unavailable>, reg_cfp=<unavailable>, calling=<unavailable>, ci=<unavailable>, cc=<unavailable>) + 66 at vm_insnhelper.c:1736
    frame #22: 0x00000001001a889f ruby`vm_exec_core(th=<unavailable>, initial=<unavailable>) + 10623 at insns.def:965
    frame #23: 0x00000001001b94dd ruby`vm_exec(th=<unavailable>) + 125 at vm.c:1653
    frame #24: 0x0000000100071690 ruby`ruby_exec_internal(n=0x00000001018578c8) + 144 at eval.c:244
    frame #25: 0x00000001000715a6 ruby`ruby_run_node [inlined] ruby_exec_node(n=<unavailable>) + 54 at eval.c:308
    frame #26: 0x0000000100071598 ruby`ruby_run_node(n=<unavailable>) + 40 at eval.c:300
    frame #27: 0x00000001000013b3 ruby`main(argc=<unavailable>, argv=<unavailable>) + 99 at main.c:36
    frame #28: 0x00007fff8f0be5ad libdyld.dylib`start + 1
(lldb)
```



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [ruby-dev:49758] [Ruby trunk Bug#12583] Class#instance_methods dumps core
       [not found] <redmine.issue-12583.20160713053311@ruby-lang.org>
                   ` (2 preceding siblings ...)
  2016-07-13 10:44 ` [ruby-dev:49734] " nagachika00
@ 2016-08-16  4:29 ` nagachika00
  2016-08-16  4:36 ` [ruby-dev:49760] " usa
  4 siblings, 0 replies; 5+ messages in thread
From: nagachika00 @ 2016-08-16  4:29 UTC (permalink / raw
  To: ruby-dev

Issue #12583 has been updated by Tomoyuki Chikanaga.

Backport changed from 2.1: DONTNEED, 2.2: REQUIRED, 2.3: REQUIRED to 2.1: DONTNEED, 2.2: REQUIRED, 2.3: DONE

ruby_2_3 r55919 merged revision(s) 55663.

----------------------------------------
Bug #12583: Class#instance_methods dumps core
https://bugs.ruby-lang.org/issues/12583#change-60136

* Author: Shyouhei Urabe
* Status: Closed
* Priority: Normal
* Assignee: 
* ruby -v: ruby 2.4.0dev (2016-07-13 trunk 55653) [x86_64-darwin15]
* Backport: 2.1: DONTNEED, 2.2: REQUIRED, 2.3: DONE
----------------------------------------
次のようにすると core を吐きます。

```
% cat tmp.rb
ObjectSpace.each_object{|o|o.singleton_class rescue 0}
ObjectSpace.each_object(Module){|o|o.instance_methods}

% lldb -- ruby -v tmp.rb
(lldb) target create "/Users/urabe.shyouhei/data/etc/rbenv/versions/trunk@svn/bin/ruby"
Current executable set to '/Users/urabe.shyouhei/.rbenv/versions/trunk@svn/bin/ruby' (x86_64).
(lldb) settings set -- target.run-args  "-v" "tmp.rb"
(lldb) run
Process 96798 launched: '/Users/urabe.shyouhei/.rbenv/versions/trunk@svn/bin/ruby' (x86_64)
ruby 2.4.0dev (2016-07-13 trunk 55653) [x86_64-darwin15]
Process 96798 stopped
* thread #1: tid = 0x4bbb9, 0x0000000100178d45 ruby`rb_id_table_foreach [inlined] rb_id_serial_to_id at symbol.c:361, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x4d55545a)
    frame #0: 0x0000000100178d45 ruby`rb_id_table_foreach [inlined] rb_id_serial_to_id at symbol.c:361
   358  #endif
   359  rb_id_serial_to_id(rb_id_serial_t num)
   360  {
-> 361      if (is_notop_id((ID)num)) {
   362          VALUE sym = get_id_entry(num, ID_ENTRY_SYM);
   363          return SYM2ID(sym);
   364      }
(lldb) bt
* thread #1: tid = 0x4bbb9, 0x0000000100178d45 ruby`rb_id_table_foreach [inlined] rb_id_serial_to_id at symbol.c:361, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x4d55545a)
  * frame #0: 0x0000000100178d45 ruby`rb_id_table_foreach [inlined] rb_id_serial_to_id at symbol.c:361
    frame #1: 0x0000000100178d45 ruby`rb_id_table_foreach [inlined] key2id at id_table.c:216
    frame #2: 0x0000000100178d45 ruby`rb_id_table_foreach + 27 at id_table.c:1396
    frame #3: 0x0000000100178d2a ruby`rb_id_table_foreach [inlined] mix_id_table_foreach + 718 at id_table.c:1539
    frame #4: 0x0000000100178a5c ruby`rb_id_table_foreach(tbl=<unavailable>, func=(ruby`method_entry_i at class.c:1148), data=0x00007fff5fbfdce8) + 28 at id_table.c:1574
    frame #5: 0x000000010002f384 ruby`class_instance_method_list(argc=<unavailable>, argv=<unavailable>, mod=4317777480, obj=<unavailable>, func=<unavailable>) + 468 at class.c:1195
    frame #6: 0x00000001001bf0a0 ruby`vm_call_cfunc [inlined] vm_call_cfunc_with_frame + 190 at vm_insnhelper.c:1641
    frame #7: 0x00000001001befe2 ruby`vm_call_cfunc(th=<unavailable>, reg_cfp=<unavailable>, calling=<unavailable>, ci=<unavailable>, cc=<unavailable>) + 66 at vm_insnhelper.c:1736
    frame #8: 0x00000001001a9016 ruby`vm_exec_core(th=<unavailable>, initial=<unavailable>) + 12534 at insns.def:1064
    frame #9: 0x00000001001b94dd ruby`vm_exec(th=<unavailable>) + 125 at vm.c:1653
    frame #10: 0x00000001001b4887 ruby`rb_yield [inlined] invoke_block_from_c_splattable(th=<unavailable>, block=<unavailable>, self=<unavailable>, argc=0, argv=<unavailable>, blockptr=<unavailable>, cref=<unavailable>) + 183 at vm.c:990
    frame #11: 0x00000001001b487f ruby`rb_yield [inlined] vm_yield(th=<unavailable>, argc=0) at vm.c:1025
    frame #12: 0x00000001001b487f ruby`rb_yield [inlined] rb_yield_0(argc=0) at vm_eval.c:1019
    frame #13: 0x00000001001b487f ruby`rb_yield(val=<unavailable>) + 175 at vm_eval.c:1032
    frame #14: 0x000000010008dd48 ruby`os_obj_of_i(vstart=<unavailable>, vend=<unavailable>, stride=<unavailable>, data=<unavailable>) + 168 at gc.c:2490
    frame #15: 0x000000010007f9b3 ruby`objspace_each_objects(arg=<unavailable>) + 195 at gc.c:2358
    frame #16: 0x00000001000726b6 ruby`rb_ensure(b_proc=(ruby`objspace_each_objects at gc.c:2340), data1=140734799799296, e_proc=<unavailable>, data2=<unavailable>) + 166 at eval.c:900
    frame #17: 0x000000010007f72a ruby`rb_objspace_each_objects(callback=<unavailable>, data=<unavailable>) + 266 at gc.c:2428
    frame #18: 0x0000000100087eb7 ruby`os_each_obj [inlined] os_obj_of(of=<unavailable>) + 28 at gc.c:2506
    frame #19: 0x0000000100087e9b ruby`os_each_obj(argc=<unavailable>, argv=<unavailable>, os=4317810480) + 43 at gc.c:2558
    frame #20: 0x00000001001bf0a0 ruby`vm_call_cfunc [inlined] vm_call_cfunc_with_frame + 190 at vm_insnhelper.c:1641
    frame #21: 0x00000001001befe2 ruby`vm_call_cfunc(th=<unavailable>, reg_cfp=<unavailable>, calling=<unavailable>, ci=<unavailable>, cc=<unavailable>) + 66 at vm_insnhelper.c:1736
    frame #22: 0x00000001001a889f ruby`vm_exec_core(th=<unavailable>, initial=<unavailable>) + 10623 at insns.def:965
    frame #23: 0x00000001001b94dd ruby`vm_exec(th=<unavailable>) + 125 at vm.c:1653
    frame #24: 0x0000000100071690 ruby`ruby_exec_internal(n=0x00000001018578c8) + 144 at eval.c:244
    frame #25: 0x00000001000715a6 ruby`ruby_run_node [inlined] ruby_exec_node(n=<unavailable>) + 54 at eval.c:308
    frame #26: 0x0000000100071598 ruby`ruby_run_node(n=<unavailable>) + 40 at eval.c:300
    frame #27: 0x00000001000013b3 ruby`main(argc=<unavailable>, argv=<unavailable>) + 99 at main.c:36
    frame #28: 0x00007fff8f0be5ad libdyld.dylib`start + 1
(lldb)
```



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [ruby-dev:49760] [Ruby trunk Bug#12583] Class#instance_methods dumps core
       [not found] <redmine.issue-12583.20160713053311@ruby-lang.org>
                   ` (3 preceding siblings ...)
  2016-08-16  4:29 ` [ruby-dev:49758] " nagachika00
@ 2016-08-16  4:36 ` usa
  4 siblings, 0 replies; 5+ messages in thread
From: usa @ 2016-08-16  4:36 UTC (permalink / raw
  To: ruby-dev

Issue #12583 has been updated by Usaku NAKAMURA.

Backport changed from 2.1: DONTNEED, 2.2: REQUIRED, 2.3: DONE to 2.1: DONTNEED, 2.2: DONE, 2.3: DONE

ruby_2_2 r55921 merged revision(s) 55663.

----------------------------------------
Bug #12583: Class#instance_methods dumps core
https://bugs.ruby-lang.org/issues/12583#change-60138

* Author: Shyouhei Urabe
* Status: Closed
* Priority: Normal
* Assignee: 
* ruby -v: ruby 2.4.0dev (2016-07-13 trunk 55653) [x86_64-darwin15]
* Backport: 2.1: DONTNEED, 2.2: DONE, 2.3: DONE
----------------------------------------
次のようにすると core を吐きます。

```
% cat tmp.rb
ObjectSpace.each_object{|o|o.singleton_class rescue 0}
ObjectSpace.each_object(Module){|o|o.instance_methods}

% lldb -- ruby -v tmp.rb
(lldb) target create "/Users/urabe.shyouhei/data/etc/rbenv/versions/trunk@svn/bin/ruby"
Current executable set to '/Users/urabe.shyouhei/.rbenv/versions/trunk@svn/bin/ruby' (x86_64).
(lldb) settings set -- target.run-args  "-v" "tmp.rb"
(lldb) run
Process 96798 launched: '/Users/urabe.shyouhei/.rbenv/versions/trunk@svn/bin/ruby' (x86_64)
ruby 2.4.0dev (2016-07-13 trunk 55653) [x86_64-darwin15]
Process 96798 stopped
* thread #1: tid = 0x4bbb9, 0x0000000100178d45 ruby`rb_id_table_foreach [inlined] rb_id_serial_to_id at symbol.c:361, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x4d55545a)
    frame #0: 0x0000000100178d45 ruby`rb_id_table_foreach [inlined] rb_id_serial_to_id at symbol.c:361
   358  #endif
   359  rb_id_serial_to_id(rb_id_serial_t num)
   360  {
-> 361      if (is_notop_id((ID)num)) {
   362          VALUE sym = get_id_entry(num, ID_ENTRY_SYM);
   363          return SYM2ID(sym);
   364      }
(lldb) bt
* thread #1: tid = 0x4bbb9, 0x0000000100178d45 ruby`rb_id_table_foreach [inlined] rb_id_serial_to_id at symbol.c:361, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x4d55545a)
  * frame #0: 0x0000000100178d45 ruby`rb_id_table_foreach [inlined] rb_id_serial_to_id at symbol.c:361
    frame #1: 0x0000000100178d45 ruby`rb_id_table_foreach [inlined] key2id at id_table.c:216
    frame #2: 0x0000000100178d45 ruby`rb_id_table_foreach + 27 at id_table.c:1396
    frame #3: 0x0000000100178d2a ruby`rb_id_table_foreach [inlined] mix_id_table_foreach + 718 at id_table.c:1539
    frame #4: 0x0000000100178a5c ruby`rb_id_table_foreach(tbl=<unavailable>, func=(ruby`method_entry_i at class.c:1148), data=0x00007fff5fbfdce8) + 28 at id_table.c:1574
    frame #5: 0x000000010002f384 ruby`class_instance_method_list(argc=<unavailable>, argv=<unavailable>, mod=4317777480, obj=<unavailable>, func=<unavailable>) + 468 at class.c:1195
    frame #6: 0x00000001001bf0a0 ruby`vm_call_cfunc [inlined] vm_call_cfunc_with_frame + 190 at vm_insnhelper.c:1641
    frame #7: 0x00000001001befe2 ruby`vm_call_cfunc(th=<unavailable>, reg_cfp=<unavailable>, calling=<unavailable>, ci=<unavailable>, cc=<unavailable>) + 66 at vm_insnhelper.c:1736
    frame #8: 0x00000001001a9016 ruby`vm_exec_core(th=<unavailable>, initial=<unavailable>) + 12534 at insns.def:1064
    frame #9: 0x00000001001b94dd ruby`vm_exec(th=<unavailable>) + 125 at vm.c:1653
    frame #10: 0x00000001001b4887 ruby`rb_yield [inlined] invoke_block_from_c_splattable(th=<unavailable>, block=<unavailable>, self=<unavailable>, argc=0, argv=<unavailable>, blockptr=<unavailable>, cref=<unavailable>) + 183 at vm.c:990
    frame #11: 0x00000001001b487f ruby`rb_yield [inlined] vm_yield(th=<unavailable>, argc=0) at vm.c:1025
    frame #12: 0x00000001001b487f ruby`rb_yield [inlined] rb_yield_0(argc=0) at vm_eval.c:1019
    frame #13: 0x00000001001b487f ruby`rb_yield(val=<unavailable>) + 175 at vm_eval.c:1032
    frame #14: 0x000000010008dd48 ruby`os_obj_of_i(vstart=<unavailable>, vend=<unavailable>, stride=<unavailable>, data=<unavailable>) + 168 at gc.c:2490
    frame #15: 0x000000010007f9b3 ruby`objspace_each_objects(arg=<unavailable>) + 195 at gc.c:2358
    frame #16: 0x00000001000726b6 ruby`rb_ensure(b_proc=(ruby`objspace_each_objects at gc.c:2340), data1=140734799799296, e_proc=<unavailable>, data2=<unavailable>) + 166 at eval.c:900
    frame #17: 0x000000010007f72a ruby`rb_objspace_each_objects(callback=<unavailable>, data=<unavailable>) + 266 at gc.c:2428
    frame #18: 0x0000000100087eb7 ruby`os_each_obj [inlined] os_obj_of(of=<unavailable>) + 28 at gc.c:2506
    frame #19: 0x0000000100087e9b ruby`os_each_obj(argc=<unavailable>, argv=<unavailable>, os=4317810480) + 43 at gc.c:2558
    frame #20: 0x00000001001bf0a0 ruby`vm_call_cfunc [inlined] vm_call_cfunc_with_frame + 190 at vm_insnhelper.c:1641
    frame #21: 0x00000001001befe2 ruby`vm_call_cfunc(th=<unavailable>, reg_cfp=<unavailable>, calling=<unavailable>, ci=<unavailable>, cc=<unavailable>) + 66 at vm_insnhelper.c:1736
    frame #22: 0x00000001001a889f ruby`vm_exec_core(th=<unavailable>, initial=<unavailable>) + 10623 at insns.def:965
    frame #23: 0x00000001001b94dd ruby`vm_exec(th=<unavailable>) + 125 at vm.c:1653
    frame #24: 0x0000000100071690 ruby`ruby_exec_internal(n=0x00000001018578c8) + 144 at eval.c:244
    frame #25: 0x00000001000715a6 ruby`ruby_run_node [inlined] ruby_exec_node(n=<unavailable>) + 54 at eval.c:308
    frame #26: 0x0000000100071598 ruby`ruby_run_node(n=<unavailable>) + 40 at eval.c:300
    frame #27: 0x00000001000013b3 ruby`main(argc=<unavailable>, argv=<unavailable>) + 99 at main.c:36
    frame #28: 0x00007fff8f0be5ad libdyld.dylib`start + 1
(lldb)
```



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-08-16  4:03 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <redmine.issue-12583.20160713053311@ruby-lang.org>
2016-07-13  5:33 ` [ruby-dev:49731] [Ruby trunk Bug#12583] Class#instance_methods dumps core shyouhei
2016-07-13  6:16 ` [ruby-dev:49732] " shyouhei
2016-07-13 10:44 ` [ruby-dev:49734] " nagachika00
2016-08-16  4:29 ` [ruby-dev:49758] " nagachika00
2016-08-16  4:36 ` [ruby-dev:49760] " usa

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).