]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#3547] hammer.py: wait for start-stop-daemon/mysqld_safe to exit
authorAndrei Pavel <andrei@isc.org>
Thu, 22 Aug 2024 07:23:46 +0000 (10:23 +0300)
committerAndrei Pavel <andrei@isc.org>
Thu, 22 Aug 2024 07:23:46 +0000 (10:23 +0300)
Attempt to fix `start-stop-daemon: /usr/bin/mysqld_safe is already running`

hammer.py

index 4838ecda125d16899d4a59032846ab9af4b94642..aa344e00e87f280766534426f30e9ce8b96f2d70 100755 (executable)
--- 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"