millet icon indicating copy to clipboard operation
millet copied to clipboard

Millet VSCode extension broken for Ubuntu 22 (probably because outdated glibc)

Open wade-cheng opened this issue 9 months ago • 5 comments

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:

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.

wade-cheng avatar Mar 19 '25 22:03 wade-cheng

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.

azdavis avatar Apr 02 '25 03:04 azdavis

looked into it more; this looks a bit troublesome but probably tractable: blog post

azdavis avatar Apr 08 '25 21:04 azdavis

I have the same issue on Ubuntu 22.04 trying to use the release binary

jxu avatar Jun 12 '25 00:06 jxu

fwiw building from source was incredibly painless for me. +1 to that workaround

wade-cheng avatar Jun 19 '25 07:06 wade-cheng

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

jxu avatar Jun 19 '25 11:06 jxu