mason.nvim icon indicating copy to clipboard operation
mason.nvim copied to clipboard

MasonInstall command broken when called through `vim.cmd`

Open mgnsk opened this issue 2 years ago • 0 comments

I've searched open issues for similar requests

Yes

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

  • [X] Yes

Problem description

I have the following configuration:

local masonpath = vim.fn.stdpath("data") .. "/mason.nvim"
if not vim.loop.fs_stat(masonpath) then
    vim.fn.system({
        "git",
        "clone",
        "https://github.com/williamboman/mason.nvim",
        masonpath,
    })
end
vim.opt.rtp:prepend(masonpath)

require("mason").setup({
    log_level = vim.log.levels.DEBUG,
})

and running the following command to install language servers:

nvim -u repro.lua --headless \
        -c "lua vim.cmd('MasonInstall gopls'); vim.cmd('MasonInstall dockerfile-language-server')" \
        -c "qa!"

The dockerfile-language-server is never installed because installing gopls although succeeds (the gopls binary is installed) but quits.

If I specify the commands separately or in a single command, both get installed but gopls still prints errors.

nvim -u repro.lua --headless \
        -c "lua vim.cmd('MasonInstall gopls')" \
        -c "lua vim.cmd('MasonInstall dockerfile-language-server')" \
        -c "qa!"
nvim -u repro.lua --headless \
        -c "lua vim.cmd('MasonInstall gopls dockerfile-language-server')" \
        -c "qa!"

If I specify vim commands directly then both install and there are no errors.

nvim -u repro.lua --headless \
        -c "MasonInstall gopls" \
        -c "MasonInstall dockerfile-language-server" \
        -c "qa!"

Expected behavior

Expected MasonInstall to work regardless of invocation method.

Affected packages

gopls

Mason output

# Output of headless install

