Project

General

Profile

Actions

Bug #19299

closed

YJIT panicked while holding VM lock acquired at ./yjit/src/core.rs:1693. Aborting...

Added by ollym (Oliver Morgan) over 1 year ago. Updated about 1 year ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 3.2.0 (2022-12-25 revision a528908271) +YJIT [arm64-darwin22]
[ruby-core:111577]

Description

Attached is the backtrace.

The code is a moderately complex view with partials and translations. The panic happens specifically when i call a translation t('...') but if i simplify the view code around that call the panic goes away. I'm trying to create a simplified way to recreate it without giving you the full application.

I'll keep trying, unless the backtrace is enough.


Files

backtrace.txt (12.3 KB) backtrace.txt ollym (Oliver Morgan), 01/02/2023 01:17 PM

Updated by alanwu (Alan Wu) over 1 year ago

Thank you for the report! I was able to reproduce the issue
with the logs you posted, so no worries about reducing your app.

It happens with yield and a block with a lot of local variables
and it should be specific to ARM:

def foo
  yield
end


30.times do
  foo do
    a1=a2=a3=a4=a5=a6=a7=a8=a9=a10=a11=a12=a13=a14=a15=a16=a17=a18=a19=a20=a21=a22=a23=a24=a25=a26=a27=a28=a29=a30 = 0
  end
end

I submitted a PR to fix this issue.

Actions #2

Updated by k0kubun (Takashi Kokubun) over 1 year ago

  • Backport changed from 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN to 2.7: DONTNEED, 3.0: DONTNEED, 3.1: DONTNEED, 3.2: REQUIRED
Actions #3

Updated by alanwu (Alan Wu) over 1 year ago

  • Status changed from Open to Closed

Applied in changeset git|43ff0c2c488c80aaf83b486d45bcd4a92ebe3848.


YJIT: Fix yield into block with >=30 locals on ARM

It's a register spill issue. Fix by moving the Qnil fill snippet to
after registers are released.

[Bug #19299]

Updated by naruse (Yui NARUSE) about 1 year ago

  • Backport changed from 2.7: DONTNEED, 3.0: DONTNEED, 3.1: DONTNEED, 3.2: REQUIRED to 2.7: DONTNEED, 3.0: DONTNEED, 3.1: DONTNEED, 3.2: DONE

ruby_3_2 97c32b49e2fe4de8b57ce05146e63b2aa64c7a44 merged revision(s) 43ff0c2c488c80aaf83b486d45bcd4a92ebe3848.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0