ここまでのあらすじ:なにもしてないのに VS Code がこわれた。
先にまとめ
- VS Code で WSL のプロジェクトを開こうとするとエラー
- “VS Code Server for WSL closed unexpectedly”
- WSL 側 VS Code Server バイナリーを削除で解決
rm -rf ~/.vscode-server/bin/
- 自動的に再インストールされる
エラー
普段通りに VS Code を起動して履歴 Ctrl+R
から WSL に置いてあるプロジェクトを開こうとしたところ、”VS Code Server for WSL closed unexpectedly” とエラーが表示されファイルを開くなどができなくなりました。(最後に開いてたのは表示された。Windows 側にキャッシュを置いてたのかな?)
エラーダイアログ。
同時に Terminal ペインに表示されるログ。
[2021-09-25 06:54:35.262] Resolving wsl+ubuntu-20.04, resolveAttempt: 1
[2021-09-25 06:54:35.331] Starting VS Code Server inside WSL (Ubuntu-20.04)
[2021-09-25 06:54:35.331] Extension version: 0.58.2, Windows build: 19043. Multi distro support: available. WSL path support: enabled
[2021-09-25 06:54:35.331] No shell environment set or found for current distro.
[2021-09-25 06:54:35.489] Probing if server is already installed: C:\WINDOWS\System32\wsl.exe -d Ubuntu-20.04 -e sh -c "[ -d ~/.vscode-server/bin/7f6ab5485bbc008386c4386d08766667e155244e ] && printf found || ([ -f /etc/alpine-release ] && printf alpine-; uname -m)"
[2021-09-25 06:54:35.617] Probing result: found
[2021-09-25 06:54:35.617] Server install found in WSL
[2021-09-25 06:54:35.618] Launching C:\WINDOWS\System32\wsl.exe -d Ubuntu-20.04 sh -c '"$VSCODE_WSL_EXT_LOCATION/scripts/wslServer.sh" 7f6ab5485bbc008386c4386d08766667e155244e stable .vscode-server 0 '}
[2021-09-25 06:54:35.750] Setting up server environment: Looking for /home/ginpei/.vscode-server/server-env-setup. Not found.
[2021-09-25 06:54:35.750] WSL version: 4.19.104-microsoft-standard Ubuntu-20.04
[2021-09-25 06:54:35.750] WSL2-shell-PID: 31940
[2021-09-25 06:54:35.750] Starting server: /home/ginpei/.vscode-server/bin/7f6ab5485bbc008386c4386d08766667e155244e/server.sh --port=0 --use-host-proxy --without-browser-env-var --disable-websocket-compression --print-ip-address --enable-remote-auto-shutdown
[2021-09-25 06:54:35.752] VS Code Server for WSL closed unexpectedly.
[2021-09-25 06:54:35.752] For help with startup problems, go to
[2021-09-25 06:54:35.752] https://code.visualstudio.com/docs/remote/troubleshooting#_wsl-tips
[2021-09-25 06:54:35.759] C:\WINDOWS\System32\wsl.exe -d Ubuntu-20.04 -e kill 31940
[2021-09-25 06:54:36.280] WSL Daemon exited with code 0
Unexpected だけあって異常終了に係る情報が少ない。
何かがおかしい?のを丸ごと削除
WSL 側ホームにある .vscode-server/
削除で直ったという報告を見かけて試したところ、成功。試してみたところどうやら全部じゃなくてその中の bin/
だけ削除で解決でした。(bin/
の中のどれだったのかは不明。) bin/
の他に data/
と extensions/
があったけどそっちは残しておいて大丈夫。
$ rm -rf ~/.vscode-server/bin/
解決。
あとは普通に VS Code を起動すると普通に動きました。たぶん削除のとき VS Code は閉じておいた方が(バイナリーに触れてない状態にした方が)良い気がする、知らんけど。
削除した bin/
の内容が自動的に再構築されるけど VS Code の Remote が接続時に自動的にインストールしてくれるんだよね、これ。SSH 接続のときもなんか初回にサーバーインストール中みたいなポップアップが右下に出てたような気がする。
bin/
の状態
何がどうしてこうなったのかは皆目見当がつかないのですが、なんか bin/
以下のファイルが全てファイルサイズ 0 の空ファイルになっていました。ええなんで。
$ ls -l ~/.vscode-server/bin/7f6ab5485bbc008386c4386d08766667e155244e/ total 16 -rw-r--r-- 1 ginpei ginpei 0 Sep 25 06:54 LICENSE drwxr-xr-x 3 ginpei ginpei 4096 Sep 25 06:54 bin drwxr-xr-x 32 ginpei ginpei 4096 Sep 25 06:54 extensions -rwxr-xr-x 1 ginpei ginpei 0 Sep 25 06:54 node drwxr-xr-x 78 ginpei ginpei 4096 Sep 25 06:54 node_modules drwxr-xr-x 3 ginpei ginpei 4096 Sep 25 06:54 out -rw-r--r-- 1 ginpei ginpei 0 Sep 25 06:54 package.json -rw-r--r-- 1 ginpei ginpei 0 Sep 25 06:54 product.json -rwxr-xr-x 1 ginpei ginpei 0 Sep 25 06:54 server.sh
ls -R
で見ても全部 0 みたい。
根本的な原因は不明だけど直接的な原因は見えました。
おすすめターミナル
ところで、何かにつけて言ってるけど Microsoft 謹製の Windows Terminal が使い勝手良くておすすめです。
おしまい
割とレアなエラーっぽくて Twitter でも言及が少ない。
なんで壊れたんだろうね。