Project

General

Profile

Bug #15779

Updated by buzztaiki (Taiki Sugawara) 4 months ago

Run following reproduce code, ruby freezes and takes 以下の再現用コードを実行すると、ruby が CPU 100% CPU. で固まってしまいます。

```
require 'open-uri'

begin
"a" * 10000000000
ensure
p open('https://www.ruby-lang.org/')
end
```

But interestingly, the following code does not reproduce this issue. 不思議なことに、以下のように一度 NoMemoryError を rescue してから raise すると再現しません。

```
require 'open-uri'

begin
begin
"a" * 10000000000
rescue NoMemoryError
raise
end
ensure
p open('https://www.ruby-lang.org/')
end
```

It was also reproduced when put ensure 節を `sleep 100` in ensure clause, run it and hit Ctrl-C. But `puts 等にして Ctrl-C を押した場合でも再現するようです。`puts 'XXX'` does not reproduce it.
にした場合では再現しませんでした。

Back