Closed gpanders closed 3 years ago
I wonder if this is related https://github.com/libuv/libuv/commit/04289fa326b790c1a4abb236d1f9d913bacfc8c6
Nothing to see here folks... An objdump -p
revealed that I apparently had another version of libuv installed on my system and Neovim was being linked against that instead of the Nix version. Hopefully I didn't waste anyone else's time but my own :)
Hmm, I wonder it's actually a packaging issue. In https://github.com/NixOS/nixpkgs/pull/110837/commits/58ba227160122cea95df57ce71edd44e44e4e233 I added "-DUSE_BUNDLED=OFF"
to be consistent with the upstream flake at that time (https://github.com/neovim/neovim/blob/2bcf18deaa32ad371b6de349b353d42e9b1c9ea0/contrib/flake.nix#L25).
The flake has been since updated and this line was removed upstream in https://github.com/neovim/neovim/commit/de909bf48b5b845602204d84597af38a93a6ebd1
I will open a PR for removing this option - judging by the discussion in https://github.com/neovim/neovim/issues/15054 it seems that it would fix the issue. We have no reason to use system libraries anyway as far as I understand.
the line was removed precisely because you added it in nixpkgs: it didn't need to be there anymore ^^ Note that the flake is kinda best effort, I change it when I detect an issue.
EDIT: it's possible the libuv in the flake doesn't match the one recommended in neovim's build system. I run master and haven't noticed that kind of crash yet
Alright, can you confirm that this is not an issue caused by packaging then?
I've just edited my previous message to make it clearer that there may be a mismatch between the flake dependencies and the one recommended in neovim's build system. For instance the bundled ones uses libuv 1.34 https://github.com/neovim/neovim/blob/master/third-party/CMakeLists.txt#L152 but the flake uses 1.42. I run master and haven't noticed that kind of crash but if the issue is confirmed we could update the flake.
Thanks for the explanation! Closing this again.
Describe the bug
Spawning a process via
libuv
from within Neovim master built with Nix results in a SIGABRT.I know this sounds oddly specific, but many Neovim plugins written in Lua spawn external commands using libuv, this ends up crashing Neovim quite regularly.
Steps To Reproduce
Steps to reproduce the behavior:
Run neovim master
nix run github:neovim/neovim?dir=contrib -- -u NONE
Spawn a new process:
:lua vim.loop.spawn("ls", {}, function() end)
Neovim crashes with SIGABRT
Expected behavior
No SIGABRT.
Additional context
This error does not occur when I build Neovim using packages from my non-Nix package manager. In this case, LuaJIT and libuv are bundled with Neovim. My suspicion is that this isn't a bug with Neovim but rather with LuaJIT or libuv, or if not a bug in any one of those in particular then in the way they're being packaged together to build Neovim.
Note that I can reproduce the same thing on stable Nix 2.3, so this is not a result of using
nixUnstable
.Here is the stack trace from
lldb
:Notify maintainers
@manveru @rvolosatovs @Ma27
Metadata
Maintainer information: