Fixing galera bootstrap hang caused by incorrect mysql shutdown
command called by service.dead state:
systemd-run --scope systemctl stop mysql.service
More common way is to shut down service using known credentials
Change-Id: I2abe7eeea850333139587347039b1de8a6ea486f
diff --git a/galera/master.sls b/galera/master.sls
index d0ecae7..8550917 100644
--- a/galera/master.sls
+++ b/galera/master.sls
@@ -105,7 +105,7 @@
- require:
- pkg: galera_packages
-{%- endif %}
+{%- endif %}
galera_init_script:
file.managed:
@@ -166,11 +166,26 @@
- require:
- cmd: galera_bootstrap_set_root_password
+galera_bootstrap_stop_service_pre:
+ cmd.run:
+ - name: mysqladmin -h localhost -u root -p{{ master.admin.password }} shutdown
+ {%- if not grains.get('noservices', False) %}
+ - ignore_retcode: true
+ - require:
+ - cmd: mysql_bootstrap_update_maint_password
+ {%- else %}
+ - onlyif: /bin/false
+ {%- endif %}
+
galera_bootstrap_stop_service:
service.dead:
- name: {{ master.service }}
+ {%- if not grains.get('noservices', False) %}
- require:
- - cmd: mysql_bootstrap_update_maint_password
+ - cmd: galera_bootstrap_stop_service_pre
+ {%- else %}
+ - onlyif: /bin/false
+ {%- endif %}
galera_bootstrap_init_config:
file.managed:
@@ -178,7 +193,7 @@
- source: salt://galera/files/my.cnf.init
- mode: 644
- template: jinja
- - require:
+ - require:
- service: galera_bootstrap_stop_service
galera_bootstrap_start_service_final:
@@ -207,7 +222,7 @@
- source: salt://galera/files/my.cnf
- mode: 644
- template: jinja
- - require_in:
+ - require_in:
- service: galera_service
galera_service:
diff --git a/galera/slave.sls b/galera/slave.sls
index 4004217..f507b6d 100644
--- a/galera/slave.sls
+++ b/galera/slave.sls
@@ -144,7 +144,7 @@
{%- if grains.get('noservices') %}
- onlyif: /bin/false
{%- endif %}
- - require:
+ - require:
- file: galera_run_dir
- file: galera_init_script
@@ -166,14 +166,26 @@
- require:
- cmd: galera_bootstrap_set_root_password
+galera_bootstrap_stop_service_pre:
+ cmd.run:
+ - name: mysqladmin -h localhost -u root -p{{ slave.admin.password }} shutdown
+ {%- if not grains.get('noservices', False) %}
+ - ignore_retcode: true
+ - require:
+ - cmd: mysql_bootstrap_update_maint_password
+ {%- else %}
+ - onlyif: /bin/false
+ {%- endif %}
+
galera_bootstrap_stop_service:
service.dead:
- name: {{ slave.service }}
- {%- if grains.get('noservices') %}
+ {%- if not grains.get('noservices', False) %}
+ - require:
+ - cmd: galera_bootstrap_stop_service_pre
+ {%- else %}
- onlyif: /bin/false
{%- endif %}
- - require:
- - cmd: mysql_bootstrap_update_maint_password
galera_bootstrap_init_config:
file.managed:
@@ -181,7 +193,7 @@
- source: salt://galera/files/my.cnf
- mode: 644
- template: jinja
- - require:
+ - require:
- service: galera_bootstrap_stop_service
galera_bootstrap_start_service_final:
@@ -190,7 +202,7 @@
{%- if grains.get('noservices') %}
- onlyif: /bin/false
{%- endif %}
- - require:
+ - require:
- file: galera_bootstrap_init_config
- file: galera_bootstrap_script
@@ -210,7 +222,7 @@
- source: salt://galera/files/my.cnf
- mode: 644
- template: jinja
- - require_in:
+ - require_in:
- service: galera_service
galera_service: