暴走するmds

  • Spotlightの検索がダメで、先日ハードディスクを初期化し、システムを再インストールした。移行アシスタントで以前の環境を引き継いでしまっては元の木阿弥なので、各種の設定やアプリケーションのインストールは新たに行い、ドキュメント類のみ、バックアップ先の外付けハードディスクから内蔵ハードディスクに手動でコピーした。
  • が、やはりSpotlightで内蔵ハードディスクの検索ができない。具体的には、Spotlight用の索引作成プロセス(mds)がCPUをほぼ100%占有したまま、いつまで待っても終了しない。この状態に陥ると、Time Machineによるバックアップもできなくなってしまう。
  • わざわざ初期化までした以上、バックアップ先から持ってきたファイルに問題がある可能性が高い。そこで、内蔵ハードディスク内のファイルを「システム環境設定>Spotlight>プライバシー」に入れたり出したりして、「引っかかるファイル」の特定を試みた。結果、浮かび上がったのは、単なるテキストファイル。中身はUnicodeの第2面(追加漢字面)の文字のリストだった。


  • その後、いろいろ実験してわかった「引っかかるファイル」の条件は、次のようなかんじ。UTF-16のテキストファイルであり、異なる文字の連続であり(同じ文字の繰り返しではなく)、改行を含まずに、Unicode第2面(追加漢字面)の文字が、16,384文字(65,356オクテット)以上連続する。このようなファイルが存在すると、mdsは暴走する。
  • 自分のマシン(Mac OS X 10.6.2、Intel)以外にMac OS X 10.5.8のマシン2台(いずれもIntel)で同じ現象を確認。Mac OS X 10.4.11のマシン(PowerPC)では問題は発生しなかった。