Ruby/DBIでMySQLドライバを使うとSegmentation faultになる
test.rb
require 'dbi' db = DBI.connect('DBI:Mysql:test:localhost', 'root', 'root') 10000.times do |c| s = '.' * c * 10 end db.disconnect
このコードを実行するとSegmentation faultでRubyが終了する。
実行結果
C:\work>ruby test.rb test.rb:7: [BUG] Segmentation fault ruby 1.8.6 (2008-08-11) [i386-mswin32] This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information.
DBI.connectをコメント化すると正常に処理完了するので、どうもこの部分があやしい。
さて、どうしよう。
追記:
DBをSQLite3に変えてみたらちゃんと動いた。やっぱりMySQLドライバのバグっぽい。