ある日、VSCodeでWSLに接続して開発をしようとしたら、下記のダイアログと共に、下記のメッセージが出ました
ダイアログ
「VS Code Server for WSL closed unexpectedly」
メッセージ
[2024-04-20 12:58:09.614] WSL version: 4.19.128-microsoft-standard Ubuntu-18.04
[2024-04-20 12:58:09.614] WSL-shell-PID: 636
[2024-04-20 12:58:09.614] Node executable: /root/.vscode-server/bin/e170252f762678dec6ca2cc69aba1570769a5d39/node
[2024-04-20 12:58:09.614] Starting server: /root/.vscode-server/bin/e170252f762678dec6ca2cc69aba1570769a5d39/bin/code-server --host=127.0.0.1 --port=0 --connection-token=2565175669-307080044-3745254317-1690967471 --use-host-proxy --without-browser-env-var --disable-websocket-compression --accept-server-license-terms --telemetry-level=all
[2024-04-20 12:58:09.614] /root/.vscode-server/bin/e170252f762678dec6ca2cc69aba1570769a5d39/node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /root/.vscode-server/bin/e170252f762678dec6ca2cc69aba1570769a5d39/node)
[2024-04-20 12:58:09.614] スタートアップの問題のヘルプについては、https://code.visualstudio.com/docs/remote/troubleshooting#_wsl-tips にアクセスしてください
[2024-04-20 12:58:09.615] NodeExecServer run: C:\WINDOWS\System32\wsl.exe -d Ubuntu-18.04 -e kill 636
[2024-04-20 13:01:42.770] Download in background is enabled
/root/.vscode-server/bin/e170252f762678dec6ca2cc69aba1570769a5d39/node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /root/.vscode-server/bin/e170252f762678dec6ca2cc69aba1570769a5d39/node)
なんだこれは、となったので解決方法を書きます
結論
WSLで利用していたディストリビューションがサポート対象外になった
利用していたのがUbuntu18.04だったので、Ubuntu22.04をインストールして変更した
過程
環境
VSCode 1.88.1
WSL Ubuntu-18.04
エラーが起きた原因の心当たりは、直近で設定を変更したりしていないので特になく、可能性があるとすればWindowsUpdateかなと思っていました
しかし、そもそもNodeのインストールをWSLのUbuntuにはしていなかったので、なんでNodeを起動しようとしているのかなーっと思っていましたが、同じようなエラーのIssueを発見しました
https://github.com/microsoft/vscode-remote-release/issues/9796
追ってみると、どうやら古いシステムのサポートを切るという話をしているようでした
https://github.com/microsoft/vscode/issues/203375
つまり、Ubuntuが18系であることが問題そうだったので、WSLのディストリビューションをUbuntu22系に変更しました
- WindowsにUbuntu22.04をインストール
- ディストリビューションの変更( https://qiita.com/honda28/items/376c878a7706cd531801 )
- VSCodeからUbuntu22.04に接続
感想
原因はVSCodeのアップデートで、参照しているインスタンスがサポート対象外になったよね、という話でした。今回はGithubのIssueを運よく見つけられたおかげで解決できましたが、このIssueを見つけていなければ永遠にさまよっていた気がします。
コードの実行はすべてDockerで行って、コード管理もGithubで行っていたおかげで、18から22の移行もすぐ済みそうです。
参考資料