summaryrefslogtreecommitdiff
path: root/mjit_worker.c
diff options
context:
space:
mode:
authorTakashi Kokubun <[email protected]>2020-12-20 22:41:52 -0800
committerTakashi Kokubun <[email protected]>2020-12-20 22:58:45 -0800
commit1fdc97f1b76b7532d011b20d52f843a2bb0d1a2f (patch)
treedfd8ef016c8b8eb49821c85947f1e50abeea2169 /mjit_worker.c
parenta574df14e45b8b5a1de7bfe949e08b61ae51b0bd (diff)
Mark active_units
to avoid SEGV on mjit_recompile and compact_all_jit_code. For some reason, ISeqs on stack are sometimes GC-ed (why?) and therefore it may run mjit_recompile on a GC-ed ISeq, which I expected d07183ec85d to fix but apparently it may refer to random things if already GC-ed. Marking active_units would workaround the situation. http://ci.rvm.jp/results/trunk-mjit-wait@phosphorus-docker/3292740 Also, while compact_all_jit_code was executed, we saw some SEGVs where CCs seemed to be already GC-ed, meaning their owner ISeq was not marked properly. Even if units are still in active_units, it's not guaranteed that their ISeqs are in use. So in this case we need to mark active_units for a legitimate reason. http://ci.rvm.jp/results/trunk-mjit-wait@phosphorus-docker/3293277 http://ci.rvm.jp/results/trunk-mjit-wait@phosphorus-docker/3293090
Diffstat (limited to 'mjit_worker.c')
0 files changed, 0 insertions, 0 deletions