From: takashikkbn@...
Date: 2020-02-29T08:16:38+00:00
Subject: [ruby-core:97309] [Ruby master Bug#16664] Backport request: MJIT unloads methods used in a main thread when calling a Fiber

Issue #16664 has been reported by k0kubun (Takashi Kokubun).

----------------------------------------
Bug #16664: Backport request: MJIT unloads methods used in a main thread when calling a Fiber
https://bugs.ruby-lang.org/issues/16664

* Author: k0kubun (Takashi Kokubun)
* Status: Open
* Priority: Normal
* Backport: 2.5: DONTNEED, 2.6: REQUIRED, 2.7: REQUIRED
----------------------------------------
## Problem
The following script SEGVs with `ruby --disable-gems --jit-min-calls=1 --jit-max-cache=10 --jit-wait script.rb`.

```ruby
def a1() a2(false); a2(true) end
def a2(a) a3(a) end
def a3(a) a4(a) end
def a4(a) a5(a) end
def a5(a) a6(a) end
def a6(a) a7(a) end
def a7(a) a8(a) end
def a8(a) a9(a) end
def a9(a) a10(a) end
def a10(a)
  if a
    Fiber.new { a11 }.resume
  end
end
def a11() print('hello') end

a1
```

## Patch
Please backport commit:adcf0316d1ecedae2a9157ad941550e0c0fb510b. For running the test, commit:a8dcab723316997d9e01c89d6df969edce75bdca needs to be backported first.



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>