fix(shell): reap zombie processes when command timeout kills subprocess
This commit is contained in:
@@ -109,6 +109,11 @@ class ExecTool(Tool):
|
|||||||
try:
|
try:
|
||||||
await asyncio.wait_for(process.wait(), timeout=5.0)
|
await asyncio.wait_for(process.wait(), timeout=5.0)
|
||||||
except asyncio.TimeoutError:
|
except asyncio.TimeoutError:
|
||||||
|
try:
|
||||||
|
os.waitpid(process.pid, os.WNOHANG)
|
||||||
|
except (ProcessLookupError, ChildProcessError):
|
||||||
|
pass
|
||||||
|
except ProcessLookupError:
|
||||||
pass
|
pass
|
||||||
return f"Error: Command timed out after {effective_timeout} seconds"
|
return f"Error: Command timed out after {effective_timeout} seconds"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user