aboutsummaryrefslogtreecommitdiff
path: root/ansible
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2026-07-27 14:18:20 +0000
committerGerrit Code Review <review@openstack.org>2026-07-27 14:18:20 +0000
commitb70a24001cef54d755bef822671dcb105bb309ea (patch)
treeaa071894f168ba1661caa85628c30c1f0f1747da /ansible
parent1ebd7921f070a6266f71a50ac2d0fc58c818e34d (diff)
parentc6afad334f6c9f08657e6bd6a0d37833893f514f (diff)
downloadkolla-ansible-b70a24001cef54d755bef822671dcb105bb309ea.tar.gz
kolla-ansible-b70a24001cef54d755bef822671dcb105bb309ea.zip
Merge "Wait for slaves to sync before the recovery master restart." into stable/2026.1
Diffstat (limited to 'ansible')
-rw-r--r--ansible/roles/mariadb/tasks/recover_cluster.yml24
1 files changed, 24 insertions, 0 deletions
diff --git a/ansible/roles/mariadb/tasks/recover_cluster.yml b/ansible/roles/mariadb/tasks/recover_cluster.yml
index 16f0d05fc..0592cb390 100644
--- a/ansible/roles/mariadb/tasks/recover_cluster.yml
+++ b/ansible/roles/mariadb/tasks/recover_cluster.yml
@@ -215,6 +215,30 @@
- bootstrap_host is defined
- bootstrap_host != inventory_hostname
+# The master restart below is a Galera cluster membership change. If it
+# happens while a slave is still receiving its IST, the joiner aborts with
+# "IST didn't contain all write sets ... node restart required" and stays
+# permanently disconnected, so wait for every slave to finish syncing first.
+- name: Wait for slave MariaDB to sync WSREP
+ become: true
+ kolla_toolbox:
+ container_engine: "{{ kolla_container_engine }}"
+ module_name: mysql_query
+ module_args:
+ login_db: "mysql"
+ login_host: "{{ api_interface_address }}"
+ login_port: "{{ mariadb_port }}"
+ login_user: "{{ database_user }}"
+ login_password: "{{ database_password }}"
+ query: 'SHOW STATUS LIKE "wsrep_local_state_comment"'
+ register: result
+ until: result.query_result is defined and result.query_result[0][0]['Value'] == "Synced"
+ retries: 30
+ delay: 10
+ when:
+ - bootstrap_host is defined
+ - bootstrap_host != inventory_hostname
+
- name: Unset pc.bootstrap for primary MariaDB galera.cnf for next restart
vars:
service_name: "mariadb"