Skip to content

Commit

Permalink
fix: Handle supervisor escalation better (frappe#1438)
Browse files Browse the repository at this point in the history
* fix: Give more meaningful context in subproc failures

* fix: Handle supervisor escalation if no exc is raised

* fix: only apply sudo if not already running as sudo
  • Loading branch information
gavindsouza authored Feb 24, 2023
1 parent b9e9eac commit c690e8e
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 3 deletions.
6 changes: 3 additions & 3 deletions bench/utils/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -150,12 +150,12 @@ def exec_cmd(cmd, cwd=".", env=None, _raise=True):
cwd_info = f"cd {cwd} && " if cwd != "." else ""
cmd_log = f"{cwd_info}{cmd}"
logger.debug(cmd_log)
cmd = split(cmd)
return_code = subprocess.call(cmd, cwd=cwd, universal_newlines=True, env=env)
spl_cmd = split(cmd)
return_code = subprocess.call(spl_cmd, cwd=cwd, universal_newlines=True, env=env)
if return_code:
logger.warning(f"{cmd_log} executed with exit code {return_code}")
if _raise:
raise CommandFailedError
raise CommandFailedError from subprocess.CalledProcessError(return_code, cmd)
return return_code


Expand Down
6 changes: 6 additions & 0 deletions bench/utils/bench.py
Original file line number Diff line number Diff line change
Expand Up @@ -298,6 +298,12 @@ def restart_supervisor_processes(bench_path=".", web_workers=False, _raise=False
sudo = "sudo "
supervisor_status = get_cmd_output("sudo supervisorctl status", cwd=bench_path)

if not sudo and (
"error: <class 'PermissionError'>, [Errno 13] Permission denied" in supervisor_status
):
sudo = "sudo "
supervisor_status = get_cmd_output("sudo supervisorctl status", cwd=bench_path)

if web_workers and f"{bench_name}-web:" in supervisor_status:
group = f"{bench_name}-web:\t"

Expand Down

0 comments on commit c690e8e

Please sign in to comment.