williamboman / mason.nvim

Portable package manager for Neovim that runs everywhere Neovim runs. Easily install and manage LSP servers, DAP servers, linters, and formatters.
Apache License 2.0
7.71k stars 272 forks source link

Mason does not display installed packages after restarting #1577

Open svenXY opened 9 months ago

svenXY commented 9 months ago

I've searched open issues for similar requests

I've recently downloaded the latest plugin version of mason.nvim

Problem description

Installing packages works OK and after installing any, they are correctly displayed in mason as installed, but after a restart, mason does not seem to find them anymore - it just says "Installed (0)".

I first realized this with my default neovim version as installed by archlinux (0.9.4-2) and then installed the neovim-git version (v0.10.0-dev-1812+g6d698c86d0), but to no avail. The same mason config worked fine on my mac.

Then I tried with NvChad with a fresh install and it also installed LSP Servers fine, but after restarting, did not display them. Then running :MasonInstallAll (re-)installed them, but after a restart, they were not displayed.

Funnily enough, they are actually installed. The files are where they are supposed to be and :LspInfo shows that they are attached. so it seems just to be a matter of mason not finding/displaying installed packages.

Expected behavior

Installed packages either within mason or by having them provided in a list in a config file should be displayed when opening mason after a restart of nvim

Affected packages

All

Mason output

directly after having installed a package:


                                                     mason.nvim  (search mode, press <Esc> to clear)
                                                                 press g? for help
                                                     https://github.com/williamboman/mason.nvim
   (1) All   (2) LSP   (3) DAP   (4) Linter   (5) Formatter  

  Language Filter: press <C-f> to apply filter

  Installed
    󰄳  pyright (keywords: python)

  Available
     󰚌 actionlint (keywords: yaml)
     󰚌 ada-language-server (keywords: ada)
     󰚌 alex (keywords: markdown)
     󰚌 angular-language-server (keywords: angular)
     󰚌 ansible-language-server (keywords: ansible)

then after a restart


                                                                   mason.nvim 
                                                                 press g? for help
                                                     https://github.com/williamboman/mason.nvim
   (1) All   (2) LSP   (3) DAP   (4) Linter   (5) Formatter  

  Language Filter: press <C-f> to apply filter

  Installed
                                                                    No packages.

  Available
     󰚌 actionlint
     󰚌 ada-language-server
     󰚌 alex
     󰚌 angular-language-server
     󰚌 ansible-language-server
     󰚌 ansible-lint
     󰚌 antlers-language-server
     󰚌 apex-language-server
[...]

Installation log

