LuaLS / LuaLS/lua-language-server

Couldn't start client Lua from VSCode devcontainer

Ouverte
#2,423 1 commentaire 1 réaction 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
Lua
Étoiles
4.4k
Forks
442
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

### How are you using the lua-language-server?

Visual Studio Code Extension (sumneko.lua)

### Which OS are you using?

Linux

### What is the issue affecting?

Other

### Expected Behaviour

Lua language server starts correctly.

### Actual Behaviour

I see this message when opening a Lua file, and language linting is not available:

![image](https://github.com/LuaLS/lua-language-server/assets/1735060/d5677ce3-b2fa-4e47-9e8c-c85d54ec1f7e)

### Reproduction steps

1. Add a Dockerfile in .devcontainer folder, I'm using this:
```
FROM python:3.8-alpine as build

LABEL description="Dev container - test-sumneko"

ARG USERNAME=vscode
ARG USER_UID=1000
ARG USER_GID=$USER_UID

RUN addgroup -g $USER_GID $USERNAME && adduser -D -u $USER_UID -G $USERNAME $USERNAME
USER $USERNAME

CMD ["sh"]
```

3. Specify sumneko extension in devcontainer.json:
```
{
"customizations": {
"vscode": {
"extensions": [
"sumneko.lua"
]
}
}
}
```
4. Do `Rebuild and Reopen in Container` from command palette
5. Open any `.lua` file in the workspace

### Additional Notes

`lua-language-server` seems there but it gives a strange `not found` error when launched:

```shell
/workspaces/test-sumneko $ /home/vscode/.vscode-server/extensions/sumneko.lua-2.5.3/server/bin/Linux/lua-language-server
/bin/ash: /home/vscode/.vscode-server/extensions/sumneko.lua-2.5.3/server/bin/Linux/lua-language-server: not found
/workspaces/test-sumneko $ ls -la /home/vscode/.vscode-server/extensions/sumneko.lua-2.5.3/server/bin/Linux/lua-language-server
-rwxrwxrwx 1 vscode vscode 2068664 Nov 21 11:24 /home/vscode/.vscode-server/extensions/sumneko.lua-2.5.3/server/bin/Linux/lua-language-server
```

As current workaround I'm adding this in Dockerfile:

```
RUN apk add --update --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing/ lua-language-server
```

and this in `devcontainer.json`:

```
"postCreateCommand": "sleep 10 && rm -vf /home/vscode/.vscode-server/extensions/sumneko.lua-*/server/bin/Linux/lua-language-server && ln -s /usr/bin/lua-language-server /home/vscode/.vscode-server/extensions/sumneko.lua-*/server/bin/Linux/",
```

Version used: `sumneko.lua-2.5.3`

### UPDATE

Looking around, seems this is the root cause:

> this can happen if binary is linked with a libc that doesn't exist on your device.

In fact:
```
/workspaces/test-sumneko $ ldd
musl libc (x86_64)
Version 1.2.4
Dynamic Program Loader
Usage: /lib/ld-musl-x86_64.so.1 [options] [--] pathname
/workspaces/test-sumneko $ ldd /home/vscode/.vscode-server/extensions/sumneko.lua-2.5.3/server/bin/Linux/lua-language-server
/lib64/ld-linux-x86-64.so.2 (0x7fd02de67000)
libm.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7fd02de67000)
libdl.so.2 => /lib64/ld-linux-x86-64.so.2 (0x7fd02de67000)
libpthread.so.0 => /lib64/ld-linux-x86-64.so.2 (0x7fd02de67000)
libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7fd02de67000)
Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /home/vscode/.vscode-server/extensions/sumneko.lua-2.5.3/server/bin/Linux/lua-language-server)
Error relocating /home/vscode/.vscode-server/extensions/sumneko.lua-2.5.3/server/bin/Linux/lua-language-server: __longjmp_chk: symbol not found
Error relocating /home/vscode/.vscode-server/extensions/sumneko.lua-2.5.3/server/bin/Linux/lua-language-server: __fprintf_chk: symbol not found
Error relocating /home/vscode/.vscode-server/extensions/sumneko.lua-2.5.3/server/bin/Linux/lua-language-server: __printf_chk: symbol not found
Error relocating /home/vscode/.vscode-server/extensions/sumneko.lua-2.5.3/server/bin/Linux/lua-language-server: __strftime_l: symbol not found
Error relocating /home/vscode/.vscode-server/extensions/sumneko.lua-2.5.3/server/bin/Linux/lua-language-server: __memcpy_chk: symbol not found
Error relocating /home/vscode/.vscode-server/extensions/sumneko.lua-2.5.3/server/bin/Linux/lua-language-server: __sprintf_chk: symbol not found
Error relocating /home/vscode/.vscode-server/extensions/sumneko.lua-2.5.3/server/bin/Linux/lua-language-server: __snprintf_chk: symbol not found
Error relocating /home/vscode/.vscode-server/extensions/sumneko.lua-2.5.3/server/bin/Linux/lua-language-server: __fdelt_chk: symbol not found
```

### Log File

No log file available.

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Reproduisez l’échec avec le Dockerfile Alpine et devcontainer.json fournis, puis examinez le binaire de l’extension situé dans server/bin/Linux/lua-language-server ainsi que ses dépendances libc. Comparez l’artefact Linux avec l’environnement musl ; le travail est considéré comme terminé lorsque le Lua language server démarre dans ce devcontainer sans l’installation de paquets ni le contournement par lien symbolique.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
docker, linux, lua, vscode
Domaine
devtools, operating-systems
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
Calme
Clarté
Plutôt claire
Accessibilité débutants
48/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.