From 3edb01f912867603c2aef9079f208f0244c0885b Mon Sep 17 00:00:00 2001 From: Robert Muir Date: Thu, 19 Feb 2026 09:39:22 -0500 Subject: fix(install): unlink files before copy on unix to prevent crashes (#8517) uv_fs_copyfile will truncate the target first, which can result in hard-to-debug crashes if the shared object is currently in use. instead, unlink the target first, so that the operation doesn't modify any in-use files. the disk space from the old parsers won't be reclaimed until any processes using them relinquish their open file handles. --- lua/nvim-treesitter/install.lua | 2 ++ 1 file changed, 2 insertions(+) (limited to 'lua') diff --git a/lua/nvim-treesitter/install.lua b/lua/nvim-treesitter/install.lua index 30e2d2ce7..b94b31027 100644 --- a/lua/nvim-treesitter/install.lua +++ b/lua/nvim-treesitter/install.lua @@ -302,6 +302,8 @@ local function do_install(logger, compile_location, target_location) local tempfile = target_location .. tostring(uv.hrtime()) uv_rename(target_location, tempfile) -- parser may be in use: rename... uv_unlink(tempfile) -- ...and mark for garbage collection + else + uv_unlink(target_location) -- don't disturb existing memory-mapped content end local err = uv_copyfile(compile_location, target_location) -- cgit v1.2.3-70-g09d2