[DEBUG Di 12 Dez 2023 10:41:39 CET] ...al/share/NvChad/lazy/mason.nvim/lua/mason-core/fetch.lua:37: Fetching URL "https://api.mason-registry.dev/api/github/mason-org/mason-registry/releases/latest"
[DEBUG Di 12 Dez 2023 10:41:39 CET] .../share/NvChad/lazy/mason.nvim/lua/mason-core/process.lua:116: Spawning cmd="curl", spawn_opts={
  args = { "-H", "Accept: application/vnd.mason-registry.v1+json; q=1.0, application/json; q=0.8", "-H", "User-Agent: mason.nvim v1.8.3 (+https://github.com/williamboman/mason.nvim)", "-fsSL", "-X", "GET", "--connect-timeout", 30, "https://api.mason-registry.dev/api/github/mason-org/mason-registry/releases/latest" }
}
[DEBUG Di 12 Dez 2023 10:41:39 CET] .../share/NvChad/lazy/mason.nvim/lua/mason-core/process.lua:162: Spawned with pid 26753
[DEBUG Di 12 Dez 2023 10:41:39 CET] .../share/NvChad/lazy/mason.nvim/lua/mason-core/process.lua:148: Job pid=26753 exited with exit_code=0, signal=0
[DEBUG Di 12 Dez 2023 10:41:39 CET] ...al/share/NvChad/lazy/mason.nvim/lua/mason-core/fetch.lua:37: Fetching URL "https://github.com/mason-org/mason-registry/releases/download/2023-12-12-idle-steven/registry.json.zip"
[DEBUG Di 12 Dez 2023 10:41:39 CET] .../share/NvChad/lazy/mason.nvim/lua/mason-core/process.lua:116: Spawning cmd="curl", spawn_opts={
  args = { "-H", "User-Agent: mason.nvim v1.8.3 (+https://github.com/williamboman/mason.nvim)", "-fsSL", "-X", "GET", "-o", "/home/svh/.local/share/NvChad/mason/registries/github/mason-org/mason-registry/registry.json.zip", "--connect-timeout", 30, "https://github.com/mason-org/mason-registry/releases/download/2023-12-12-idle-steven/registry.json.zip" }
}
[DEBUG Di 12 Dez 2023 10:41:39 CET] .../share/NvChad/lazy/mason.nvim/lua/mason-core/process.lua:162: Spawned with pid 26755
[DEBUG Di 12 Dez 2023 10:41:39 CET] .../share/NvChad/lazy/mason.nvim/lua/mason-core/process.lua:148: Job pid=26755 exited with exit_code=0, signal=0
[DEBUG Di 12 Dez 2023 10:41:39 CET] ...local/share/NvChad/lazy/mason.nvim/lua/mason-core/fs.lua:59: fs: unlink /home/svh/.local/share/NvChad/mason/registries/github/mason-org/mason-registry/registry.json.zip
[DEBUG Di 12 Dez 2023 10:41:39 CET] ...al/share/NvChad/lazy/mason.nvim/lua/mason-core/fetch.lua:37: Fetching URL "https://github.com/mason-org/mason-registry/releases/download/2023-12-12-idle-steven/checksums.txt"
[DEBUG Di 12 Dez 2023 10:41:39 CET] .../share/NvChad/lazy/mason.nvim/lua/mason-core/process.lua:116: Spawning cmd="curl", spawn_opts={
  args = { "-H", "User-Agent: mason.nvim v1.8.3 (+https://github.com/williamboman/mason.nvim)", "-fsSL", "-X", "GET", "--connect-timeout", 30, "https://github.com/mason-org/mason-registry/releases/download/2023-12-12-idle-steven/checksums.txt" }
}
[DEBUG Di 12 Dez 2023 10:41:39 CET] .../share/NvChad/lazy/mason.nvim/lua/mason-core/process.lua:162: Spawned with pid 26758
[DEBUG Di 12 Dez 2023 10:41:40 CET] .../share/NvChad/lazy/mason.nvim/lua/mason-core/process.lua:148: Job pid=26758 exited with exit_code=0, signal=0
[INFO  Di 12 Dez 2023 10:41:45 CET] ...NvChad/lazy/mason.nvim/lua/mason-core/installer/init.lua:184: Executing installer for Package(name=ansible-lint) {}
[DEBUG Di 12 Dez 2023 10:41:45 CET] ...NvChad/lazy/mason.nvim/lua/mason-core/installer/init.lua:58: Attempting to lock package Package(name=ansible-lint)
[DEBUG Di 12 Dez 2023 10:41:45 CET] ...NvChad/lazy/mason.nvim/lua/mason-core/installer/init.lua:70: Wrote lockfile Package(name=ansible-lint)
[DEBUG Di 12 Dez 2023 10:41:45 CET] ...local/share/NvChad/lazy/mason.nvim/lua/mason-core/fs.lua:71: fs: mkdirp /home/svh/.local/share/NvChad/mason/staging/ansible-lint
[DEBUG Di 12 Dez 2023 10:41:45 CET] ...zy/mason.nvim/lua/mason-core/installer/registry/init.lua:148: Compiling installer. ansible-lint {}
[DEBUG Di 12 Dez 2023 10:41:45 CET] ...zy/mason.nvim/lua/mason-core/installer/managers/pypi.lua:70: pypi: init
[DEBUG Di 12 Dez 2023 10:41:45 CET] ...had/lazy/mason.nvim/lua/mason-core/installer/context.lua:229: Promoting cwd "/home/svh/.local/share/NvChad/mason/staging/ansible-lint" to "/home/svh/.local/share/NvChad/mason/packages/ansible-lint"
[DEBUG Di 12 Dez 2023 10:41:45 CET] ...Chad/lazy/mason.nvim/lua/mason-core/installer/linker.lua:42: Unlinking Package(name=ansible-lint)
[DEBUG Di 12 Dez 2023 10:41:45 CET] ...local/share/NvChad/lazy/mason.nvim/lua/mason-core/fs.lua:59: fs: unlink /home/svh/.local/share/NvChad/mason/bin/ansible-lint
[DEBUG Di 12 Dez 2023 10:41:45 CET] ...local/share/NvChad/lazy/mason.nvim/lua/mason-core/fs.lua:47: fs: rmrf /home/svh/.local/share/NvChad/mason/packages/ansible-lint
[DEBUG Di 12 Dez 2023 10:41:45 CET] ...local/share/NvChad/lazy/mason.nvim/lua/mason-core/fs.lua:65: fs: mkdir /home/svh/.local/share/NvChad/mason/packages/ansible-lint
[DEBUG Di 12 Dez 2023 10:41:45 CET] ...local/share/NvChad/lazy/mason.nvim/lua/mason-core/fs.lua:84: fs: rename /home/svh/.local/share/NvChad/mason/staging/ansible-lint /home/svh/.local/share/NvChad/mason/packages/ansible-lint
[DEBUG Di 12 Dez 2023 10:41:45 CET] .../share/NvChad/lazy/mason.nvim/lua/mason-core/process.lua:116: Spawning cmd="python3", spawn_opts={
  args = { "-m", "venv", "venv" },
  cwd = "/home/svh/.local/share/NvChad/mason/packages/ansible-lint"
}
[DEBUG Di 12 Dez 2023 10:41:45 CET] .../share/NvChad/lazy/mason.nvim/lua/mason-core/process.lua:162: Spawned with pid 26768
[DEBUG Di 12 Dez 2023 10:41:48 CET] .../share/NvChad/lazy/mason.nvim/lua/mason-core/process.lua:148: Job pid=26768 exited with exit_code=0, signal=0
[DEBUG Di 12 Dez 2023 10:41:48 CET] ...zy/mason.nvim/lua/mason-core/installer/managers/pypi.lua:102: pypi: install "ansible-lint" "6.22.1"
[DEBUG Di 12 Dez 2023 10:41:48 CET] .../share/NvChad/lazy/mason.nvim/lua/mason-core/process.lua:116: Spawning cmd="/home/svh/.local/share/NvChad/mason/packages/ansible-lint/venv/bin/python", spawn_opts={
  args = { "-m", "pip", "--disable-pip-version-check", "install", "-U", "ansible-lint==6.22.1" },
  cwd = "/home/svh/.local/share/NvChad/mason/packages/ansible-lint"
}
[DEBUG Di 12 Dez 2023 10:41:48 CET] .../share/NvChad/lazy/mason.nvim/lua/mason-core/process.lua:162: Spawned with pid 26784
[DEBUG Di 12 Dez 2023 10:41:57 CET] .../share/NvChad/lazy/mason.nvim/lua/mason-core/process.lua:148: Job pid=26784 exited with exit_code=0, signal=0
[DEBUG Di 12 Dez 2023 10:41:57 CET] ...zy/mason.nvim/lua/mason-core/installer/registry/link.lua:139: Registering bin links Package(name=ansible-lint) {
  ["ansible-lint"] = "pypi:ansible-lint"
}
[DEBUG Di 12 Dez 2023 10:41:57 CET] ...zy/mason.nvim/lua/mason-core/installer/registry/link.lua:166: Expanded bin link "ansible-lint" -> "venv/bin/ansible-lint"
[DEBUG Di 12 Dez 2023 10:41:57 CET] ...had/lazy/mason.nvim/lua/mason-core/installer/context.lua:226: cwd "/home/svh/.local/share/NvChad/mason/packages/ansible-lint" is already promoted (at "/home/svh/.local/share/NvChad/mason/packages/ansible-lint")
[DEBUG Di 12 Dez 2023 10:41:57 CET] ...Chad/lazy/mason.nvim/lua/mason-core/installer/linker.lua:137: Linking Package(name=ansible-lint)
[DEBUG Di 12 Dez 2023 10:41:57 CET] ...NvChad/lazy/mason.nvim/lua/mason-core/installer/init.lua:39: Building receipt for Package(name=ansible-lint)
[DEBUG Di 12 Dez 2023 10:41:57 CET] ...local/share/NvChad/lazy/mason.nvim/lua/mason-core/fs.lua:59: fs: unlink /home/svh/.local/share/NvChad/mason/staging/ansible-lint.lock
[INFO  Di 12 Dez 2023 10:41:57 CET] ...NvChad/lazy/mason.nvim/lua/mason-core/installer/init.lua:245: Installation succeeded for Package(name=ansible-lint)

