Unable to spawn process
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 38/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- lua
- Lĩnh vực
- operating-systems
Hướng nghiên cứu
Start in lua/plenary/job.lua at Job:_execute and inspect how options.cwd is passed to uv.spawn. Reproduce the failure from a Neovim terminal buffer with a term:// cwd, then determine the intended handling for a nonexistent directory; done means process spawning no longer fails for that case without breaking valid working directories.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
I kept seeing an error coming from this library when using my nvim setup. The issue is that special buffers like nvim's terminal report a invalid cwd term:///path/to/file which causes the call to spawn to fail with some error. I have been able to trace down a solution that works for me in the following diff. I doubt this code is acceptable for this project, but I'm sharing since it works for me.
diff --git a/lua/plenary/job.lua b/lua/plenary/job.lua
index 7f54971..4c69e48 100644
--- a/lua/plenary/job.lua
+++ b/lua/plenary/job.lua
@@ -400,7 +400,23 @@ function Job:_execute()
self:_user_on_start()
end
- self.handle, self.pid = uv.spawn(options.command, options, shutdown_factory(self, options))
+ local spawnOptions = {}
+
+ for k, v in pairs(options) do
+ spawnOptions[k] = v
+ end
+
+ if spawnOptions.cwd then
+ local stat = uv.fs_stat(spawnOptions.cwd)
+ if not stat or stat.type ~= "directory" then
+ -- Directory doesn't exist, remove cwd from options
+ spawnOptions.cwd = nil
+ end
+ end
+
+ self.handle, self.pid = uv.spawn(spawnOptions.command, spawnOptions, shutdown_factory(self, spawnOptions))
if not self.handle then
error(debug.traceback("Failed to spawn process: " .. vim.inspect(self)))
- Ngôn ngữ chính
- Lua
- Star
- 3.5k
- Fork
- 341
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của nvim-lua/plenary.nvim
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
nvim-lua/plenary.nvim#682 ·
-
uniform usage of `os.getenv`Có thể đã có người làm @rakotomandimby đã nhận 122 ngày trước. Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 72/100
nvim-lua/plenary.nvim#680 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 45/100
nvim-lua/plenary.nvim#675 ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 28/100
nvim-lua/plenary.nvim#672 · 1 bình luận ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 25/100
nvim-lua/plenary.nvim#671 · 1 bình luận ·
Tất cả issue của nvim-lua/plenary.nvim
Issue tương tự
-
enhancement good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 91/100
-
bug ready ticket
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Domktorymysli/vclu#5 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
Maintainer thường phản hồi trong vòng 3 ngày
-
Campaign WC
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 60/100
Maintainer thường phản hồi trong vòng 1 ngày