Issue #1934 has been updated by Yusuke Endoh.

Status changed from Open to Assigned
Assigned to set to Narihiro Nakamura
Target version set to 1.9.x

Hi,

I confirmed this issue at r28115 of trunk.
This issue has been fixed at r28191 in ruby_1_9_2, but not in trunk
because the code is quite different between 1_9_2 and trunk because
of lazy sweep feature, which is included only in trunk.
Narihiro, who is the author of lazy sweep, is assigned.

Here is a log by valgrind:

...
# of primes: 129 results: []  prime: 739  process time: 189.97
# of primes: 130 results: []  prime: 743  process time: 197.16
# of primes: 131 results: []  prime: 751  process time: 205.02
==24732==
==24732== Invalid read of size 4
==24732==    at 0x8068492: rb_newobj (gc.c:1049)
==24732==    by 0x817CDFB: ary_new (array.c:297)
==24732==    by 0x817EA16: rb_ary_combination (array.c:331)
==24732==    by 0x815AC61: vm_call0 (vm_eval.c:78)
==24732==    by 0x815B98F: iterate_method (vm_eval.c:234)
==24732==    by 0x81557C7: rb_iterate (vm_eval.c:851)
==24732==    by 0x815595E: rb_block_call (vm_eval.c:931)
==24732==    by 0x81A95FA: enumerator_each (enumerator.c:317)
==24732==    by 0x815AC61: vm_call0 (vm_eval.c:78)
==24732==    by 0x815B98F: iterate_method (vm_eval.c:234)
==24732==    by 0x81557C7: rb_iterate (vm_eval.c:851)
==24732==    by 0x815595E: rb_block_call (vm_eval.c:931)
==24732==  Address 0x501c4d4 is 116 bytes inside a block of size 16,384 free'd
==24732==    at 0x4022B8A: free (vg_replace_malloc.c:323)
==24732==    by 0x806375C: free_unused_heaps (gc.c:1869)
==24732==    by 0x816E2C4: rb_threadptr_execute_interrupts_rec (thread.c:1295)
==24732==    by 0x816E58E: rb_thread_check_ints (thread.c:968)
==24732==    by 0x81A616E: collect_all (enum.c:379)
==24732==    by 0x8159C67: vm_yield_with_cfunc (vm_insnhelper.c:724)
==24732==    by 0x8165CDE: rb_yield (vm.c:587)
==24732==    by 0x817EA75: rb_ary_combination (array.c:4078)
==24732==    by 0x815AC61: vm_call0 (vm_eval.c:78)
==24732==    by 0x815B98F: iterate_method (vm_eval.c:234)
==24732==    by 0x81557C7: rb_iterate (vm_eval.c:851)
==24732==    by 0x815595E: rb_block_call (vm_eval.c:931)

-- 
Yusuke Endoh <mame / tsg.ne.jp>
----------------------------------------
http://redmine.ruby-lang.org/issues/show/1934

----------------------------------------
http://redmine.ruby-lang.org