[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]