[mason] [INFO  14:00:49] .../share/nvim/mason.nvim/lua/mason-core/installer/init.lua:120: Executing installer for Package(name=gopls)
[mason] [DEBUG 14:00:49] ...agnus/.local/share/nvim/mason.nvim/lua/mason-core/fs.lua:71: fs: mkdirp /home/magnus/.local/share/nvim/mason
[mason] [DEBUG 14:00:49] ...agnus/.local/share/nvim/mason.nvim/lua/mason-core/fs.lua:71: fs: mkdirp /home/magnus/.local/share/nvim/mason/bin
[mason] [DEBUG 14:00:49] ...agnus/.local/share/nvim/mason.nvim/lua/mason-core/fs.lua:71: fs: mkdirp /home/magnus/.local/share/nvim/mason/packages
[mason] [DEBUG 14:00:49] ...agnus/.local/share/nvim/mason.nvim/lua/mason-core/fs.lua:71: fs: mkdirp /home/magnus/.local/share/nvim/mason/.packages
[mason] [DEBUG 14:00:49] ...agnus/.local/share/nvim/mason.nvim/lua/mason-core/fs.lua:71: fs: mkdirp /home/magnus/.local/share/nvim/mason/.packages/gopls
[mason] [DEBUG 14:00:49] .../.local/share/nvim/mason.nvim/lua/mason-core/process.lua:116: Spawning cmd="go", spawn_opts={
[mason]   args = { "install", "-v", "golang.org/x/tools/gopls@latest" },
[mason]   cwd = "/home/magnus/.local/share/nvim/mason/.packages/gopls",
[mason]   env = { "SKIM_DEFAULT_COMMAND=<redacted>", "GOPATH=/home/magnus/go", "PATH=/home/magnus/.local/share/nvim/mason/bin:/home/magnus/toolbox/workspaces/go/bin:/home/magnus/Downloads/lua-language-server-3.6.7-linux-x64/bin:/home/magnus/.tools/js/node_modules/.bin:/home/magnus/.luarocks/bin:/home/magnus/.bin:/home/magnus/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin:/home/magnus/.cargo/bin:/home/magnus/go/bin:/home/magnus/.local/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin", "FZF_DEFAULT_COMMAND=<redacted>", "LC_MEASUREMENT=<redacted>", "PWD=<redacted>", "MANPAGER=<redacted>", "SYSTEMD_EXEC_PID=<redacted>", "DISPLAY=<redacted>", "QT_IM_MODULE=<redacted>", "LS_COLORS=<redacted>", "LIBRARY_PATH=<redacted>", "TERM_PROGRAM_VERSION=<redacted>", "TMUX_PANE=<redacted>", "GIO_LAUNCHED_DESKTOP_FILE_PID=<redacted>", "ANSIBLE_NOCOWS=<redacted>", "SHLVL=<redacted>", "LOGNAME=<redacted>", "TERM=<redacted>", "FZF_ALT_C_COMMAND=<redacted>", "_=<redacted>", "DBUS_SESSION_BUS_ADDRESS=<redacted>", "TMUX=<redacted>", "GPG_TTY=<redacted>", "GOFLAGS=<redacted>", "XDG_RUNTIME_DIR=<redacted>", "SSH_AUTH_SOCK=<redacted>", "TERM_PROGRAM=<redacted>", "USER=<redacted>", "LC_TIME=<redacted>", "XDG_MENU_PREFIX=<redacted>", "XDG_CURRENT_DESKTOP=<redacted>", "LC_NUMERIC=<redacted>", "VISUAL=<redacted>", "SHELL=<redacted>", "HOME=<redacted>", "FZF_CTRL_T_COMMAND=<redacted>", "XDG_SESSION_TYPE=<redacted>", "SESSION_MANAGER=<redacted>", "GNOME_SETUP_DISPLAY=<redacted>", "FZF_DEFAULT_OPTS=<redacted>", "JOURNAL_STREAM=<redacted>", "EDITOR=<redacted>", "GDM_LANG=<redacted>", "COLORTERM=<redacted>", "LANG=<redacted>", "USERNAME=<redacted>", "XDG_SESSION_CLASS=<redacted>", "GDMSESSION=<redacted>", "XMODIFIERS=<redacted>", "XAUTHORITY=<redacted>", "WAYLAND_DISPLAY=<redacted>", "VIMRUNTIME=<redacted>", "XDG_DATA_DIRS=<redacted>", "LC_MONETARY=<redacted>", "LC_PAPER=<redacted>", "INVOCATION_ID=<redacted>", "NVIM_LOG_FILE=<redacted>", "XDG_SESSION_DESKTOP=<redacted>", "PAGER=<redacted>", "MANAGERPID=<redacted>", "DESKTOP_SESSION=<redacted>", "GOBIN=/home/magnus/.local/share/nvim/mason/.packages/gopls" }
[mason] }
[mason] [DEBUG 14:00:49] .../.local/share/nvim/mason.nvim/lua/mason-core/process.lua:162: Spawned with pid 36328
Error detected while processing command line:
E5108: Error executing lua [string ":lua"]:1: Vim:Error executing vim.schedule lua callback: ...gnus/.local/share/nvim/mason.nvim/lua/mason-core/log.lua:90: Vim:Error executing vim.schedule lua callback: ...gnus/.local/share/nvim/mason.nvim/lua/mason-core/log.lua:90: Vim:Error executing vim.schedule lua callback: ...gnus/.local/share/nvim/mason.nvim/lua/mason-core/log.lua:90: Vim:Error executing vim.schedule lua callback: ...gnus/.local/share/nvim/mason.nvim/lua/mason-core/log.lua:90: Vim:Error executing vim.schedule lua callback: ...gnus/.local/share/nvim/mason.nvim/lua/mason-core/log.lua:90: Vim:Error executing vim.schedule lua callback: ...gnus/.local/share/nvim/mason.nvim/lua/mason-core/log.lua:90: Vim:Error executing vim.schedule lua callback: ...gnus/.local/share/nvim/mason.nvim/lua/mason-core/log.lua:90: Vim:get "golang.org/x/tools": found meta tag vcs.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at //golang.org/x/tools?go-get=1
stack traceback:
        [C]: in function 'cmd'
        ...gnus/.local/share/nvim/mason.nvim/lua/mason-core/log.lua:90: in function <...gnus/.local/share/nvim/mason.nvim/lua/mason-core/log.lua:86>
        [C]: in function 'wait'
        ...ocal/share/nvim/mason.nvim/lua/mason-core/async/init.lua:128: in function 'run_blocking'
        ...s/.local/share/nvim/mason.nvim/lua/mason/api/command.lua:41: in function 'join_handles'
        ...s/.local/share/nvim/mason.nvim/lua/mason/api/command.lua:104: in function 'MasonInstall'
        ...s/.local/share/nvim/mason.nvim/lua/mason/api/command.lua:127: in function <...s/.local/share/nvim/mason.nvim/lua/mason/api/command.lua:125>
        [C]: in function 'cmd'
        [string ":lua"]:1: in main chunk
