とみたです。

# 私は英語力がアレなので、ruby-ext で…。

[ruby-talk:11969] で Eric さんが書いてた件です。
# ruby-talk には入ってないのに、これだけ送られてきた…(^^;

On Sun, 4 Mar 2001 19:50:48 +0900
Eric Sven Ristad <ristad / mnemonic.com> wrote:

> I've written a Ruby program that uses Tomita Masahiro's excellent
> ruby-mysql module to communicate with a MySql database.  Unfortunately
> if the program runs for a while, it runs out of memory and crashes.
> It looks like the problem is that the garbage collector is not getting
> called often enough to reclaim the results of the mysql queries made
> by my Ruby program.

MySQL/Ruby は MySQL のクライアントライブラリである libmysqlclient.so 
を呼んでます。

メモリが足りなくなったタイミングが Ruby の世界の中だったら、GC が
自動的に走って、不要なメモリを解放してくれるんでしょうけど、
MySQL ライブラリ中でメモリ不足が発生したら、MySQL ライブラリは
Ruby のことなんか知ったこっちゃないんで、そのまま失敗しちゃい
ます。

原因は多分こういうことなんでしょうけど、この現象って救い用あります?

これって別に MySQL に限った話じゃなくて、外部ライブラリを使用している
拡張ライブラリであれば、起き得る話ですよね。何か一般的な解決策みたい
なもんがあるんでしょうか?

# メモリじゃなくてファイル記述子でも同様っすね。

--
とみたまさひろ <tommy / tmtm.org>
日本MySQLユーザ会 http://www.mysql.gr.jp