Neovim version (>= 0.7)

NVIM v0.10.0-dev-1812+g6d698c86d0 Build type: RelWithDebInfo LuaJIT 2.1.1700008891

Operating system/version

Linux fnord 6.6.4-arch1-1 #1 SMP PREEMPT_DYNAMIC Mon, 04 Dec 2023 00:29:19 +0000 x86_64 GNU/Linux

Healthcheck

mason: require("mason.health").check()

mason.nvim ~
- OK mason.nvim version v1.8.3
- OK PATH: skip
- OK Providers: 
    mason.providers.registry-api
    mason.providers.client
- OK neovim version >= 0.7.0

mason.nvim [Registries] ~
- OK Registry `github.com/mason-org/mason-registry version: 2023-12-12-idle-steven` is installed.

mason.nvim [Core utils] ~
- OK unzip: `UnZip 6.00 of 20 April 2009, by Info-ZIP.  Maintained by C. Spieler.  Send`
- OK wget: `GNU Wget 1.21.4 übersetzt unter linux-gnu.`
- OK curl: `curl 8.4.0 (x86_64-pc-linux-gnu) libcurl/8.4.0 OpenSSL/3.1.4 zlib/1.3 brotli/1.1.0 zstd/1.5.5 libidn2/2.3.4 libpsl/0.21.2 (+libidn2/2.3.4) libssh2/1.11.0 nghttp2/1.58.0`
- OK gzip: `gzip 1.13`
- OK tar: `tar (GNU tar) 1.35`
- OK bash: `GNU bash, Version 5.2.21(1)-release (x86_64-pc-linux-gnu)`
- OK sh: `Ok`

mason.nvim [Languages] ~
- WARNING Go: not available
  - ADVICE:
    - spawn: go failed with exit code - and signal -. go is not executable
- WARNING Composer: not available
  - ADVICE:
    - spawn: composer failed with exit code - and signal -. composer is not executable
- WARNING PHP: not available
  - ADVICE:
    - spawn: php failed with exit code - and signal -. php is not executable
- WARNING cargo: not available
  - ADVICE:
    - spawn: cargo failed with exit code - and signal -. cargo is not executable
- WARNING luarocks: not available
  - ADVICE:
    - spawn: luarocks failed with exit code - and signal -. luarocks is not executable
- OK Ruby: `ruby 3.0.6p216 (2023-03-30 revision 23a532679b) [x86_64-linux]`
- OK node: `v21.4.0`
- WARNING julia: not available
  - ADVICE:
    - spawn: julia failed with exit code - and signal -. julia is not executable
- OK python: `Python 3.11.6`
- OK java: `Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true`
- OK RubyGem: `3.3.25`
- OK javac: `javac 21`
- OK pip: `pip 23.3.1 from /usr/lib/python3.11/site-packages/pip (python 3.11)`
- OK npm: `10.2.5`
- OK python venv: `Ok`

mason.nvim [GitHub] ~
- OK GitHub API rate limit. Used: 0. Remaining: 60. Limit: 60. Reset: Di 12 Dez 2023 11:44:42 CET.
  Install and authenticate via gh-cli to increase rate limit.

Screenshots

No response

svenXY commented 9 months ago

when restarting nvim, mason reinstalls all packages each time, "fails" (not really, but says so), then does not display them. It seems it does not realize that things are installed already and keeps trying again at each restart of nvim

svenXY commented 9 months ago

A bit more information:

I re-tested with the following minimal config:

local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({
    "git",
    "clone",
    "--filter=blob:none",
    "https://github.com/folke/lazy.nvim.git",
    "--branch=stable", -- latest stable release
    lazypath,
  })
end
vim.opt.rtp:prepend(lazypath)

require("lazy").setup({
  "williamboman/mason.nvim",
  "williamboman/mason-lspconfig.nvim",
  "neovim/nvim-lspconfig",
})

require("mason").setup()
require("mason-lspconfig").setup()

then installed pyright and black and - while nvim was still running, checked the files (nvim_clean being the NVIM_APPNAME), then restarted nvim:

cd .local/share/nvim_clean/mason/bin
ls -la