stack traceback:
        [C]: in function 'cmd'
        ...gnus/.local/share/nvim/mason.nvim/lua/mason-core/log.lua:90: in function <...gnus/.local/share/nvim/mason.nvim/lua/mason-core/log.lua:86>
        [C]: in function 'wait'
        ...ocal/share/nvim/mason.nvim/lua/mason-core/async/init.lua:128: in function 'run_blocking'
        ...s/.local/share/nvim/mason.nvim/lua/mason/api/command.lua:41: in function 'join_handles'
        ...s/.local/share/nvim/mason.nvim/lua/mason/api/command.lua:104: in function 'MasonInstall'
        ...s/.local/share/nvim/mason.nvim/lua/mason/api/command.lua:127: in function <...s/.local/share/nvim/mason.nvim/lua/mason/api/command.lua:125>
        [C]: in function 'cmd'
        [string ":lua"]:1: in main chunk
stack traceback:
        [C]: in function 'cmd'
        ...gnus/.local/share/nvim/mason.nvim/lua/mason-core/log.lua:90: in function <...gnus/.local/share/nvim/mason.nvim/lua/mason-core/log.lua:86>
        [C]: in function 'wait'
        ...ocal/share/nvim/mason.nvim/lua/mason-core/async/init.lua:128: in function 'run_blocking'
        ...s/.local/share/nvim/mason.nvim/lua/mason/api/command.lua:41: in function 'join_handles'
        ...s/.local/share/nvim/mason.nvim/lua/mason/api/command.lua:104: in function 'MasonInstall'
        ...s/.local/share/nvim/mason.nvim/lua/mason/api/command.lua:127: in function <...s/.local/share/nvim/mason.nvim/lua/mason/api/command.lua:125>
        [C]: in function 'cmd'
        [string ":lua"]:1: in main chunk
stack traceback:
        [C]: in function 'cmd'
        ...gnus/.local/share/nvim/mason.nvim/lua/mason-core/log.lua:90: in function <...gnus/.local/share/nvim/mason.nvim/lua/mason-core/log.lua:86>
        [C]: in function 'wait'
        ...ocal/share/nvim/mason.nvim/lua/mason-core/async/init.lua:128: in function 'run_blocking'
        ...s/.local/share/nvim/mason.nvim/lua/mason/api/command.lua:41: in function 'join_handles'
        ...s/.local/share/nvim/mason.nvim/lua/mason/api/command.lua:104: in function 'MasonInstall'
        ...s/.local/share/nvim/mason.nvim/lua/mason/api/command.lua:127: in function <...s/.local/share/nvim/mason.nvim/lua/mason/api/command.lua:125>
        [C]: in function 'cmd'
        [string ":lua"]:1: in main chunk
