ruby-changes:66628
From: Peter <ko1@a...>
Date: Tue, 29 Jun 2021 22:28:24 +0900 (JST)
Subject: [ruby-changes:66628] 03dc664493 (master): Fix crash on RGENGC_CHECK_MODE=4
https://git.ruby-lang.org/ruby.git/commit/?id=03dc664493 From 03dc66449326ce0945c1ccad7f51e57125b2b854 Mon Sep 17 00:00:00 2001 From: Peter Zhu <peter@p...> Date: Mon, 28 Jun 2021 14:44:22 -0400 Subject: Fix crash on RGENGC_CHECK_MODE=4 When running btest there is a crash when compiled with RGENGC_CHECK_MODE=4. The crash happens because `during_gc` is not turned off before `gc_marks_check` is called, causing the marking to happen on the main mark stack instead of mark stack created in `objspace_allrefs`. --- gc.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gc.c b/gc.c index 44a1992..b022910 100644 --- a/gc.c +++ b/gc.c @@ -7977,7 +7977,9 @@ gc_marks_finish(rb_objspace_t *objspace) https://github.com/ruby/ruby/blob/trunk/gc.c#L7977 } #if RGENGC_CHECK_MODE >= 4 + during_gc = FALSE; gc_marks_check(objspace, gc_check_after_marks_i, "after_marks"); + during_gc = TRUE; #endif { -- cgit v1.1 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/