[#39222] [Bug #2036] AIX 5L 5.2にて、ruby-1.8.7-p174のビルド時にmake testをするとエラーになった。not ok float 7 -- ./sample/test.rb:1232 — 和弥 寺元 <redmine@...>

Bug #2036: AIX 5L 5.2にて、ruby-1.8.7-p174のビルド時にmake testをするとエラーになった。not ok float 7 -- ./sample/test.rb:1232

13 messages 2009/09/03

[#39249] [Bug #2060] DLをCからRubyに変換する事を勧めます — Aaron Patterson <redmine@...>

Bug #2060: DLをCからRubyに変換する事を勧めます

10 messages 2009/09/07

[#39282] [Bug #2067] bodyが大きいエラーページをopen-uriで取得するとfdがリークしている — takeru sasaki <redmine@...>

チケット #2067 が更新されました。 (by takeru sasaki)

15 messages 2009/09/10
[#39283] Re: [Bug #2067] bodyが大きいエラーページをopen-uriで取得するとfdがリークしている — Yukihiro Matsumoto <matz@...> 2009/09/10

まつもと ゆきひろです

[#39284] Re: [Bug #2067] bodyが大きいエラーページをopen-uriで取得するとfdがリークしている — Nobuyoshi Nakada <nobu@...> 2009/09/10

なかだです。

[#39297] Re: [Bug #2067] bodyが大きいエラーページをopen-uriで取得するとfdがリークしている — Yukihiro Matsumoto <matz@...> 2009/09/10

まつもと ゆきひろです

[#39298] Re: [Bug #2067] bodyが大きいエラーページをopen-uriで取得するとfdがリークしている — Tanaka Akira <akr@...> 2009/09/10

In article <E1MliJq-0000yc-4o@x61.netlab.jp>,

[#39302] Re: [Bug #2067] bodyが大きいエラーページをopen-uriで取得するとfdがリークしている — takeru sasaki <sasaki.takeru@...> 2009/09/10

言いだしっぺの佐々木です。

[#39307] Re: [Bug #2067] bodyが大きいエラーページをopen-uriで取得するとfdがリークしている — Yukihiro Matsumoto <matz@...> 2009/09/10

まつもと ゆきひろです

[#39345] [Bug #2111] Error:test_rm_f(TestFileUtils) — Kazuhiro NISHIYAMA <redmine@...>

Bug #2111: Error:test_rm_f(TestFileUtils)

11 messages 2009/09/17

[#39352] [ruby19] Thread 切替えが異常に遅い? — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

12 messages 2009/09/20

[#39367] Almost endless loop of BigMath::atan(x) when x.abs >= 1 — "Masahiro Kanai (CanI)" <cani.m.61st@...>

金井 仁弘と申します。

13 messages 2009/09/23
[#39980] Re: Almost endless loop of BigMath::atan(x) when x.abs >= 1 — TOYOFUKU Chikanobu <nobu_toyofuku@...> 2010/01/07

豊福です。遅い反応ですが。

[#39982] Re: Almost endless loop of BigMath::atan(x) when x.abs >= 1 — TOYOFUKU Chikanobu <nobu_toyofuku@...> 2010/01/07

豊福です。

[#39388] Re: [ruby-cvs:32331] Ruby:r25113 (trunk): String#inspect's encoding should be fixed. — "Martin J. Dürst" <duerst@...>

成瀬さん、こんにちは。

9 messages 2009/09/28

[ruby-dev:39302] Re: [Bug #2067] bodyが大きいエラーページをopen-uriで取得するとfdがリークしている

From: takeru sasaki <sasaki.takeru@...>
Date: 2009-09-10 16:34:01 UTC
List: ruby-dev #39302
言いだしっぺの佐々木です。

begin
 open(url) do |f|
   ...
 end
rescue OpenURI::HTTPError => e
 e.io.close
end
GC.start
の様に書けば確実にcloseされるのなら問題ないですが、そうでもないようです。

GCでは未使用のメモリを回収してくれるだけで未使用のfdを回収してくれることは
ないのですよね。
メモリに余裕がある状態だとfdをつかんだ例外オブジェクトも回収されず、
fdも開きっぱなしになるのではないかとおもいます。
(再現スクリプトでは1.9では開きっぱなしのfdの数が少ないです。GCが効いている?)

この問題に気がついたのは、「EMFILE too many open files」になったせいでした。
例外オブジェクトへの参照は確実に無いはずで(メソッドからreturnしている)
gcされるより前にtoo many open filesにぶつかったのでした。
大きいサイズのエラーページというのもレアなのでなかなか気づきにくい問題でした。




2009年9月10日22:56 Tanaka Akira <akr@fsij.org>:
> In article <E1MliJq-0000yc-4o@x61.netlab.jp>,
>  Yukihiro Matsumoto <matz@ruby-lang.org> writes:
>
>> 部分的にしか理解できていません。Tempfileなのでcloseすると情報
>> が失われるから保存しているのは理解できました。が、その場合、
>> 気になるのは、今回「リーク」とされたのは、ただちにcloseされて
>> いないからプロセスが肥大しただけのことで、いずれGCで回収され
>> るのかどうか、ということです。
>
> 例外オブジェクトへの参照がなくなれば、その例外オブジェクトや
> Tempfile は GC されます。GC にともない、fd は close され、テ
> ンポラリファイルは削除されます。
>
>>                                 Tempfileは面倒だなあ。
>
> [ruby-core:25019] で書いた Tempfile.anonymous {} のような、
> 状況によっては面倒でない挙動をとれる API をつければいくらか
> は軽減できるでしょう。ただし、今回の open-uri の場合は例外の
> 中に入れるので適用できませんが。
> --
> [田中 哲][たなか あきら][Tanaka Akira]
>
>

In This Thread