From a08efdbafb76832bc31fe23d490ab45aae03f34e Mon Sep 17 00:00:00 2001 From: Andrei Pavel Date: Thu, 22 Aug 2024 10:23:46 +0300 Subject: [PATCH] [#3547] hammer.py: wait for start-stop-daemon/mysqld_safe to exit Attempt to fix `start-stop-daemon: /usr/bin/mysqld_safe is already running` --- hammer.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/hammer.py b/hammer.py index 4838ecda12..aa344e00e8 100755 --- a/hammer.py +++ b/hammer.py @@ -426,6 +426,15 @@ def execute(cmd, timeout=60, cwd=None, env=None, raise_error=True, dry_run=False return exitcode +def wait_for_process_to_exit(process_name): + for _ in range(100): + exit_code = execute(f'sudo pidof {process_name}', raise_error=False) + if exit_code != 0: + # Process exited or there was no process to begin with. + break + time.sleep(1) + + def _append_to_file(file_name, line): with open(file_name, encoding='utf-8', mode='a') as f: f.write(line + '\n') @@ -1371,7 +1380,9 @@ ssl_key = {cert_dir}/kea-client.key execute('sudo sed -i "/^skip-networking$/d" /etc/my.cnf.d/mariadb-server.cnf') execute('sudo rc-update add mariadb') execute('sudo rc-service mariadb stop') + wait_for_process_to_exit('start-stop-daemon') # mysqld_safe execute('sudo rc-service mariadb setup') + wait_for_process_to_exit('start-stop-daemon') # mysqld_safe execute('sudo rc-service mariadb restart') cmd = "echo 'DROP DATABASE IF EXISTS keatest;' | sudo mysql -u root"