From ff198ad904652ddea3af0a976867ae2c2b6cf5b8 Mon Sep 17 00:00:00 2001 From: Luke Gruber Date: Fri, 3 Oct 2025 12:25:20 -0400 Subject: [PATCH] Add assertion to rb_gc_impl_writebarrier We should only be executing WBs when GC is not running. We ran into this issue when debugging 3cd2407045a67838cf2ab949e5164676b6870958. --- gc/default/default.c | 1 + 1 file changed, 1 insertion(+) diff --git a/gc/default/default.c b/gc/default/default.c index 9b40fed097..c23adae062 100644 --- a/gc/default/default.c +++ b/gc/default/default.c @@ -6044,6 +6044,7 @@ rb_gc_impl_writebarrier(void *objspace_ptr, VALUE a, VALUE b) if (SPECIAL_CONST_P(b)) return; + GC_ASSERT(!during_gc); GC_ASSERT(RB_BUILTIN_TYPE(a) != T_NONE); GC_ASSERT(RB_BUILTIN_TYPE(a) != T_MOVED); GC_ASSERT(RB_BUILTIN_TYPE(a) != T_ZOMBIE);