[Bug #1837] Test failure (test_block.rb) in Ruby 1.9.2 preview1 on FreeBSD 6.0

Bug #1837: Test failure (test_block.rb) in Ruby 1.9.2 preview1 on
FreeBSD 6.0
http://redmine.ruby-lang.org/issues/show/1837

e$B5/I<<Te(B: Hiroshi Ichikawa
e$B%9%F!<%?%9e(B: Open, e$BM%@hEYe(B: Low
e$B%+%F%4%je(B: core, Target version: 1.9.2
ruby -v: ruby 1.9.2dev (2009-07-18 trunk 24186) [i386-freebsd6.0]

e$B$^$:!"$3$N<j$NL@Gr$J%P%0$Oe(BRedminee$B$KF~$l$F$$$?$@$$$?J}$,K:$l$i$l$E$i$$$G$9!#e(B

e$BN;2r$7$^$7$?!#$H$$$&$3$H$G2~$a$F!#e(B

e$B$5$F!“$3$NLdBj$G$9$,8=:_$N:G?7$Oe(Br24311e$B$H$+$G$9$,!”$3$l$G$b:F8=$7$^$9$+e(B?
e$B$H$j$"$($:!"e(B1.9.2dev (2009-07-29 trunk 24311) [x86_64-freebsd7.2]e$B$G$O:F8=$7$^$;$s!#e(B

r24321e$B$G:F8=$7$^$7$?!#e(BFreeBSD6e$BFCM-$J$N$+!“e(B32bite$BFCM-$J$N$+!”$G$7$g$&$+!D!#e(B

e$B!J0J2<0lEY%a!<%k$GAw$C$?$b$N$N%3%T%Z!Ke(B

FreeBSD 6.0e$B>e$Ge(BRuby 1.9.2 preview1e$B$Ne(Bmake
teste$B$r<B9T$9$k$H!"e(Btest_block.rbe$B$G<:GT$7$^$9!#e(B

$ ./ruby --version
ruby 1.9.2dev (2009-07-18 trunk 24186) [i386-freebsd6.0]
$ make install && make test
…snip…
#60 test_block.rb:464:in `<top (required)>':
e = [1,2,3].each
10000.times {
e = [e].each
}
Thread.new { GC.start }.join
#=> killed by SIGILL (signal 4) [ruby-dev:32604]
FAIL 1/938 tests failed
*** Error code 1

trunke$B$N%j%S%8%g%s$re(B2e$BJ,C5:w$7$?$H$3$m!“%j%S%8%g%se(B
24085e$B$+$i$3$N%(%i!<$,=P;O$a$F$$$k!Je(B24084e$B$G$O5/$-$J$$!K$h$&$G$9!#e(BGCe$B$^$o$j$NJQ99$N$h$&$G$9$,!“Cf?H$,$h$/J,$+$i$:!”$3$l0J>e$N?<DI$$$O$G$-$F$$$^$;$s!D!#$H$j$”$($:!"$4Js9p$^$G!#e(B


r24085 | ko1 | 2009-07-13 18:30:23 +0900 (e$B7ne(B, 13 7 2009) | 10
lines

  • vm_core.h, compile.c: declare struct iseq_inline_cache_entry.
    Inline cache (IC) entries are no longer GC managed object.
    IC entries are freed when ISeq is freed.
  • iseq.c: fix mark, free, memsize functions for above change.
  • insns.def: remove rb_gc_write_barrier().
  • vm_insnhelper.c (vm_method_search): ditto.
  • tool/instruction.rb, template/insns_info.inc.tmpl (insn_iclen):
    added.

GDBe$B$G%9%?%C%/%H%l!<%9$r=PNO$9$k$H!"0J2<$N$h$&$J$b$N$,1d!9$HB3$$$F$$$^$9!#e(B

#0 0x0806010b in gc_mark_children (objspace=Cannot access memory at
address 0xbf9fffec
) at gc.c:1589
#1 0x080615e8 in gc_mark_children (objspace=0x81ce520, ptr=136882532,
lev=1)
at gc.c:1578
#2 0x0817d9b5 in enumerator_mark (p=0x8362ee0) at enumerator.c:58
#3 0x080606e8 in gc_mark_children (objspace=0x81ce520, ptr=136882500,
lev=2)
at gc.c:1786
#4 0x080615e8 in gc_mark_children (objspace=0x81ce520, ptr=136882492,
lev=1)
at gc.c:1578
#5 0x0817d9b5 in enumerator_mark (p=0x8362f00) at enumerator.c:58
#6 0x080606e8 in gc_mark_children (objspace=0x81ce520, ptr=136882460,
lev=2)
at gc.c:1786
#7 0x080615e8 in gc_mark_children (objspace=0x81ce520, ptr=136882452,
lev=1)
at gc.c:1578
#8 0x0817d9b5 in enumerator_mark (p=0x8362f20) at enumerator.c:58
#9 0x080606e8 in gc_mark_children (objspace=0x81ce520, ptr=136882420,
lev=2)
at gc.c:1786
#10 0x080615e8 in gc_mark_children (objspace=0x81ce520, ptr=136882412,
lev=1)
at gc.c:1578
#11 0x0817d9b5 in enumerator_mark (p=0x8362f40) at enumerator.c:58
#12 0x080606e8 in gc_mark_children (objspace=0x81ce520, ptr=136882380,
lev=2)
at gc.c:1786
#13 0x080615e8 in gc_mark_children (objspace=0x81ce520, ptr=136882372,
lev=1)
at gc.c:1578

e$B%A%1%C%He(B #1837 e$B$,99?7$5$l$^$7$?!#e(B (by Yui NARUSE)

e$B$3$l!“:#$G$b>I>u=P$^$9$+!)e(B
e$B$J$*!”$&$A$Ne(B FreeBSD 7.2-STABLE amd64 e$B$G$OH/@8$7$^$;$s!#e(B

http://redmine.ruby-lang.org/issues/show/1837

e$B%A%1%C%He(B #1837 e$B$,99?7$5$l$^$7$?!#e(B (by Yui NARUSE)

e$B%9%F!<%?%9e(B Opene$B$+$ie(BClosede$B$KJQ99e(B

e$BD>$C$?$H8+$J$7$^$9e(B

http://redmine.ruby-lang.org/issues/show/1837