stack traceback:
        [C]: in function 'cmd'
        ...gnus/.local/share/nvim/mason.nvim/lua/mason-core/log.lua:90: in function <...gnus/.local/share/nvim/mason.nvim/lua/mason-core/log.lua:86>
        [C]: in function 'wait'
        ...ocal/share/nvim/mason.nvim/lua/mason-core/async/init.lua:128: in function 'run_blocking'
        ...s/.local/share/nvim/mason.nvim/lua/mason/api/command.lua:41: in function 'join_handles'
        ...s/.local/share/nvim/mason.nvim/lua/mason/api/command.lua:104: in function 'MasonInstall'
        ...s/.local/share/nvim/mason.nvim/lua/mason/api/command.lua:127: in function <...s/.local/share/nvim/mason.nvim/lua/mason/api/command.lua:125>
        [C]: in function 'cmd'
        [string ":lua"]:1: in main chunk
stack traceback:
        [C]: in function 'cmd'
        ...gnus/.local/share/nvim/mason.nvim/lua/mason-core/log.lua:90: in function <...gnus/.local/share/nvim/mason.nvim/lua/mason-core/log.lua:86>
        [C]: in function 'wait'
        ...ocal/share/nvim/mason.nvim/lua/mason-core/async/init.lua:128: in function 'run_blocking'
        ...s/.local/share/nvim/mason.nvim/lua/mason/api/command.lua:41: in function 'join_handles'
        ...s/.local/share/nvim/mason.nvim/lua/mason/api/command.lua:104: in function 'MasonInstall'
        ...s/.local/share/nvim/mason.nvim/lua/mason/api/command.lua:127: in function <...s/.local/share/nvim/mason.nvim/lua/mason/api/command.lua:125>
        [C]: in function 'cmd'
        [string ":lua"]:1: in main chunk
stack traceback:
        [C]: in function 'cmd'
        ...gnus/.local/share/nvim/mason.nvim/lua/mason-core/log.lua:90: in function <...gnus/.local/share/nvim/mason.nvim/lua/mason-core/log.lua:86>
        [C]: in function 'wait'
        ...ocal/share/nvim/mason.nvim/lua/mason-core/async/init.lua:128: in function 'run_blocking'
        ...s/.local/share/nvim/mason.nvim/lua/mason/api/command.lua:41: in function 'join_handles'
        ...s/.local/share/nvim/mason.nvim/lua/mason/api/command.lua:104: in function 'MasonInstall'
        ...s/.local/share/nvim/mason.nvim/lua/mason/api/command.lua:127: in function <...s/.local/share/nvim/mason.nvim/lua/mason/api/command.lua:125>
        [C]: in function 'cmd'
        [string ":lua"]:1: in main chunk
stack traceback:
        [C]: in function 'cmd'
        [string ":lua"]:1: in main chunk
[mason] [INFO  14:00:51] .../share/nvim/mason.nvim/lua/mason-core/installer/init.lua:152: Installation succeeded for Package(name=gopls)⏎

Installation log

