From 67b7148d09a090f0223f98e1a69693ddc9196353 Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Sun, 29 Dec 2019 19:15:20 +0100 Subject: [PATCH 1/2] Test return code --- lib/galaxy/jobs/runners/util/cli/shell/local.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/galaxy/jobs/runners/util/cli/shell/local.py b/lib/galaxy/jobs/runners/util/cli/shell/local.py index 6132655b5ff..2af0e2c509a 100644 --- a/lib/galaxy/jobs/runners/util/cli/shell/local.py +++ b/lib/galaxy/jobs/runners/util/cli/shell/local.py @@ -34,6 +34,8 @@ class LocalShell(BaseShellExec): True >>> exec_result.stdout.strip() == u'Hello World' True + >>> exec_result.returncode + 0 >>> exec_result = exec_python("import time; time.sleep(10)", timeout=1, timeout_check_interval=.1) >>> exec_result.stdout == u'' True From 3859735c27b894aaa30dec2f62206e7bee001596 Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Sun, 29 Dec 2019 19:13:17 +0100 Subject: [PATCH 2/2] Fix LocalShell returncode It appears polling once after completionn is necessary to get the correct returncode. --- lib/galaxy/jobs/runners/util/cli/shell/local.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/galaxy/jobs/runners/util/cli/shell/local.py b/lib/galaxy/jobs/runners/util/cli/shell/local.py index 2af0e2c509a..c4deeeb3624 100644 --- a/lib/galaxy/jobs/runners/util/cli/shell/local.py +++ b/lib/galaxy/jobs/runners/util/cli/shell/local.py @@ -65,6 +65,8 @@ class LocalShell(BaseShellExec): kill_pg(p.pid) return Bunch(stdout=u'', stderr=TIMEOUT_ERROR_MESSAGE, returncode=TIMEOUT_RETURN_CODE) outf.seek(0) + # Need to poll once to establish return code + p.poll() return Bunch(stdout=_read_str(outf), stderr=_read_str(p.stderr), returncode=p.returncode)