VSCode Extension: Unable to start the CircleCI Language Server (got null)

Similar to this.

On some installation I’m getting the “Unable to start the CircleCI Language Server” error message.

In the CircleCI logs output I can see:

Failed to start LSP server. Attempt 1: Error: Binary version mismatch: expected 0.9.2, got null

(It stops after 5 attemps)

CircleCI extension version:

v2.3.0

VSCode version:

Version: 1.85.2
Commit: 8b3775030ed1a69b13e4f4c628c612102e30a681
Date: 2024-01-18T06:40:19.222Z
Electron: 25.9.7
ElectronBuildId: 26354273
Chromium: 114.0.5735.289
Node.js: 18.15.0
V8: 11.4.183.29-electron.0
OS: Linux x64 6.5.0-14-generic

In the Console of Developer Tools I can see:

ERR [Extension Host] container command failed: circleci.languageServer.updateServer Error: Binary version mismatch: expected 0.9.2, got null
at x.downloadRelease (/home/user/.vscode-server/extensions/circleci.circleci-2.3.0/dist/webpack:/circleci/src/lsp/binary-resolver.ts:284:15)
at process.version (node:internal/process/task_queues:95:5)
at t.LSP.async [as spawnLSPServer] (/home/user/.vscode-server/extensions/circleci.circleci-2.3.0/dist/webpack:/circleci/src/lsp/server.ts:166:49)
at e.numOfAttempts [as request] (/home/user/.vscode-server/extensions/circleci.circleci-2.3.0/dist/webpack:/circleci/src/lsp/server.ts:64:35)

Hi rubensa,
Thanks for your answer, can you run the following commands
ls -l ~/.local/share/CircleCI-language-server
md5 ~/.local/share/CircleCI-language-server/circleci-yaml-language-server.tmp
md5 ~/.local/share/CircleCI-language-server/circleci-yaml-language-server
~/.local/share/CircleCI-language-server/circleci-yaml-language-server --version
~/.local/share/CircleCI-language-server/circleci-yaml-language-server.tmp --version
and share with us the output of these commands

$ ls -l ~/.local/share/CircleCI-language-server
total 17100
-rwxr-xr-x 1 user group 17421792 Jan 23 18:02 circleci-yaml-language-server.tmp
-rw-r–r-- 1 user group 78608 Jan 23 18:02 schema.json.tmp

$ md5sum ~/.local/share/CircleCI-language-server/circleci-yaml-language-server.tmp
722a45ab447a26bd2018fe0b7009b940 /home/user/.local/share/CircleCI-language-server/circleci-yaml-language-server.tmp

$ ~/.local/share/CircleCI-language-server/circleci-yaml-language-server.tmp --version
/home/user/.local/share/CircleCI-language-server/circleci-yaml-language-server.tmp: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.32' not found (required by /home/user/.local/share/CircleCI-language-server/circleci-yaml-language-server.tmp) /home/user/.local/share/CircleCI-language-server/circleci-yaml-language-server.tmp: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.34’ not found (required by /home/user/.local/share/CircleCI-language-server/circleci-yaml-language-server.tmp)

As you can see the is no ~/.local/share/CircleCI-language-server/circleci-yaml-language-server, so two commands can’t be run.

With this info, to me, looks like a libc version problem…

apt policy libc6

libc6:
Installed: 2.31-0ubuntu9.9
Candidate: 2.31-0ubuntu9.14
Version table:
2.31-0ubuntu9.14 500
500 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages
*** 2.31-0ubuntu9.9 100
100 /var/lib/dpkg/status
2.31-0ubuntu9 500
500 http://archive.ubuntu.com/ubuntu focal/main amd64 Packages

Looks like I have version 2.31 and this extension requires 2.34.

As a side note: All this is running in a Docker container based on Ubuntu 20.04 (and I can’t update it).

With Ubuntu 22.04 I have no problems but the libc6 version installed is 2.35.

apt policy libc6

libc6:
Installed: 2.35-0ubuntu3.3
Candidate: 2.35-0ubuntu3.3
Version table:
*** 2.35-0ubuntu3.3 100
100 /var/lib/dpkg/status

Should it be possible to have a circleci-yaml-language-server version compiled with older libc version (2.31 as most) so Ubuntu 20.04 (still not in end of live) and other distributions can use the extension?

@abdelDriowya Any news about this? Should it be possible to support multiple libc6 versions?

We’re working on a fix.

the fix will be included in the next release

Great!! Thanks for the info @abdelDriowya