[INFO  K 01 veebr 2023 14:00:49] .../share/nvim/mason.nvim/lua/mason-core/installer/init.lua:120: Executing installer for Package(name=gopls)
[DEBUG K 01 veebr 2023 14:00:49] ...agnus/.local/share/nvim/mason.nvim/lua/mason-core/fs.lua:71: fs: mkdirp /home/magnus/.local/share/nvim/mason
[DEBUG K 01 veebr 2023 14:00:49] ...agnus/.local/share/nvim/mason.nvim/lua/mason-core/fs.lua:71: fs: mkdirp /home/magnus/.local/share/nvim/mason/bin
[DEBUG K 01 veebr 2023 14:00:49] ...agnus/.local/share/nvim/mason.nvim/lua/mason-core/fs.lua:71: fs: mkdirp /home/magnus/.local/share/nvim/mason/packages
[DEBUG K 01 veebr 2023 14:00:49] ...agnus/.local/share/nvim/mason.nvim/lua/mason-core/fs.lua:71: fs: mkdirp /home/magnus/.local/share/nvim/mason/.packages
[DEBUG K 01 veebr 2023 14:00:49] ...agnus/.local/share/nvim/mason.nvim/lua/mason-core/fs.lua:71: fs: mkdirp /home/magnus/.local/share/nvim/mason/.packages/gopls
[DEBUG K 01 veebr 2023 14:00:49] .../.local/share/nvim/mason.nvim/lua/mason-core/process.lua:116: Spawning cmd="go", spawn_opts={
  args = { "install", "-v", "golang.org/x/tools/gopls@latest" },
  cwd = "/home/magnus/.local/share/nvim/mason/.packages/gopls",
  env = { "SKIM_DEFAULT_COMMAND=<redacted>", "GOPATH=/home/magnus/go", "PATH=/home/magnus/.local/share/nvim/mason/bin:/home/magnus/toolbox/workspaces/go/bin:/home/magnus/Downloads/lua-language-server-3.6.7-linux-x64/bin:/home/magnus/.tools/js/node_modules/.bin:/home/magnus/.luarocks/bin:/home/magnus/.bin:/home/magnus/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin:/home/magnus/.cargo/bin:/home/magnus/go/bin:/home/magnus/.local/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin", "FZF_DEFAULT_COMMAND=<redacted>", "LC_MEASUREMENT=<redacted>", "PWD=<redacted>", "MANPAGER=<redacted>", "SYSTEMD_EXEC_PID=<redacted>", "DISPLAY=<redacted>", "QT_IM_MODULE=<redacted>", "LS_COLORS=<redacted>", "LIBRARY_PATH=<redacted>", "TERM_PROGRAM_VERSION=<redacted>", "TMUX_PANE=<redacted>", "GIO_LAUNCHED_DESKTOP_FILE_PID=<redacted>", "ANSIBLE_NOCOWS=<redacted>", "SHLVL=<redacted>", "LOGNAME=<redacted>", "TERM=<redacted>", "FZF_ALT_C_COMMAND=<redacted>", "_=<redacted>", "DBUS_SESSION_BUS_ADDRESS=<redacted>", "TMUX=<redacted>", "GPG_TTY=<redacted>", "GOFLAGS=<redacted>", "XDG_RUNTIME_DIR=<redacted>", "SSH_AUTH_SOCK=<redacted>", "TERM_PROGRAM=<redacted>", "USER=<redacted>", "LC_TIME=<redacted>", "XDG_MENU_PREFIX=<redacted>", "XDG_CURRENT_DESKTOP=<redacted>", "LC_NUMERIC=<redacted>", "VISUAL=<redacted>", "SHELL=<redacted>", "HOME=<redacted>", "FZF_CTRL_T_COMMAND=<redacted>", "XDG_SESSION_TYPE=<redacted>", "SESSION_MANAGER=<redacted>", "GNOME_SETUP_DISPLAY=<redacted>", "FZF_DEFAULT_OPTS=<redacted>", "JOURNAL_STREAM=<redacted>", "EDITOR=<redacted>", "GDM_LANG=<redacted>", "COLORTERM=<redacted>", "LANG=<redacted>", "USERNAME=<redacted>", "XDG_SESSION_CLASS=<redacted>", "GDMSESSION=<redacted>", "XMODIFIERS=<redacted>", "XAUTHORITY=<redacted>", "WAYLAND_DISPLAY=<redacted>", "VIMRUNTIME=<redacted>", "XDG_DATA_DIRS=<redacted>", "LC_MONETARY=<redacted>", "LC_PAPER=<redacted>", "INVOCATION_ID=<redacted>", "NVIM_LOG_FILE=<redacted>", "XDG_SESSION_DESKTOP=<redacted>", "PAGER=<redacted>", "MANAGERPID=<redacted>", "DESKTOP_SESSION=<redacted>", "GOBIN=/home/magnus/.local/share/nvim/mason/.packages/gopls" }
}
[DEBUG K 01 veebr 2023 14:00:49] .../.local/share/nvim/mason.nvim/lua/mason-core/process.lua:162: Spawned with pid 36328
[DEBUG K 01 veebr 2023 14:00:51] .../.local/share/nvim/mason.nvim/lua/mason-core/process.lua:148: Job pid=36328 exited with exit_code=0, signal=0
[DEBUG K 01 veebr 2023 14:00:51] ...are/nvim/mason.nvim/lua/mason-core/installer/context.lua:179: Promoting cwd "/home/magnus/.local/share/nvim/mason/.packages/gopls" to "/home/magnus/.local/share/nvim/mason/packages/gopls"
[DEBUG K 01 veebr 2023 14:00:51] ...agnus/.local/share/nvim/mason.nvim/lua/mason-core/fs.lua:65: fs: mkdir /home/magnus/.local/share/nvim/mason/packages/gopls
[DEBUG K 01 veebr 2023 14:00:51] ...agnus/.local/share/nvim/mason.nvim/lua/mason-core/fs.lua:84: fs: rename /home/magnus/.local/share/nvim/mason/.packages/gopls /home/magnus/.local/share/nvim/mason/packages/gopls
[DEBUG K 01 veebr 2023 14:00:51] ...hare/nvim/mason.nvim/lua/mason-core/installer/linker.lua:81: Linking Package(name=gopls)
[DEBUG K 01 veebr 2023 14:00:51] ...hare/nvim/mason.nvim/lua/mason-core/installer/linker.lua:46: Linking bin "gopls" to "../packages/gopls/gopls"
[DEBUG K 01 veebr 2023 14:00:51] .../share/nvim/mason.nvim/lua/mason-core/installer/init.lua:30: Writing receipt for Package(name=gopls)
[INFO  K 01 veebr 2023 14:00:51] .../share/nvim/mason.nvim/lua/mason-core/installer/init.lua:152: Installation succeeded for Package(name=gopls)

