Unity HubでUnityをインストール中にCPUやメモリを爆食いする現象

 タイトルだとちょっと語弊があるんですよね、実は。

Unity Hubが正式にリリースされてだいぶ経ちますが、昨日、Unity2019.x系をインストールしようとUnity Hubを起動してインストールしようとした結果、インストールできなくなってました。

具体的な現象から説明します。

環境

Microsoft Windows 10.0.18363
Unity Hub 2.4.2
CPUやメモリは必須環境を満たしてるはずです。

現象

Unity Hubを起動して、[インストール]タブに移動して、Unity Editorをインストールしようとバージョンを選びインストールを実行すると、[インストールしています]の表示の後にUnity Hubが応答しなくなり、最後はWindowsがHubを強制終了する。
絶賛この不具合が発生中のスクリーンショットです。
このとき、インストール中のUnityはHubに表示されていません。
調べてみてもこの現象に関する現象は見つかりませんでした。DISMはコマンドプロンプトから実行できる環境になっていましたし、実際にタスクマネージャーから確認したところDISMが実行しているときがありましたのでDISMの問題ではなさそうです。
ちなみにこのように表示されたこともありました。
次に強制終了したUnity Hubを再度スタートメニューから再度立ち上げてみるとこうなります。

このスクリーンショットは2019.4.13f1をインストールしようとしたときのものですが、インストールされたことになっています。これの何が問題なのかというと、
この状態は自分でUnityをインストールして[リストに追加]を使って追加したのと同じ扱いになっています。つまり、[モジュールの追加]などができない状態です。
しかも、インストール時にはAndroid Build Toolなどを選択していますが、インストールされていたUnityにはそれらのコンポーネントは含まれていません。
これらのコンポーネントはUnity EditorのBuild Settingsからもダウンロードできますがこの方法だとMacビルドツールなどができません。

インストールに失敗したUnityのバージョン

  • 2019.4.11f1
  • 2019.4.12f1
  • 2019.4.13f1
以上のバージョンを実際にインストールを何回も試みましたがすべて同じ現象で終わりました。

試してみたこと

  • Unityのインストールフォルダーに残っているアンインストールの残留ファイルを削除してみる
(C:\Program Files\Unity\Hub\Editor\以下にあるアンインストールしたはずのUnityをエクスプローラから削除)
  • Unity Hubからのインストール時に追加コンポーネントを全部切ってインストール
  • Unity Hubのアプリフォルダー(\AppData\Roaming\UnityHub)にあるdownload***.jsonを削除してみる

Unity Hubのログを調べてみた

Unity HubがCPUやメモリを爆食いして強制終了するならきっと何かログが残っているだろうということでUnity Hubのログを調べてみます。
ログは、\AppData\Roaming\UnityHub\logsにあります。
わからなければコマンドプロンプトからこのコマンドで表示できます。
explorer %USERPROFILE%\AppData\Roaming\UnityHub\logs
次のようなログが見つかりました。(info-log.json内で)
{"moduleName":"UnityInstallerWindows","level":"warn","message":"[ 'error while installing the Editor! Trying to empty the folder! ',\n  'The operation timed out.' ]","timestamp":"2020-11-01T08:01:23.379Z"}
{"moduleName":"UnityInstallerWindows","level":"warn","message":"[ 'Failed to install editor and modules [object Object]' ]","timestamp":"2020-11-01T08:02:40.581Z"}
{"moduleName":"EditorManager","level":"warn","message":"[ 'There was an unhandled error while installing the editor:',\n  { error:\n     { code: 'MISSING_DESTINATION',\n       message: 'The install destination was invalid or missing.' } } ]","timestamp":"2020-11-01T08:02:40.582Z"}
{"moduleName":"CloudConfig","level":"info","message":"[ 'Failed to refresh data, fallback to default data. Reason: read ECONNRESET' ]","timestamp":"2020-11-01T08:11:00.526Z"}
error while instaling the Editor! Trying to empty the folder!と書いてあるのでエラーが起きていることは間違いなさそうです。しかしログのレベルはwarn=警告とありますので深刻なエラーではないのかもしれません。でもerror to installing...て書いてあるし...
調べてもこれに対するページはほとんどヒットせず...
少なくともここからわかるようにUnity Hubが応答しなくなるのは意図された挙動では無さそうです。

