From: "phasis68 (Heesob Park)" Date: 2013-12-04T12:39:31+09:00 Subject: [ruby-core:58844] [ruby-trunk - Bug #9205] Assertion failed: heap_pages_deferred_final == 0 Issue #9205 has been updated by phasis68 (Heesob Park). File fix_assertion_fail.patch added I found that make_deferred function of gc.c modified the value of heap_pages_deferred_final to nonzero. I made a draft patch and I am not sure this patch is the best. Anyway, it fixed the assertion and passed test-all. ---------------------------------------- Bug #9205: Assertion failed: heap_pages_deferred_final == 0 https://bugs.ruby-lang.org/issues/9205#change-43403 Author: phasis68 (Heesob Park) Status: Open Priority: Normal Assignee: Category: Target version: ruby -v: ruby 2.1.0dev (2013-12-02 trunk 43958) [x64-mswin64_120] Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN If I run the following code: raise_proc = proc do |id| p "Finalizer one on #{id}" end 10000.times do ObjectSpace.define_finalizer(Object.new, raise_proc) end I can see an assertion failure. "Finalizer one on 24535120" Assertion failed: heap_pages_deferred_final == 0, file gc.c, line 2111 Same error with ruby 2.0.0p353 (2013-11-22) [i386-mingw32] -- http://bugs.ruby-lang.org/