Neovim version (>= 0.7)

NVIM v0.8.2 Build type: RelWithDebInfo LuaJIT 2.1.0-beta3

Operating system/version

Linux fedora 6.1.7-100.fc36.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jan 18 18:37:43 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Healthcheck

mason: require("mason.health").check()
========================================================================
## mason.nvim report
  - OK: neovim version >= 0.7.0
  - OK: Go: `go version go1.18.10 linux/amd64`
  - OK: cargo: `cargo 1.68.0-nightly (d992ab4e9 2023-01-10)`
  - WARNING: luarocks: not available
  - OK: Ruby: `ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [x86_64-linux]`
  - OK: RubyGem: `3.3.26`
  - OK: Composer: `Composer version 2.5.1 2022-12-22 15:33:54`
  - OK: PHP: `PHP 8.1.14 (cli) (built: Jan  4 2023 06:45:14) (NTS gcc x86_64)`
  - OK: npm: `8.19.2`
  - OK: node: `v16.18.1`
  - OK: python3: `Python 3.10.9`
  - OK: pip3: `pip 21.3.1 from /usr/lib/python3.10/site-packages/pip (python 3.10)`
  - WARNING: javac: not available
  - OK: java: `openjdk version "17.0.5" 2022-10-18`
  - WARNING: julia: not available
  - OK: wget: `GNU Wget 1.21.3 built on linux-gnu.`
  - OK: curl: `curl 7.82.0 (x86_64-redhat-linux-gnu) libcurl/7.82.0 OpenSSL/3.0.5 zlib/1.2.11 brotli/1.0.9 libidn2/2.3.4 libpsl/0.21.1 (+libidn2/2.3.2) libssh/0.9.6/openssl/zlib nghttp2/1.51.0         OpenLDAP/2.6.3`
  - OK: gzip: `gzip 1.11`
  - OK: tar: `tar (GNU tar) 1.34`
  - WARNING: pwsh: not available
  - OK: bash: `GNU bash, version 5.2.15(1)-release (x86_64-redhat-linux-gnu)`
  - OK: sh: `Ok`
  - OK: GitHub API rate limit. Used: 0. Remaining: 60. Limit: 60. Reset: K 01 veebr 2023 14:14:34.

Screenshots

No response

mgnsk avatar Feb 01 '23 12:02 mgnsk