From 0ab66f4f5f25eb65a7ff606527a0d81f28e9eb8d Mon Sep 17 00:00:00 2001 From: Thomas Hobson Date: Wed, 27 Apr 2022 02:51:10 +1200 Subject: [PATCH] Cleanup all zombie processes Prevents process table exhaustion --- api/src/job.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/api/src/job.js b/api/src/job.js index eef2ffd..0fc24a1 100644 --- a/api/src/job.js +++ b/api/src/job.js @@ -336,14 +336,20 @@ class Job { const [_, ruid, euid, suid, fuid] = uid_line.split(/\s+/); const [_1, state, user_friendly] = state_line.split(/\s+/); + + const proc_id_int = parse_int(proc_id); - if (state == 'Z') - // Zombie process, just needs to be waited + if (state == 'Z'){ + // Zombie process, just needs to be waited, regardless of the user id + if(!to_wait.includes(proc_id_int)) + to_wait.push(proc_id_int); + return -1; + } // We should kill in all other state (Sleep, Stopped & Running) if (ruid == this.uid || euid == this.uid) - return parse_int(proc_id); + return proc_id_int; } catch { return -1; }