El Capitan受難

El CapitanことOS X 10.11が先日リリースされた。

最近は、アップデートで苦労する機会も減っていたので、勢いあまってえいやっとアップデートをかけた。しかし、なかなか苦労したので、メモを残しておくことにする。

災難は、油断した時に最大限活躍するっていう見本みたいな事例になってしまった…

現在、ようやくまともに動作するようになった段階で、まだまだ問題はでてくるかもしれない。

しかし、いきなり洗礼を受けた問題は結構過激だったので、クリアするまでの心労がすごかった…

発生した現象

  1. curlなどで(HTTPSの)ファイルがダウンロードできない
  2. App Storeが機能しない
  3. Chromeで多くのHTTPSの通信ができない
  4. CPUパワーを一部のデーモンが使いつくす
  5. メモリを一部のデーモンが使いつくす
  6. SWAPが膨らんで、システムが動作不能になる

等々。

まず、brew upgradeしようとしたら、いつまでたってもダウンロードが完了しないことに気がついた。

さらに、原因を検索しようとしたらGoogleの検索(HTTPS)がエラーになる。ERR_TIMED_OUTだったかな。

さらに、全体的に動作が緩慢で反応がすこぶる鈍い。

最近は諸般の事情によりコンピュータを弄れる時間が短かくて、起動したまま放置していたら、動作をまったく受けつけない状態になって実質ハングしていた。

原因の推測

まず、ぐぐってみたら、どうも証明書の問題があるという記述がいくつか見付かった。

HTTPSの通信が怪しくなっていることは chrome や curlの動作から予測できた。ただし、何故かFirefoxとSafariはChromeで動作しないURLでも表示できる。システム組みこみの証明書(KeyChain管轄)なら、どのブラウザでも問題が出そうなものだが、この辺はブラウザの作りもあるのかもしれない。

動作が緩慢なのは、topやアクティビティモニターを見たら歴然。storeaccountdとかgamed、identityserviced、com.apple.geodといったデーモンがCPUを猛烈に回していた。エラーログにも警告が残ってる。

また、放置時にハングした原因も次第に判明した。CPUをぶんまわしてるプロセスが、メモリも喰いまくっていた。長時間動いていると、プロセスあたり5GBとかいうレベルでメモリを使いまくる。結果、スワップアウトが頻発。元々ストレージの空きが少なかったので、起動ドライブの容量を食い尽して、残り数百MB位になってどうにもならなくなっていた。

どうやら、認証関連のプロセスがHTTPSの通信を行うが、それがうまく動作しないようだった。

証明書が問題だったのかは分らないが、結果としてタイムアウトが発生していた模様。Chromeも最初のうちはHTTPSのサイトも表示されているぽいのだが、あっというまに表示しなくなり、タイムアウトのエラーしか出なくなるという始末。

対処

対処はとても苦労した。

多分HTTPSに絡んで、証明書周りに問題が発生し、結果HTTPSの通信に問題が発生してそうな事はすぐ想像できた。

とりあえずキーチェインアクセス.appで証明書を見たりしているうちに、いつのまにかキーチェインアクセス.appが起動しなくなった。

こうなってくると、他にアクセス手段がないので、どうにもならない。

システムワイドの情報は /Library/Keychains/ 以下にあり、ログインしたユーザー固有の情報は ~/Library/Keychains/ 以下にあるということが判明した。

また、試しに他のユーザーを作成してそちらでログインしてみると、デーモンの暴走が発生しない。キーチェインアクセス.appも普通に起動する。

したがって、ユーザー固有の情報の方が壊れていると判ってきた。

別ユーザーで、キーチェインアクセス.appを起動してメニューからKeychain First Aidを指定ユーザーでかけた所、壊れていると表示されたので修復して再起動したが、やっぱり動作不良。

色々試している内に、キーチェインアクセスは起動するようになるが、ログインユーザーのパスワード等は表示できるが、証明書を選択するとハングする。

キーチェインには、いろんなアプリのパスワード等が記録されており、相当な年数の記録が溜っているので失いたくはない。

なんとか色々と試してみたが、結果としては、パスワードをまとめてExport/Importする方法がないようで、最終的には断念した。

ユーザー固有の証明書が表示できないので、そのあたりに原因があるようだったが、アプリ経由でしかデータの表示・変更ができないので、アプリにハングされると手のうちようがない。

一応、ハングする ~/Library/Keychains/ をバックアップした後、削除して再起動。

とりあえず、今の所、動作は正常に見える。

なくなく必要なアカウントを求められた時は入れなおしながら、嘆息である。

セキュリティの勘所とはいえ、非常に重要な所だからこそ、Import/Exportの可否、データをバイナリで保管しないとか、気を使って欲しいなぁと強く思った次第。

今回は、障害でTime Machineが使えてない状態だったので、後戻りが不可で精神的にかなり追い詰められた。辛い…

自業自得ではあるのだが。

その他

今の所、ようやく今日まともに使えるようになった所なんで、El Capitanの良さは、ほぼ皆無。

リカバリモードでcsrutil disabledしちゃったけど、新しい System Integrity Protectionもあんまり好きになれそうにない。

どんどん、道具としてのコンピュータ感が薄れる。御仕着せで逆に使われてる感が強くなる。老害なのかねぇ。

基本的に、そこそこ使いやすく、容易に手に入り、商用ソフトも動作する。そんな*nixが欲しいダケなんだけどなぁ。どんどん離れていってしまう哀しさよ。

現状、唯一よさげに感じたのは Mission Controlの動作かな。

ウィンドウの展開ロジックが10.10の頃は最悪だった。それが大分見易く展開してくれるので、これは好印象。Mission Controlは非常に多用してる上、ウィンドウの枚数も常に膨大なので、これはいい感じ。

後は、これからかなぁ。