summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroot <root@vps-18a7a2b7.vps.ovh.ca>2024-02-11 11:07:13 -0500
committerroot <root@vps-18a7a2b7.vps.ovh.ca>2024-02-11 11:07:13 -0500
commit3d798022eed43f26c7c9a697b1903c7e9bf3d1bc (patch)
tree7cb568730e608db9acbaaf817d0b5babe9998eaf
parent5799f1861ff3696e8420caa6f0914a2f0bf651b8 (diff)
error-handling correctness fix
-rwxr-xr-xsrc/mariadb-push-replica.sh27
1 files changed, 19 insertions, 8 deletions
diff --git a/src/mariadb-push-replica.sh b/src/mariadb-push-replica.sh
index cdb7d72..5e18757 100755
--- a/src/mariadb-push-replica.sh
+++ b/src/mariadb-push-replica.sh
@@ -63,7 +63,7 @@ check_db()
63{ 63{
64 show_hostnames 64 show_hostnames
65 mariadb --skip-reconnect -t <<END 65 mariadb --skip-reconnect -t <<END
66select @@hostname, @@server_id, @@gtid_slave_pos, @@sql_log_bin; 66select user(), @@hostname, @@server_id, @@gtid_slave_pos, @@sql_log_bin;
67END 67END
68} 68}
69 69
@@ -129,16 +129,13 @@ restore_from_backup()
129 mariabackup_target_dir=/var/mariadb/backup 129 mariabackup_target_dir=/var/mariadb/backup
130 set -e 130 set -e
131 131
132 stop_database_server_and_remove_database_files 132 # stop_database_server_and_remove_database_files
133 133
134 marialog=$(mktemp)
135 exec >"$marialog" 2>&1
136 set -- \ 134 set -- \
137 -u root \ 135 -u root \
138 --target-dir="$mariabackup_target_dir" 136 --target-dir="$mariabackup_target_dir"
139 if mariabackup --move-back "$@" 137 if silent_unless_error mariabackup --move-back "$@"
140 then 138 then
141 tail -v -n2 "$marialog" >&2
142 # Can't believe mariabackup 139 # Can't believe mariabackup
143 # is so primitive as to 140 # is so primitive as to
144 # recommend this chown in its 141 # recommend this chown in its
@@ -147,9 +144,23 @@ restore_from_backup()
147 systemctl start mariadb 144 systemctl start mariadb
148 set_server_id 145 set_server_id
149 else 146 else
150 cat "$marialog" >&2 147 exit $?
151 fi 148 fi
149}
152 150
151silent_unless_error()
152{
153 set -- "$(mktemp)" "$@"
154 if
155 "${@:2}" >"$1" 2>&1
156 then
157 local r=0
158 else
159 local r=$?
160 cat "$1" >&2
161 fi
162 rm "$1"
163 return $r
153} 164}
154 165
155enable_replication() 166enable_replication()
@@ -260,7 +271,7 @@ main()
260 "$replication_user" \ 271 "$replication_user" \
261 "$replication_password" 272 "$replication_password"
262 run_replica check_db 273 run_replica check_db
263 run_primary delete_backup 274 : run_primary delete_backup
264 run_primary check_db 275 run_primary check_db
265} 276}
266 277