insgesamt 0
drwxr-xr-x 2 svh svh 57 13. Dez 16:42 .
drwxr-xr-x 7 svh svh 74 13. Dez 16:42 ..
lrwxrwxrwx 1 svh svh 69 13. Dez 16:42 black -> /home/svh/.local/share/nvim_clean/mason/packages/black/venv/bin/black
lrwxrwxrwx 1 svh svh 82 13. Dez 16:42 pyright -> /home/svh/.local/share/nvim_clean/mason/packages/pyright/node_modules/.bin/pyright
lrwxrwxrwx 1 svh svh 93 13. Dez 16:42 pyright-langserver -> /home/svh/.local/share/nvim_clean/mason/packages/pyright/node_modules/.bin/pyright-langserver

ls -l /home/svh/.local/share/nvim_clean/mason/packages/black/venv/bin/black
-rwxr-xr-x 1 svh svh 274 13. Dez 16:42 /home/svh/.local/share/nvim_clean/mason/packages/black/venv/bin/black

echo "restarted nvim"
restarted nvim

ls -la

insgesamt 0
drwxr-xr-x 2 svh svh 57 13. Dez 16:42 .
drwxr-xr-x 7 svh svh 74 13. Dez 16:42 ..
lrwxrwxrwx 1 svh svh 69 13. Dez 16:42 black -> /home/svh/.local/share/nvim_clean/mason/packages/black/venv/bin/black
lrwxrwxrwx 1 svh svh 82 13. Dez 16:42 pyright -> /home/svh/.local/share/nvim_clean/mason/packages/pyright/node_modules/.bin/pyright
lrwxrwxrwx 1 svh svh 93 13. Dez 16:42 pyright-langserver -> /home/svh/.local/share/nvim_clean/mason/packages/pyright/node_modules/.bin/pyright-langserver

ls -l /home/svh/.local/share/nvim_clean/mason/packages/black/venv/bin/black
-rwxr-xr-x 1 svh svh 274 13. Dez 16:42 /home/svh/.local/share/nvim_clean/mason/packages/black/venv/bin/black

As you can see, files are there all the time, but they are not displayed by mason as installed. And the OS at least does not seem to do something here

svenXY commented 9 months ago

Adding @SCljh

SCljh commented 8 months ago

I have the same problem as you, every time I reopen nvim, clangd need to be re-download. I recently noticed some anomalies in the log of Mason: though clangd successfully downloads (with the output stating Installation succeeded for Package(name=clangd)) and is available in nvim, there are a few error messages in the MasonLog. I don't know if these errors will affect the package installation process, such as this errors might result in some metadata not being recorded. Here are the detailed logs:

3545 [INFO  Thu 25 Jan 2024 07:30:07 PM CST] ...acker/start/mason.nvim/lua/mason-core/installer/init.lua:184: Executing installer for Package(name=lua-language-server) {}
3546 [INFO  Thu 25 Jan 2024 07:30:07 PM CST] ...acker/start/mason.nvim/lua/mason-core/installer/init.lua:184: Executing installer for Package(name=clangd) {}
3547 [INFO  Thu 25 Jan 2024 07:30:10 PM CST] ...acker/start/mason.nvim/lua/mason-core/installer/init.lua:245: Installation succeeded for Package(name=lua-language-server)
3548 [INFO  Thu 25 Jan 2024 07:30:33 PM CST] ...acker/start/mason.nvim/lua/mason-core/installer/init.lua:245: Installation succeeded for Package(name=clangd)
3549 [ERROR Thu 25 Jan 2024 07:30:42 PM CST] ...acker/start/mason.nvim/lua/mason-core/providers/init.lua:75: Provider "github" "get_latest_release" failed: spawn: wget failed with exit code 5 and signal 0.-
3550 [INFO  Thu 25 Jan 2024 07:30:44 PM CST] ...acker/start/mason.nvim/lua/mason-core/installer/init.lua:184: Executing installer for Package(name=clangd) {}
3551 [INFO  Thu 25 Jan 2024 07:31:01 PM CST] ...acker/start/mason.nvim/lua/mason-core/installer/init.lua:245: Installation succeeded for Package(name=clangd)
Rusteam commented 7 months ago

similar issue, but on the opposite side. I've uninstalled pyright lsp from :Mason config, but every time I open a python file, it keeps re-installing pyright, although I don't want it. After I run :LspUininstall pyright and :LspRestart, pyright is disabled.

I've tried adding this config to my lazyvim plugins, but it does not seem to help:

  config = function()
    require("mason").setup()
    require("mason-lspconfig").setup({ automatic_installation = {
      exclude = { "pyright" },
    } })
  end,