From: s.wanabe@... Date: 2019-05-15T23:41:23+00:00 Subject: [ruby-core:92674] [Ruby trunk Bug#15809] GC.verify_compaction_references - intermittent SEGV's on multiple platforms Issue #15809 has been updated by wanabe (_ wanabe). gc_update_references() updates finalizer_table after https://git.ruby-lang.org/ruby.git/commit/?id=3cf767ee. Therefore, "[BUG] ROOT finalizers points to MOVED" error seems to be suppressed. I guess the [BUG] of [ruby-core:92665] is caused by T_IMEMO env, not by finalizer_table. Values of `env->env[]` are pinned normally, but finalizer can create imemo_env objects and they have unpinned `env->env[]` as I said in [ruby-core:92615]. ``` diff --git a/gc.c b/gc.c index b71c501a5b..ec90416672 100644 --- a/gc.c +++ b/gc.c @@ -7721,7 +7721,12 @@ gc_ref_update_imemo(rb_objspace_t *objspace, VALUE obj) case imemo_env: { rb_env_t *env = (rb_env_t *)obj; + VALUE *envp = (VALUE*)env->env; + unsigned int i; TYPED_UPDATE_IF_MOVED(objspace, rb_iseq_t *, env->iseq); + for (i = 0; i < env->env_size; i++) { + UPDATE_IF_MOVED(objspace, envp[i]); + } } break; break; ``` ---------------------------------------- Bug #15809: GC.verify_compaction_references - intermittent SEGV's on multiple platforms https://bugs.ruby-lang.org/issues/15809#change-78037 * Author: MSP-Greg (Greg L) * Status: Assigned * Priority: Normal * Assignee: tenderlovemaking (Aaron Patterson) * Target version: * ruby -v: ruby 2.7.0dev (2019-05-06 trunk c3cf1ef9bb) [x64-mingw32 * Backport: 2.4: UNKNOWN, 2.5: UNKNOWN, 2.6: UNKNOWN ---------------------------------------- See https://travis-ci.org/ruby/ruby/jobs/525627187#L2684 https://ci.appveyor.com/project/ruby/ruby/builds/24138134/job/i7e441u7se11w7ey#L3402 Both have an error similar to: ``` /ruby/test/ruby/test_gc_compact.rb:128: [BUG] ROOT finalizers points to MOVED: 0x0000000004679c20 -> 0x00000000089367c0 [0 ] T_ARRAY [E ] len: 1 (embed) ``` ruby-loco has also failed with a similar error. Attached STDERR output. ---Files-------------------------------- test_all_err.log (42 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: