MacOS X 10.4.8に標準で入ってるSQLite3にバグがありそうな件

大事なことを先に。

2008/01/07追記

これはどうやらswigを入れていないのが原因だったっぽいです。お騒がせしました。たしか解決したエントリへのリンクを張っておきます。
http://d.hatena.ne.jp/moro/20061029/1162117114

MacRails開発してる人は、標準で入っているSQLite3をそのまま使うのでは無く、MacPortsなんかで最新のSQLite3にしたほうがよさげ。で、インストール後は、念のため、sqlite3-rubyコンパイルし直しました。

 $ /usr/bin/sqlite3 -version
 3.1.3

 $ /opt/local/bin/sqlite3 -version
 3.3.7

何かそのままのバージョンで使ってたらテストが落ちまくりました。転ばぬ先の杖ということで、MacPorts入れとくのをお勧めします。

Railsでテストを書いてたら、Rubyが原因不明のエラーで落ちまくりました。テストを一本ずつ走らせるとOKなのに、rakeからまとめて走らせるとRubyがsegmentation faultするという。こんな感じ。

 ruby(1887,0xa000cfc0) malloc: ***  Deallocation of a pointer not malloced:
 0xbfffc228; This could be a double free(), or free() called with the middle
 of an allocated block; Try setting environment variable MallocHelp to see
 tools to help debug

で、SQLite3(3.1.3)の":memory:"DBを使ったらちゃんと通ったという。3.3.7を入れたら物理DBを使ったテストでも落ちなくなりましたとさ。めでたい。