Unable to spawn process
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 38/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- lua
- Área
- operating-systems
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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)))
- Lenguaje dominante
- Lua
- Estrellas
- 3.5k
- Forks
- 341
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de nvim-lua/plenary.nvim
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
nvim-lua/plenary.nvim#682 ·
-
uniform usage of `os.getenv`Posiblemente ocupada @rakotomandimby la tomó hace 122 días. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
nvim-lua/plenary.nvim#680 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 45/100
nvim-lua/plenary.nvim#675 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 28/100
nvim-lua/plenary.nvim#672 · 1 comentario ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
nvim-lua/plenary.nvim#671 · 1 comentario ·
Todos los issues de nvim-lua/plenary.nvim
Issues similares
-
enhancement good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 91/100
-
bug ready ticket
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Domktorymysli/vclu#5 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 3 días
-
Campaign WC
Dificultad 2/5 1-3 horas Aptitud para principiantes 60/100
Los mantenedores suelen responder en 1 día