Project

General

Profile

Bug #15779

Updated by buzztaiki (Taiki Sugawara) almost 5 years 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