macOS High Sierra の「Month 13 is out of bounds」エラーに対処する(β)

f:id:wifeofvillon:20171201084934p:plain

NOTE: Mac初心者が成長するためのぼっちアドベントカレンダー・21日目

WIP: このエントリで紹介している内容には開発者向けbeta版の話題を含みます

前置き: 筆者のマシンに起こっていたこと(2017-12-21現在)

今回のエントリを書く背景には大きくふたつの問題があり、今回はひとつめの問題について対処した話をします。

  1. 大した作業をしているわけではないのにハング→再起動を繰り返す
  2. 艦隊これくしょん-艦これ-」と「刀剣乱舞-ONLINE-」を同時にGoogle ChromeでプレイするとCPU使用率がすごく高くなる

macOS High Sierraで起きていた(いる)「Month 13 is out of bounds」エラー

元々「滅多にフリーズしない」と言われているMacをやたらハングさせる筆者ですが、12月上旬は5日に1回ペースだった異常終了がどんどん頻繁になっていき、ついには12月20日の時点でブラウザ上での作業が困難になりました。

Macのログメッセージを確認する

Macでは「コンソール」を使用することでログメッセージを確認することができます。

support.apple.com

最初はSystem.logに適当にあたりをつけて再起動直前の状況を知ろうと思っていたのですが、とにかくものすごい勢いで「Month 13 is out of bounds」というエラーが吐かれていることを発見しました。

f:id:wifeofvillon:20171221221447p:plain

「Month 13 is out of bounds」エラー

これはCore Foundationに作り込まれているバグらしく、スペックがあまりに低いわけでもない限りそこまで著しくCPU使用率を逼迫させていたわけではないようです。

applech2.com

Core Foundation - Wikipedia

ただ筆者が使っているマシンがCore i5/メモリ8GBという微妙なスペックであること、常駐アプリが多いこと、Chromeで大量にタブを開いて作業をしていることなどが重なり、頻繁な再起動に繋がったのではないかと考えています。

とりあえずの対応としては以下が挙がっています。

  • システム時間を2017年12月以前に戻す
  • UserEventAgentをkillする

システム時間をいじるのは影響範囲が大きそうなのでやりたくないのと、UserEventAgentが何をやっているプロセスなのかググってもよくわからなかったのとで、他の対応を取ることにしました

applech2.com

対応1: mdworkerを止める

mdworkerというSpotlight検索のプロセスが、UserEventAgent以外で頻繁にエラーログに出現していたので、元々Spotlight検索をそれほど使っていなかったこともあり、マシン内を検索しないように設定しました。

webhoric.com

対応2: メモリを意識的にクリアする

下のエントリでMagicanLiteというアプリを紹介しています。常にCPU/メモリ使用率を意識してチェックするようにし、頻繁にメモリをクリアするようにしたのですが、「艦隊これくしょん」で遠征に出すことすらつらいという状況でした。

wifeofvillon.hatenablog.com

あとMagicanLiteがすげー勢いで「Month 13 is out of bounds」を吐く……

対応3: ChromeHelperをできるだけ立ち上げないようにする

Google Chromeを使っているとChromeHelperというプロセスが実行されます。
これがCPUもメモリも食う上にタブの数だけ(?)増えるという状態だったので一部の作業というか、連隊戦イベント絶賛開催中の「刀剣乱舞-ONLINE-」をSafariで実行するようにしました(薄々そんな気はしていたのですが案の定あまり意味はありませんでした。これについては明日書きます)。
また、できるだけタブを開きっぱなしにしないようにしましたがこれもまた限度がありました。

今検索したら良さげなコマンドがあったので明日試そう。

ottan.xyz

対応4: 「macOS High Sierra 10.13.3 beta 2」をインストールする

イムリーなことに12月19日に開発者向けbeta版がリリースされていたので、完全に力技なんですけどインストールしました。

minatokobe.com

Apple Developer

夫のアカウントを使ったので確証はないんですけど、以下の条件を満たす必要があるかもしれません。

  • Apple Developer Accountを持っている
  • メンバーシップを購入している

結論: 正式リリースはよ

とりあえずこれを書いている現状、理不尽な再起動は起こっていませんが、Google Chromeが阿呆ほど重いのと、Beta版なので(「Month 13 is out of bounds」でない)エラーログが尋常じゃない勢いで吐かれています。

はよう正式リリースを頼む。

おわりに

図らずもアドベントカレンダーのネタができてしまったことを嘆く筆者のツイートです。