Test failure (test_block.rb) in Ruby 1.9.2 preview1 on FreeBSD 6.0

Gimitee$B$G$9!#e(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

[email protected]@%$G$9!#e(B

e$B$^$:!"$3$N<[email protected]$J%P%0$Oe([email protected]$$$?J}$,K:$l$i$l$E$i$$$G$9!#e(B

Hiroshi Ichikawa wrote:

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

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