スポンサーリンク
Chromebookをデュアルディスプレイで利用する際、スリープから復帰するとChromeのタブがすべて閉じてしまっており、「ページを復元しますか? Chromeは正しく終了しませんでした」という、Chromeが強制終了/クラッシュした後の初回起動時に表示されるエラーが表示される現象が発生しました。
また、Chrome以外のアプリ(Google PlayからインストールしたAndroidアプリで実験)も終了してしまうことが分かり、「Chrome OSがクラッシュしている」ようにも見える症状です(ただしuptimeは途切れておらず、再起動してしまったのとも異なる様子でした)。
この、スリープ復帰後にChromeがクラッシュしてしまう現象について紹介します。
スポンサーリンク
スリープからの復帰後にChromeがクラッシュする
Chromebook「Lenovo IdeaPad Duet Chromebook CT-X636F」にて、スリープから復帰した際にChromeに次のエラーが表示され、Chromeがクラッシュしていることに気が付きました。
ページを復元しますか?
Chromeは正しく終了しませんでした
[ ] 障害レポートと使用統計データをGoogleに自動送信してGoogle Chromeの機能向上に役立てる
[復元]
「復元」をクリックすればタブは再び開くことができますが、スリープ前の状態とは異なり、再読込後の状態となってしまいます。
また、Chrome以外にAndroidアプリを起動していると、そちらもスリープからの復帰後終了してしまっていることが分かったため、Chromeに限らず(Chromeは強制的に開くため分かりやすい)、アプリが終了してしまうことが分かりました。
なお、Chromeを始めとする他のアプリもクラッシュして終了してしまっているように見えたため「Chrome OSがクラッシュした」のと似たようにも見えたのですが、「OSが再起動したかどうか」という観点で見てみるとOSが再起動した際に表示される「chrome」ロゴは表示されず、またcroshでuptimeコマンドを実行して確認した稼働時間の表示からも、OSが終了してしまった、ということはなさそうで、あくまでsleepから復帰しただけ、のように見えました。
デュアルディスプレイで発生
この問題は、Chromebookに外部ディスプレイを接続(USB-C - HDMI)して、デュアルディスプレイとして利用した際に発生しました。
デュアルディスプレイを解除した状態でスリープに入って復帰した際には、特にChromeがクラッシュすることはなく、ディスプレイ接続中にのみ発生するようでした。
Chrome OS(Chrome)のバージョンは 「87.0.4280.109」で、同じバージョンにアップデート済みの別のChromebook「ASUS Chromebook C223NA」では同じ症状は発生せず、でした。
Chromeの不具合登録システムを確認する
この問題について、Chrome(Chromium)およびChrome OS(Chromium OS)の不具合が登録/管理されているシステム内を検索してみたところ、関連しそうな登録を2つ見つけることができました(12/28時点):
こちらは「HP Chromebook x360」で、2つのディスプレイをUSB-Cハブ経由で接続している状況下で(その後、1つのディスプレイでも発生したとの追記あり)、スリープからの復帰後に、ChromeではなくChrome OSがクラッシュし電源ボタンを長押ししないといけない、というもので、少し症状が異なるようにも見えましたが、ディスプレイ接続が関係しているあたり、何らかの関連があるかもしれません。
もう一つが次の登録です。
こちらは特に「外部ディスプレイに接続している」という条件はなく、スリープからの復帰後にChrome OSがクラッシュする、というものです。こちらについては、「HP Chromebook x360」「Samsung Galaxy Chromebook」「Asus Chromebook Flip C302CA」の名前が挙げられています。
再現手順の説明内ではOSがcrashする、と説明されているのですが、ここで言うcrashがどのような状況を指しているのか(OSが再起動しているのか、見かけ上そのように見えるのか)の見分けが付きにくく、同じ症状かみ分けにくいのですが、先ほどのと比べるとこちらは症状の不一致がなさそうで、どちらかと言えばこちらに該当するように見えました。
これらどちらについても、「現時点で修正が完了した」「アップデートにより解決した(一部解決報告があるものの、解決しないとの声もある)」のような解決を迎えていない様子で、特に「この手順で発生しないようにできる」といった回避策についての情報も見つけることはできませんでした。
ただし今後改善や原因特定、修正版のリリース予定などが見えた際リンク先が更新される可能性があるため、今後も発生が継続するようであれば、確認しておくと良さそうです。
発生する条件や回避手順について
この後もう少し症状を詳しく確認してみる実験を行いました。
今回、USB-Cハブを使用してHDMIに変換しており、同時にUSB-C経由の給電も行っていたのですが、給電の有無にかかわらず発生することが分かりました。
また、スリープの前後でディスプレイ接続を解除した場合に再現するかどうかを確認してみたところ、スリープに入った後、スリープからの復旧時に接続を解除しておけば発生しないようでした。そのため、「しまったスリープしてしまった、タブが消えたら困る」という状況に陥ってしまってそれに気が付けた場合には、USB-Cケーブルを抜いてディスプレイとの接続を解除してからスリープを解除することで、問題の発生を緊急手段的に回避することは可能そうです(手元で確認した範囲では)。
逆に、スリープに入った時点ではディスプレイに接続せず、スリープの最中にディスプレイに接続してからスリープを解除した場合にどうなるのかも確認してみたのですが、こちらでも問題は発生せず、でした。
そのためどうやら、スリープに入った時点でマルチディスプレイ状態で、スリープ解除の時点でもマルチディスプレイが継続しているとき、発生するようです。
ここまでの挙動が把握できたとしても、マルチディスプレイ状態でスリープに入ってしまうと先ほどの回避策が一応利用できるとは言え不便であることに変わりはないため、Chrome OSの修正アップデート等の改善を待つ必要がありそうです。
参考
スポンサーリンク
スポンサーリンク