Windowsイベントビューアーのログ

強制終了しているのはWindowsなのでイベントビューアーも見てみました。
障害が発生しているアプリケーション名: Unity Hub.exe、バージョン: 2.4.2.0、タイム スタンプ: 0x5df70f50
障害が発生しているモジュール名: Unity Hub.exe、バージョン: 2.4.2.0、タイム スタンプ: 0x5df70f50
例外コード: 0xc000001d
障害オフセット: 0x000000000291b61c
障害が発生しているプロセス ID: 0x4b28
障害が発生しているアプリケーションの開始時刻: 0x01d6af7ebb8d9ca5
障害が発生しているアプリケーション パス: C:\Program Files\Unity Hub\Unity Hub.exe
障害が発生しているモジュール パス: C:\Program Files\Unity Hub\Unity Hub.exe
レポート ID: ***
障害が発生しているパッケージの完全な名前: 
障害が発生しているパッケージに関連するアプリケーション ID: 
その数秒後にはこのログも残っていました。
次のいずれかの理由によりファイル  にアクセスできません:  ネットワーク接続、このファイルの保存先ディスク、またはこのコンピューターにインストールされている記憶域 ドライバーに問題があります。または、ディスクが見つかりません。 このエラーによりプログラム Unity Hub は終了しました。

プログラム: Unity Hub
ファイル: 

エラー値は [追加データ] セクションに一覧表示されます。
ユーザー操作
1. このファイルをもう一度開きます。 この状況は、プログラムを再実行するときに修復される一時的な問題である可能性があります。
2. このファイルにまだアクセスできず、
	 ファイルがネットワーク上にある場合は、 ネットワーク管理者がネットワークに問題がないこと、およびサーバーにアクセスできることを検証する必要があります。
	- ファイルが、フロッピー ディスクや CD-ROM などのリムーバブル ディスクにある場合は、ディスクがコンピューターに完全に挿入されていることを確認します。
3. CHKDSK を実行してファイル システムをチェックおよび修復します。CHKDSK を実行するには、[スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックし、「CMD」と入力して、[OK] をクリックします。コマンド プロンプトで「CHKDSK /F」と入力してから、Enter キーを押します。
4. 問題が解決しない場合は、バックアップ コピーからファイルを復元します。
5. 同じディスク上の他のファイルが開くかどうかを確認します。開かない場合は、そのディスクが壊れている可能性があります。ハード ディスクの場合は、管理者またはコンピューター ハードウェア ベンダーに連絡して サポートを受けます。

追加データ
エラー値: 00000000
ディスクの種類: 0
これを見るところではもしかしたらWindowsやパソコン自体に問題があるのかもしれません。これについては今後追記することにします...

暫定的な解決策

何度やってもUnityインストールできなくて、私が本当にしたいのはゲーム開発だしこれではぜんぜん進まないので、しょうがないのでマニュアルでインストールします。
といっても、前述したとおり、コンポーネントをUnity EditorのBuild SettingsからインストールしたのではMacビルドツールがインストールできません。そこでHubがキャッシュしたファイルをそのまま利用します。
具体的には\AppData\Local\Temp以下にある、unityhub-****というディレクトリを利用します。(****の部分は時によって変わります。)
そこのディレクトリにはHubでのインストール時に指定したコンポーネントのインストーラーがダウンロードされている状態なはずです。
実際に私の場合はこれらのファイルが残っていました。



具体的にはファイル名から次のように判断できます。
ファイル名説明
ja.po日本語サポートのファイル
UnityDocumentation.zipUnityのドキュメント
UnitySetup***.exeUnity Editorのインストーラー
UnitySetup-***-for-Editor-***.exe各種コンポーネントのインストーラー
知識がないので言語サポートファイルやドキュメンテーションのインストール方法はわかりませんが、各種コンポーネントはこれらのコンポーネントのファイルを一つずつ実行すればインストールできます。

まとめ

結論としては、
「Unity Hubからのインストールで応答がなくなって、失敗の一言も表示されない現象が起きることがありますが、マニュアルで各種コンポーネントをインストールできる」ということになります
誰かHubから正常にインストールする方法を教えてください()

コメント