Millet VSCode extension broken for Ubuntu 22 (probably because outdated glibc)
Environment
- Millet version: 0.14.9
- Editor version: vscode
Version: 1.98.2
Commit: ddc367ed5c8936efe395cffeec279b04ffd7db78
Date: 2025-03-12T13:32:45.399Z
Electron: 34.2.0
ElectronBuildId: 11161602
Chromium: 132.0.6834.196
Node.js: 20.18.2
V8: 13.2.152.36-electron.0
OS: Linux x64 6.8.0-52-generic snap
- OS version:
Ubuntu 22.04.5 LTS
64-bit
Gnome 42.9
X11
Attestation
To avoid filing duplicate issues, I checked:
- [x] The known issues section of the manual
- [X] The existing issue tracker
Notes
After reading the error log, this problem is almost definitely because I run Ubuntu 22 with glibc version 2.35, and for some reason Millet requires glibc 2.39 (which is on Ubuntu 24). Is there any way to fix this on the extension end? It's a bit unfortunate for the LSP shipped with the extension to depend on a version of glibc.
If not or it takes too much work to be worth the effort, no worries. (Can be worked around by manually compiling the extension).
Steps to reproduce
Enable Millet.
Expected behavior
Millet works.
Actual behavior
Millet doesn't initialize, with error log
[Error - 2:20:03 PM] Client millet: connection to server is erroring.
write EPIPE
Shutting down server.
[Error - 2:20:03 PM] Client millet: connection to server is erroring.
write EPIPE
[Error - 2:20:03 PM] Stopping server failed
Error: Client is not running and can't be stopped. It's current state is: starting
at Zl.shutdown (/home/saffron/.vscode/extensions/azdavis.millet-0.14.8-linux-x64/out/main.js:41:8468)
at Zl.stop (/home/saffron/.vscode/extensions/azdavis.millet-0.14.8-linux-x64/out/main.js:41:8047)
at Zl.stop (/home/saffron/.vscode/extensions/azdavis.millet-0.14.8-linux-x64/out/main.js:44:30480)
at Zl.handleConnectionError (/home/saffron/.vscode/extensions/azdavis.millet-0.14.8-linux-x64/out/main.js:43:63)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
[Error - 2:20:03 PM] Server initialization failed.
Message: write EPIPE
Code: -32099
[Error - 2:20:03 PM] millet client: couldn't create connection to server.
Message: write EPIPE
Code: -32099
[Info - 2:20:03 PM] Connection to server got closed. Server will restart.
true
/home/saffron/.vscode/extensions/azdavis.millet-0.14.8-linux-x64/out/millet-ls: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.39' not found (required by /home/saffron/.vscode/extensions/azdavis.millet-0.14.8-linux-x64/out/millet-ls)
[Error - 2:20:03 PM] Server process exited with code 1.
[Error - 2:20:03 PM] Server process exited with code 1.
[Error - 2:20:03 PM] Client millet: connection to server is erroring.
Cannot call write after a stream was destroyed
[Error - 2:20:03 PM] Server initialization failed.
Message: Cannot call write after a stream was destroyed
Code: -32099
[Error - 2:20:03 PM] millet client: couldn't create connection to server.
Message: Cannot call write after a stream was destroyed
Code: -32099
[Error - 2:20:03 PM] Restarting server failed
Message: Cannot call write after a stream was destroyed
Code: -32099
[Info - 2:20:03 PM] Connection to server got closed. Server will restart.
true
/home/saffron/.vscode/extensions/azdavis.millet-0.14.8-linux-x64/out/millet-ls: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.39' not found (required by /home/saffron/.vscode/extensions/azdavis.millet-0.14.8-linux-x64/out/millet-ls)
[Error - 2:20:03 PM] Client millet: connection to server is erroring.
write EPIPE
Shutting down server.
[Error - 2:20:03 PM] Client millet: connection to server is erroring.
write EPIPE
[Error - 2:20:03 PM] Stopping server failed
Error: Client is not running and can't be stopped. It's current state is: starting
at Zl.shutdown (/home/saffron/.vscode/extensions/azdavis.millet-0.14.8-linux-x64/out/main.js:41:8468)
at Zl.stop (/home/saffron/.vscode/extensions/azdavis.millet-0.14.8-linux-x64/out/main.js:41:8047)
at Zl.stop (/home/saffron/.vscode/extensions/azdavis.millet-0.14.8-linux-x64/out/main.js:44:30480)
at Zl.handleConnectionError (/home/saffron/.vscode/extensions/azdavis.millet-0.14.8-linux-x64/out/main.js:43:63)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
[Error - 2:20:03 PM] Server initialization failed.
Message: write EPIPE
Code: -32099
[Error - 2:20:03 PM] millet client: couldn't create connection to server.
Message: write EPIPE
Code: -32099
[Error - 2:20:03 PM] Restarting server failed
Message: write EPIPE
Code: -32099
[Info - 2:20:03 PM] Connection to server got closed. Server will restart.
true
/home/saffron/.vscode/extensions/azdavis.millet-0.14.8-linux-x64/out/millet-ls: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.39' not found (required by /home/saffron/.vscode/extensions/azdavis.millet-0.14.8-linux-x64/out/millet-ls)
[Error - 2:20:03 PM] Server process exited with code 1.
[Error - 2:20:03 PM] Server process exited with code 1.
[Error - 2:20:03 PM] Client millet: connection to server is erroring.
Cannot call write after a stream was destroyed
[Error - 2:20:03 PM] Server initialization failed.
Message: Cannot call write after a stream was destroyed
Code: -32099
[Error - 2:20:03 PM] millet client: couldn't create connection to server.
Message: Cannot call write after a stream was destroyed
Code: -32099
[Error - 2:20:03 PM] Restarting server failed
Message: Cannot call write after a stream was destroyed
Code: -32099
[Info - 2:20:03 PM] Connection to server got closed. Server will restart.
true
/home/saffron/.vscode/extensions/azdavis.millet-0.14.8-linux-x64/out/millet-ls: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.39' not found (required by /home/saffron/.vscode/extensions/azdavis.millet-0.14.8-linux-x64/out/millet-ls)
[Error - 2:20:03 PM] Client millet: connection to server is erroring.
write EPIPE
Shutting down server.
[Error - 2:20:03 PM] Client millet: connection to server is erroring.
write EPIPE
[Error - 2:20:03 PM] Stopping server failed
Error: Client is not running and can't be stopped. It's current state is: starting
at Zl.shutdown (/home/saffron/.vscode/extensions/azdavis.millet-0.14.8-linux-x64/out/main.js:41:8468)
at Zl.stop (/home/saffron/.vscode/extensions/azdavis.millet-0.14.8-linux-x64/out/main.js:41:8047)
at Zl.stop (/home/saffron/.vscode/extensions/azdavis.millet-0.14.8-linux-x64/out/main.js:44:30480)
at Zl.handleConnectionError (/home/saffron/.vscode/extensions/azdavis.millet-0.14.8-linux-x64/out/main.js:43:63)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
[Error - 2:20:03 PM] Server initialization failed.
Message: write EPIPE
Code: -32099
[Error - 2:20:03 PM] millet client: couldn't create connection to server.
Message: write EPIPE
Code: -32099
[Error - 2:20:03 PM] Restarting server failed
Message: write EPIPE
Code: -32099
[Error - 2:20:03 PM] The millet server crashed 5 times in the last 3 minutes. The server will not be restarted. See the output for more information.
/home/saffron/.vscode/extensions/azdavis.millet-0.14.8-linux-x64/out/millet-ls: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.39' not found (required by /home/saffron/.vscode/extensions/azdavis.millet-0.14.8-linux-x64/out/millet-ls)
[Error - 2:20:03 PM] Server process exited with code 1.
this is probably a function of the fact that the ci runs on ubuntu latest, which is now 24. i don’t have the desire to provide pre built binaries for anything except the latest stable versions of stuff generally. i’d advise building from source on your machine so it picks up the local libc. you can then point the vs code extension at your build via the vs code extension settings.
looked into it more; this looks a bit troublesome but probably tractable: blog post
I have the same issue on Ubuntu 22.04 trying to use the release binary
fwiw building from source was incredibly painless for me. +1 to that workaround
fwiw building from source was incredibly painless for me. +1 to that workaround
I built it from source and it doesn't work in neovim. Looks like it was designed primarily for VS Code which is understandable