macOS High Sierra の「Month 13 is out of bounds」エラーに対処する(β)
このブログでは商品紹介にはてなブログ標準機能のAmazonアソシエイトを利用しています
NOTE: Mac初心者が成長するためのぼっちアドベントカレンダー・21日目
WIP: このエントリで紹介している内容には開発者向けbeta版の話題を含みます
前置き: 筆者のマシンに起こっていたこと(2017-12-21現在)
今回のエントリを書く背景には大きくふたつの問題があり、今回はひとつめの問題について対処した話をします。
- 大した作業をしているわけではないのにハング→再起動を繰り返す
- 「艦隊これくしょん-艦これ-」と「刀剣乱舞-ONLINE-」を同時にGoogle ChromeでプレイするとCPU使用率がすごく高くなる
macOS High Sierraで起きていた(いる)「Month 13 is out of bounds」エラー
元々「滅多にフリーズしない」と言われているMacをやたらハングさせる筆者ですが、12月上旬は5日に1回ペースだった異常終了がどんどん頻繁になっていき、ついには12月20日の時点でブラウザ上での作業が困難になりました。
Macのログメッセージを確認する
Macでは「コンソール」を使用することでログメッセージを確認することができます。
最初はSystem.logに適当にあたりをつけて再起動直前の状況を知ろうと思っていたのですが、とにかくものすごい勢いで「Month 13 is out of bounds」というエラーが吐かれていることを発見しました。
「Month 13 is out of bounds」エラー
これはCore Foundationに作り込まれているバグらしく、スペックがあまりに低いわけでもない限りそこまで著しくCPU使用率を逼迫させていたわけではないようです。
ただ筆者が使っているマシンがCore i5/メモリ8GBという微妙なスペックであること、常駐アプリが多いこと、Chromeで大量にタブを開いて作業をしていることなどが重なり、頻繁な再起動に繋がったのではないかと考えています。
とりあえずの対応としては以下が挙がっています。
- システム時間を2017年12月以前に戻す
- UserEventAgentをkillする
システム時間をいじるのは影響範囲が大きそうなのでやりたくないのと、UserEventAgentが何をやっているプロセスなのかググってもよくわからなかったのとで、他の対応を取ることにしました
対応1: mdworkerを止める
mdworkerというSpotlight検索のプロセスが、UserEventAgent以外で頻繁にエラーログに出現していたので、元々Spotlight検索をそれほど使っていなかったこともあり、マシン内を検索しないように設定しました。
対応2: メモリを意識的にクリアする
下のエントリでMagicanLiteというアプリを紹介しています。常にCPU/メモリ使用率を意識してチェックするようにし、頻繁にメモリをクリアするようにしたのですが、「艦隊これくしょん」で遠征に出すことすらつらいという状況でした。
あとMagicanLiteがすげー勢いで「Month 13 is out of bounds」を吐く……
対応3: ChromeHelperをできるだけ立ち上げないようにする
Google Chromeを使っているとChromeHelperというプロセスが実行されます。
これがCPUもメモリも食う上にタブの数だけ(?)増えるという状態だったので一部の作業というか、連隊戦イベント絶賛開催中の「刀剣乱舞-ONLINE-」をSafariで実行するようにしました(薄々そんな気はしていたのですが案の定あまり意味はありませんでした。これについては明日書きます)。
また、できるだけタブを開きっぱなしにしないようにしましたがこれもまた限度がありました。
今検索したら良さげなコマンドがあったので明日試そう。
対応4: 「macOS High Sierra 10.13.3 beta 2」をインストールする
タイムリーなことに12月19日に開発者向けbeta版がリリースされていたので、完全に力技なんですけどインストールしました。
夫のアカウントを使ったので確証はないんですけど、以下の条件を満たす必要があるかもしれません。
- Apple Developer Accountを持っている
- メンバーシップを購入している
結論: 正式リリースはよ
とりあえずこれを書いている現状、理不尽な再起動は起こっていませんが、Google Chromeが阿呆ほど重いのと、Beta版なので(「Month 13 is out of bounds」でない)エラーログが尋常じゃない勢いで吐かれています。
はよう正式リリースを頼む。
おわりに
図らずもアドベントカレンダーのネタができてしまったことを嘆く筆者のツイートです。
Macがハングと再起動を繰り返すのでコンソール見たら「Month 13 is out of bounds」っていうJSのDate関数で失敗したみたいなログが大量に吐かれててどう考えてもこれ https://t.co/wAwMT2RBG7
— wifeofvillon (@wifeofvillon) 2017年12月20日
システム日付を11月に戻すとかリスキーすぎてやりたくないんだけどパッチはまだか
— wifeofvillon (@wifeofvillon) 2017年12月20日
図らずもアドベントカレンダーのネタができてしまったな……
— wifeofvillon (@wifeofvillon) 2017年12月20日
macが作業できないレベルで異常終了するの本当無理
— wifeofvillon (@wifeofvillon) 2017年12月20日
UserEventAgent at 100% CPU after security update | Official Apple Support Communities https://t.co/QKSKFiw3nl
— wifeofvillon (@wifeofvillon) 2017年12月21日
>StartCalendarInterval属性を使用したplistファイルを削除して再起動しました。これでOKです。
それ本当にOKなのかな???