macOSのSafariでアドレスバーに検索単語を入力中に固まる事象が突然発生した(2020/9/3時点)。
レインボーアイコンがグルグルして、一切の操作ができなくなる。Dockから強制終了するしかない。
文字入力で固まるのは本当にストレス。
macOSのバージョンはこれ。
OSのバージョンアップが原因かも?と疑ったけど、OSのアップデートまで気長に待つことなどできない。
熱暴走か?ディスク障害か?も疑ったけど、Safariだけが遅い(Chromeだとそうでもない)ところをみるとそうも考えられない。
おそらくSafariのアドレスバーに文字入力するときに、検索結果の表示と文字の入力とがバッティングしてしてるのではないか(そんな動き)と考えた。
Safariをいじったら(一応)解消したのでメモ。下記③で解消した。
試したこと
① プライベートブラウズモードで(文字入力し)固まるか試す
プライベートブラウズモードだと履歴が読まれないから検索結果の先読みが行われない。なので、結果表示が文字入力とバッティングすることがない。これで固まらなければ、先読みが原因だったと判断できる。
② Safariの設定を変える
環境設定で「検索エンジンの候補」の表示や「バックグラウンドでのトップヒットの読み込み」をOFFにしてみる。要は検索結果の先読みを行わせない設定にしてみる。設定後はSafariを再起動(できればiMacごと再起動)したほうが良さそう。今回はこれで解消した。 もとい再発した。
③ Safariの履歴を消してみる
アドレスバーのトップヒットに候補として出るのは履歴だから、その履歴のほうを削除してしまえばいいという発想。履歴なんて消えても問題ない。固まるよりいい。サクっと消す。今回はこれで解消した(かに見える。まだ分からん。再発するかも)。
おそらくだけど直近で訪問したサイトが原因。変な文字コードを使っているサイトだった(utf-8 と shift-jisが混在してる)とか、macOSの正規表現が引っ掛けてしまう(オートマトンで無限ループにハマる)ような文字が混在したサイトだったのかもしれない。JavaScriptがバグっていたというのも十分考えられる(作為的か不作為かは分からんけど)。
④ Chromeを使ってみる
SafariでダメならChromeで試す。こっちで同じ現象が発生しないならSafari固有の問題だと切り分けることができる。バグ解消のアップデートがされるまではしばらくChromeの運用で耐えるという選択肢。
⑤ Google日本語入力を使ってみる
文字入力で固まるということはことえりが(macOSのアップデートで)バグったという可能性も無きにしもあらず。Google日本語入力を入れて、こちらを使ってみる手もある。
⑥ 熱暴走を疑う(扇風機でiMac自体を冷やす)
現象が発生したのが暑い日だったので熱暴走も疑った(考えにくいけど)。SafariだけでなくPC全体がモッサリというときは試してみる価値がある。
⑦ topコマンドを試す
$ top
対処というよりは原因のモニタリングだが。ロードアベレージ(Load Avg)をみると1.16, 1.27, 1.36しかない。このiMacはクアッドコアだからそれぞれ4以下であれば問題ない。のでCPU的には問題なし…と思ってたところ、文字入力がフリーズしたタイミングでPIDのトップにSafariがCPU使用率100%で上がってきた。やはりSafariのバグなのだ。
⑧ディスク障害を疑う
心当たりがある(大きなファイルの作成→削除を繰り返していていた)ので、もしかしたーらだけど、内蔵SSDが不調になったか、その前触れかもしれない。このiMacを買ったのが4年前だから、万が一あるかもしれない。
ま、PCの不調のときに買い替えるなんていう対処は最悪の悪手だし素人の発想だから、それは考えないでおく。まずはディスク障害を検知するためのモニタリングをもっと本腰いれてやることにする(macOSにvmstatないけど他に手はないものか)。
参考になった記事