From e8ddc606b26b89cff4e595c27520961ae2ca7d25 Mon Sep 17 00:00:00 2001 From: Damien Ciabrini Date: Thu, 17 Sep 2020 16:09:50 +0200 Subject: [PATCH] Remove race during mysql database creation The mysql database is create by container mysql_bootstrap, which let Kolla run mysqld_safe temporarily, and then let TripleO run it for additional setup. Before running the second temporary mysqld server, make sure that the mysqld_safe script started by Kolla is always stopped, to avoid any race condition that would cause the second mysqld_safe server to be killed by the Kolla one. Change-Id: Id7cf45fb95d3c8a2c5519b1a13a5651cf414a115 Co-Authored-By: Michele Baldessari Closes-Bug: #1896009 --- deployment/database/mysql-container-puppet.yaml | 1 + deployment/database/mysql-pacemaker-puppet.yaml | 1 + 2 files changed, 2 insertions(+) diff --git a/deployment/database/mysql-container-puppet.yaml b/deployment/database/mysql-container-puppet.yaml index 250a5ba23d..4fa6fdff9e 100644 --- a/deployment/database/mysql-container-puppet.yaml +++ b/deployment/database/mysql-container-puppet.yaml @@ -158,6 +158,7 @@ outputs: - 'echo -e "\n[mysqld]\nwsrep_provider=none" >> /etc/my.cnf' - 'kolla_set_configs' - 'sudo -u mysql -E kolla_extend_start' + - 'timeout ${DB_MAX_TIMEOUT} /bin/bash -c ''while pgrep -af /usr/bin/mysqld_safe | grep -q -v grep; do sleep 1; done''' - 'mysqld_safe --skip-networking --wsrep-on=OFF &' - 'timeout ${DB_MAX_TIMEOUT} /bin/bash -c ''until mysqladmin -uroot -p"${DB_ROOT_PASSWORD}" ping 2>/dev/null; do sleep 1; done''' - 'mysql -uroot -p"${DB_ROOT_PASSWORD}" -e "CREATE USER ''mysql''@''localhost'';"' diff --git a/deployment/database/mysql-pacemaker-puppet.yaml b/deployment/database/mysql-pacemaker-puppet.yaml index 6952e2912e..6172c0d36d 100644 --- a/deployment/database/mysql-pacemaker-puppet.yaml +++ b/deployment/database/mysql-pacemaker-puppet.yaml @@ -238,6 +238,7 @@ outputs: - 'echo -e "\n[mysqld]\nwsrep_provider=none" >> /etc/my.cnf' - 'kolla_set_configs' - 'sudo -u mysql -E kolla_extend_start' + - 'timeout ${DB_MAX_TIMEOUT} /bin/bash -c ''while pgrep -af /usr/bin/mysqld_safe | grep -q -v grep; do sleep 1; done''' - 'mysqld_safe --skip-networking --wsrep-on=OFF &' - 'timeout ${DB_MAX_TIMEOUT} /bin/bash -c ''until mysqladmin -uroot -p"${DB_ROOT_PASSWORD}" ping 2>/dev/null; do sleep 1; done''' - 'mysql -uroot -p"${DB_ROOT_PASSWORD}" -e "CREATE USER ''clustercheck''@''localhost'' IDENTIFIED BY ''${DB_CLUSTERCHECK_PASSWORD}'';"'