Mac

Leopard – Mail.app がハング

Leopard インストールしてしばらくは問題もなく快適に使えていました。

しかし今週になってから Leopard 付属の Mail.app がハングし、しばらくするとクラッシュするという現象に悩まされています。

ハング中にアクティビティモニタを確認すると Mail.app と syslogd の二人が CPU をものすごい勢いで占有しているのがわかります。

system.log を tail すると以下のようなメッセージが一秒間に1万件くらいというトテツモナイ勢いで記録されていることがわかりました。

Nov 10 02:57:13 osloholsenlt2 [0x0-0x42042].com.apple.mail[454]: Mail(454,0xb1028000) malloc: *** mmap(size=1628893184) failed (error code=12)
[0x0-0x42042].com.apple.mail[454]: *** error: can't allocate region
[0x0-0x42042].com.apple.mail[454]: *** set a breakpoint in malloc_error_break to debug

あまりにもとてつもなくトテツモナイ勢いなので system.log は GB 単位でトテツモナク膨れ上がってしまいます。

malloc に失敗しているということで、メモリを無尽蔵に要求している状態でしょうか。
しかし 1628893184 がバイト数だとすると 1.5GB? ちょっと大きくメモリ要求しすぎなような気が・・・。

最近受け取ったメールのうちどれかのパースに失敗して無駄にメモリを使おうとしている状況?
でも起動してからしばらくは動作するし、特にうまく表示できないメールがあるわけでもないのが不可思議なところですが。

ひとまず原因となっているメールアカウントを切り分けようと、私用アドレスのアカウントと仕事のアカウント、どちらか一方を無効にしても再現してしまいました。

さてはキャッシュかインデックスが壊れているのかと、sqlite のインデックスを vacuum したり、キャッシュを削除したりとしてみましたが依然再現。

新規インストールしたマシンでも再現、PPCのマシンでも再現。アレレ

私用のアカウントにも会社のアカウントにも Mail.app 的にうれしくないメールが含まれているんでしょうか?

簡単に再現するわりにはあまり事例が見つからないのが気持ち悪いです。

ひとまず ThunderBird を入れてみたけれども Mail.app に比べるとパフォーマンスでも、機能でもイマイチ。

Mail.app がフリーズ・クラッシュ、という点では事例がヒットしませんが、Leopard になってから "set a breakpoint in malloc_error_break to debug" というエラーが発生する件は良く報告されているようです。
OS 自体に問題があるんでしょうか?

解決策をご存じの方、お知らせいただければ大変助かります。


Mail.app と syslogd がトテツモナクメモリを消費している様子

似た事例:
連絡帳@あくあ – 2007-10-28 Leopardとpotrace
Apple – Support – Discussions – Mail won't open
起動すらできないケース。
Mac OS X Mail app. Crash when trying to print
届かないところにあるネットワークプリンタがデフォルトに設定されているとプリントするときに発生するというケース。

関連記事:
Leopard – Mail.app のハング解消