Merge lp:~percona-core/percona-xtradb-cluster/bug-1405668-5.5 into lp:percona-xtradb-cluster/5.5

Proposed by Raghavendra D Prabhu
Status: Work in progress
Proposed branch: lp:~percona-core/percona-xtradb-cluster/bug-1405668-5.5
Merge into: lp:percona-xtradb-cluster/5.5
Diff against target: 424 lines (+94/-108)
7 files modified
percona-xtradb-cluster-tests/conf/conf20.cnf-node1 (+1/-1)
percona-xtradb-cluster-tests/conf/conf20.cnf-node2 (+1/-1)
percona-xtradb-cluster-tests/t/xb_galera_sst_advanced-v2.sh (+3/-2)
scripts/clustercheck.sh (+0/-92)
scripts/wsrep_sst_xtrabackup-v2.sh (+71/-10)
sql/wsrep_mysqld.cc (+14/-2)
sql/wsrep_sst.cc (+4/-0)
To merge this branch: bzr merge lp:~percona-core/percona-xtradb-cluster/bug-1405668-5.5
Reviewer Review Type Date Requested Status
Alexey Kopytov (community) Needs Resubmitting
Review via email: mp+247762@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Alexey Kopytov (akopytov) wrote :

Please resubmit on Github.

review: Needs Resubmitting

Unmerged revisions

843. By Raghavendra D Prabhu

Bug#1405985 Port the fixes of lp:1407599 and lp:1405985

842. By Raghavendra D Prabhu

Merge changes from trunk-25-bug-1380697

841. By Raghavendra D Prabhu

Merge trunk-25-bug-1402166

840. By Raghavendra D Prabhu

Merge trunk-25-bug-1380697

839. By Raghavendra D Prabhu

Merge trunk-25-bug-1403566/

838. By Raghavendra D Prabhu

Merge trunk-25-bug-1402338

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'percona-xtradb-cluster-tests/conf/conf20.cnf-node1'
--- percona-xtradb-cluster-tests/conf/conf20.cnf-node1 2014-02-08 14:16:24 +0000
+++ percona-xtradb-cluster-tests/conf/conf20.cnf-node1 2015-01-27 18:30:35 +0000
@@ -15,5 +15,5 @@
15encrypt-key=6F3AD9F428143F133FD7D50D77D91EA415encrypt-key=6F3AD9F428143F133FD7D50D77D91EA4
1616
17[sst]17[sst]
18cpat='.*galera\.cache$\|.*sst_in_progress$\|.*grastate\.dat$\|.*\.err$\|.*\.log$\|.*RPM_UPGRADE_MARKER$\|.*RPM_UPGRADE_HISTORY$\|.*\.borr$\|.*\.brn$'18cpat='.*galera\.cache$\|.*sst_in_progress$\|.*\.sst$\|.*gvwstate\.dat$\|.*grastate\.dat$\|.*\.err$\|.*\.log$\|.*RPM_UPGRADE_MARKER$\|.*RPM_UPGRADE_HISTORY$\|.*\.borr$\|.*\.brn$'
19encrypt=119encrypt=1
2020
=== modified file 'percona-xtradb-cluster-tests/conf/conf20.cnf-node2'
--- percona-xtradb-cluster-tests/conf/conf20.cnf-node2 2014-02-08 14:16:24 +0000
+++ percona-xtradb-cluster-tests/conf/conf20.cnf-node2 2015-01-27 18:30:35 +0000
@@ -15,5 +15,5 @@
15encrypt-key=6F3AD9F428143F133FD7D50D77D91EA415encrypt-key=6F3AD9F428143F133FD7D50D77D91EA4
1616
17[sst]17[sst]
18cpat='.*galera\.cache$\|.*sst_in_progress$\|.*grastate\.dat$\|.*\.err$\|.*\.log$\|.*RPM_UPGRADE_MARKER$\|.*RPM_UPGRADE_HISTORY$\|.*\.borr$\|.*\.brn$'18cpat='.*galera\.cache$\|.*sst_in_progress$\|.*\.sst$\|.*gvwstate\.dat$\|.*grastate\.dat$\|.*\.err$\|.*\.log$\|.*RPM_UPGRADE_MARKER$\|.*RPM_UPGRADE_HISTORY$\|.*\.borr$\|.*\.brn$'
19encrypt=119encrypt=1
2020
=== modified file 'percona-xtradb-cluster-tests/t/xb_galera_sst_advanced-v2.sh'
--- percona-xtradb-cluster-tests/t/xb_galera_sst_advanced-v2.sh 2013-11-28 09:31:22 +0000
+++ percona-xtradb-cluster-tests/t/xb_galera_sst_advanced-v2.sh 2015-01-27 18:30:35 +0000
@@ -12,6 +12,7 @@
12SUSER="root"12SUSER="root"
13SMDSUM="d35d212fdfe9452e711704e3dc3e93cf"13SMDSUM="d35d212fdfe9452e711704e3dc3e93cf"
14EXTRAFILE=${CONF:-}14EXTRAFILE=${CONF:-}
15ADDNLOP=${ADDNLOP:-""}
1516
1617
17if [[ -n ${EXTRAFILE:-} ]];then 18if [[ -n ${EXTRAFILE:-} ]];then
@@ -33,7 +34,7 @@
3334
34vlog "Starting server $node1"35vlog "Starting server $node1"
35MYSQLD_EXTRA_MY_CNF_OPTS="!include $EXTRAFILE1"36MYSQLD_EXTRA_MY_CNF_OPTS="!include $EXTRAFILE1"
36start_server_with_id $node1 --innodb_flush_method=O_DIRECT --innodb_autoinc_lock_mode=2 --innodb_locks_unsafe_for_binlog=1 --wsrep-slave-threads=2 --innodb_file_per_table --binlog-format=ROW --wsrep-provider=${MYSQL_BASEDIR}/lib/libgalera_smm.so --wsrep_cluster_address=gcomm:// --wsrep_sst_receive_address=$recv_addr1 --wsrep_node_incoming_address=$ADDR --wsrep_provider_options="gmcast.listen_addr=tcp://$listen_addr1${pdebug}" --wsrep_sst_method=xtrabackup-v2 --wsrep_sst_auth=$SUSER:$SSTPASS --wsrep_node_address=$ADDR $debug 37start_server_with_id $node1 --innodb_flush_method=O_DIRECT --innodb_autoinc_lock_mode=2 --innodb_locks_unsafe_for_binlog=1 --wsrep-slave-threads=2 --innodb_file_per_table --binlog-format=ROW --wsrep-provider=${MYSQL_BASEDIR}/lib/libgalera_smm.so --wsrep_cluster_address=gcomm:// --wsrep_sst_receive_address=$recv_addr1 --wsrep_node_incoming_address=$ADDR --wsrep_provider_options="gmcast.listen_addr=tcp://$listen_addr1${pdebug}" --wsrep_sst_method=xtrabackup-v2 --wsrep_sst_auth=$SUSER:$SSTPASS --wsrep_node_address=$ADDR $debug $ADDNLOP
3738
38vlog "Sleeping before loading data"39vlog "Sleeping before loading data"
39sleep 840sleep 8
@@ -48,7 +49,7 @@
4849
49vlog "Starting server $node2"50vlog "Starting server $node2"
50MYSQLD_EXTRA_MY_CNF_OPTS="!include $EXTRAFILE2"51MYSQLD_EXTRA_MY_CNF_OPTS="!include $EXTRAFILE2"
51start_server_with_id $node2 --innodb_flush_method=O_DIRECT --innodb_autoinc_lock_mode=2 --innodb_locks_unsafe_for_binlog=1 --wsrep-slave-threads=2 --innodb_file_per_table --binlog-format=ROW --wsrep-provider=${MYSQL_BASEDIR}/lib/libgalera_smm.so --wsrep_cluster_address=gcomm://$listen_addr1 --wsrep_sst_receive_address=$recv_addr2 --wsrep_node_incoming_address=$ADDR --wsrep_provider_options="gmcast.listen_addr=tcp://$listen_addr2${pdebug}" --wsrep_sst_method=xtrabackup-v2 --wsrep_sst_auth=$SUSER:$SSTPASS --wsrep_node_address=$ADDR $debug52start_server_with_id $node2 --innodb_flush_method=O_DIRECT --innodb_autoinc_lock_mode=2 --innodb_locks_unsafe_for_binlog=1 --wsrep-slave-threads=2 --innodb_file_per_table --binlog-format=ROW --wsrep-provider=${MYSQL_BASEDIR}/lib/libgalera_smm.so --wsrep_cluster_address=gcomm://$listen_addr1 --wsrep_sst_receive_address=$recv_addr2 --wsrep_node_incoming_address=$ADDR --wsrep_provider_options="gmcast.listen_addr=tcp://$listen_addr2${pdebug}" --wsrep_sst_method=xtrabackup-v2 --wsrep_sst_auth=$SUSER:$SSTPASS --wsrep_node_address=$ADDR $debug $ADDNLOP
52switch_server $node253switch_server $node2
5354
54# The password propagates through SST55# The password propagates through SST
5556
=== added file 'scripts/clustercheck.sh'
--- scripts/clustercheck.sh 1970-01-01 00:00:00 +0000
+++ scripts/clustercheck.sh 2015-01-27 18:30:35 +0000
@@ -0,0 +1,94 @@
1#!/bin/bash
2#
3# Script to make a proxy (ie HAProxy) capable of monitoring Percona XtraDB Cluster nodes properly
4#
5# Authors:
6# Raghavendra Prabhu <raghavendra.prabhu@percona.com>
7# Olaf van Zandwijk <olaf.vanzandwijk@nedap.com>
8#
9# Based on the original script from Unai Rodriguez and Olaf (https://github.com/olafz/percona-clustercheck)
10#
11# Grant privileges required:
12# GRANT PROCESS ON *.* TO 'clustercheckuser'@'localhost' IDENTIFIED BY 'clustercheckpassword!';
13
14if [[ $1 == '-h' || $1 == '--help' ]];then
15 echo "Usage: $0 <user> <pass> <available_when_donor=0|1> <log_file> <available_when_readonly=0|1> <defaults_extra_file>"
16 exit
17fi
18
19MYSQL_USERNAME="${1-clustercheckuser}"
20MYSQL_PASSWORD="${2-clustercheckpassword!}"
21AVAILABLE_WHEN_DONOR=${3:-0}
22ERR_FILE="${4:-/dev/null}"
23AVAILABLE_WHEN_READONLY=${5:-1}
24DEFAULTS_EXTRA_FILE=${6:-/etc/my.cnf}
25#Timeout exists for instances where mysqld may be hung
26TIMEOUT=10
27
28EXTRA_ARGS=""
29if [[ -n "$MYSQL_USERNAME" ]]; then
30 EXTRA_ARGS="$EXTRA_ARGS --user=${MYSQL_USERNAME}"
31fi
32if [[ -n "$MYSQL_PASSWORD" ]]; then
33 EXTRA_ARGS="$EXTRA_ARGS --password=${MYSQL_PASSWORD}"
34fi
35if [[ -r $DEFAULTS_EXTRA_FILE ]];then
36 MYSQL_CMDLINE="mysql --defaults-extra-file=$DEFAULTS_EXTRA_FILE -nNE --connect-timeout=$TIMEOUT \
37 ${EXTRA_ARGS}"
38else
39 MYSQL_CMDLINE="mysql -nNE --connect-timeout=$TIMEOUT ${EXTRA_ARGS}"
40fi
41#
42# Perform the query to check the wsrep_local_state
43#
44WSREP_STATUS=($($MYSQL_CMDLINE -e "SHOW GLOBAL STATUS LIKE 'wsrep_%';" \
45 2>${ERR_FILE} | grep -A 1 -E 'wsrep_local_state$|wsrep_cluster_status$' \
46 | sed -n -e '2p' -e '5p' | tr '\n' ' '))
47
48if [[ ${WSREP_STATUS[1]} == 'Primary' && ( ${WSREP_STATUS[0]} -eq 4 || \
49 ( ${WSREP_STATUS[0]} -eq 2 && $AVAILABLE_WHEN_DONOR -eq 1 ) ) ]]
50then
51
52 # Check only when set to 0 to avoid latency in response.
53 if [[ $AVAILABLE_WHEN_READONLY -eq 0 ]];then
54 READ_ONLY=$($MYSQL_CMDLINE -e "SHOW GLOBAL VARIABLES LIKE 'read_only';" \
55 2>${ERR_FILE} | tail -1 2>>${ERR_FILE})
56
57 if [[ "${READ_ONLY}" == "ON" ]];then
58 # Percona XtraDB Cluster node local state is 'Synced', but it is in
59 # read-only mode. The variable AVAILABLE_WHEN_READONLY is set to 0.
60 # => return HTTP 503
61 # Shell return-code is 1
62 echo -en "HTTP/1.1 503 Service Unavailable\r\n"
63 echo -en "Content-Type: text/plain\r\n"
64 echo -en "Connection: close\r\n"
65 echo -en "Content-Length: 43\r\n"
66 echo -en "\r\n"
67 echo -en "Percona XtraDB Cluster Node is read-only.\r\n"
68 sleep 0.1
69 exit 1
70 fi
71
72 fi
73 # Percona XtraDB Cluster node local state is 'Synced' => return HTTP 200
74 # Shell return-code is 0
75 echo -en "HTTP/1.1 200 OK\r\n"
76 echo -en "Content-Type: text/plain\r\n"
77 echo -en "Connection: close\r\n"
78 echo -en "Content-Length: 40\r\n"
79 echo -en "\r\n"
80 echo -en "Percona XtraDB Cluster Node is synced.\r\n"
81 sleep 0.1
82 exit 0
83else
84 # Percona XtraDB Cluster node local state is not 'Synced' => return HTTP 503
85 # Shell return-code is 1
86 echo -en "HTTP/1.1 503 Service Unavailable\r\n"
87 echo -en "Content-Type: text/plain\r\n"
88 echo -en "Connection: close\r\n"
89 echo -en "Content-Length: 57\r\n"
90 echo -en "\r\n"
91 echo -en "Percona XtraDB Cluster Node is not synced or non-PRIM. \r\n"
92 sleep 0.1
93 exit 1
94fi
095
=== removed file 'scripts/clustercheck.sh'
--- scripts/clustercheck.sh 2014-08-30 06:05:25 +0000
+++ scripts/clustercheck.sh 1970-01-01 00:00:00 +0000
@@ -1,92 +0,0 @@
1#!/bin/bash
2#
3# Script to make a proxy (ie HAProxy) capable of monitoring Percona XtraDB Cluster nodes properly
4#
5# Authors:
6# Raghavendra Prabhu <raghavendra.prabhu@percona.com>
7# Olaf van Zandwijk <olaf.vanzandwijk@nedap.com>
8#
9# Based on the original script from Unai Rodriguez and Olaf (https://github.com/olafz/percona-clustercheck)
10#
11# Grant privileges required:
12# GRANT PROCESS ON *.* TO 'clustercheckuser'@'localhost' IDENTIFIED BY 'clustercheckpassword!';
13
14if [[ $1 == '-h' || $1 == '--help' ]];then
15 echo "Usage: $0 <user> <pass> <available_when_donor=0|1> <log_file> <available_when_readonly=0|1> <defaults_extra_file>"
16 exit
17fi
18
19MYSQL_USERNAME="${1-clustercheckuser}"
20MYSQL_PASSWORD="${2-clustercheckpassword!}"
21AVAILABLE_WHEN_DONOR=${3:-0}
22ERR_FILE="${4:-/dev/null}"
23AVAILABLE_WHEN_READONLY=${5:-1}
24DEFAULTS_EXTRA_FILE=${6:-/etc/my.cnf}
25#Timeout exists for instances where mysqld may be hung
26TIMEOUT=10
27
28EXTRA_ARGS=""
29if [[ -n "$MYSQL_USERNAME" ]]; then
30 EXTRA_ARGS="$EXTRA_ARGS --user=${MYSQL_USERNAME}"
31fi
32if [[ -n "$MYSQL_PASSWORD" ]]; then
33 EXTRA_ARGS="$EXTRA_ARGS --password=${MYSQL_PASSWORD}"
34fi
35if [[ -r $DEFAULTS_EXTRA_FILE ]];then
36 MYSQL_CMDLINE="mysql --defaults-extra-file=$DEFAULTS_EXTRA_FILE -nNE --connect-timeout=$TIMEOUT \
37 ${EXTRA_ARGS}"
38else
39 MYSQL_CMDLINE="mysql -nNE --connect-timeout=$TIMEOUT ${EXTRA_ARGS}"
40fi
41#
42# Perform the query to check the wsrep_local_state
43#
44WSREP_STATUS=$($MYSQL_CMDLINE -e "SHOW STATUS LIKE 'wsrep_local_state';" \
45 2>${ERR_FILE} | tail -1 2>>${ERR_FILE})
46
47if [[ "${WSREP_STATUS}" == "4" ]] || [[ "${WSREP_STATUS}" == "2" && ${AVAILABLE_WHEN_DONOR} == 1 ]]
48then
49
50 # Check only when set to 0 to avoid latency in response.
51 if [[ $AVAILABLE_WHEN_READONLY -eq 0 ]];then
52 READ_ONLY=$($MYSQL_CMDLINE -e "SHOW GLOBAL VARIABLES LIKE 'read_only';" \
53 2>${ERR_FILE} | tail -1 2>>${ERR_FILE})
54
55 if [[ "${READ_ONLY}" == "ON" ]];then
56 # Percona XtraDB Cluster node local state is 'Synced', but it is in
57 # read-only mode. The variable AVAILABLE_WHEN_READONLY is set to 0.
58 # => return HTTP 503
59 # Shell return-code is 1
60 echo -en "HTTP/1.1 503 Service Unavailable\r\n"
61 echo -en "Content-Type: text/plain\r\n"
62 echo -en "Connection: close\r\n"
63 echo -en "Content-Length: 43\r\n"
64 echo -en "\r\n"
65 echo -en "Percona XtraDB Cluster Node is read-only.\r\n"
66 sleep 0.1
67 exit 1
68 fi
69
70 fi
71 # Percona XtraDB Cluster node local state is 'Synced' => return HTTP 200
72 # Shell return-code is 0
73 echo -en "HTTP/1.1 200 OK\r\n"
74 echo -en "Content-Type: text/plain\r\n"
75 echo -en "Connection: close\r\n"
76 echo -en "Content-Length: 40\r\n"
77 echo -en "\r\n"
78 echo -en "Percona XtraDB Cluster Node is synced.\r\n"
79 sleep 0.1
80 exit 0
81else
82 # Percona XtraDB Cluster node local state is not 'Synced' => return HTTP 503
83 # Shell return-code is 1
84 echo -en "HTTP/1.1 503 Service Unavailable\r\n"
85 echo -en "Content-Type: text/plain\r\n"
86 echo -en "Connection: close\r\n"
87 echo -en "Content-Length: 44\r\n"
88 echo -en "\r\n"
89 echo -en "Percona XtraDB Cluster Node is not synced.\r\n"
90 sleep 0.1
91 exit 1
92fi
930
=== modified file 'scripts/wsrep_sst_xtrabackup-v2.sh'
--- scripts/wsrep_sst_xtrabackup-v2.sh 2014-09-04 18:46:14 +0000
+++ scripts/wsrep_sst_xtrabackup-v2.sh 2015-01-27 18:30:35 +0000
@@ -29,6 +29,8 @@
29encrypt=029encrypt=0
30nproc=130nproc=1
31ecode=031ecode=0
32ssyslog=""
33ssystag=""
32XTRABACKUP_PID=""34XTRABACKUP_PID=""
33SST_PORT=""35SST_PORT=""
34REMOTEIP=""36REMOTEIP=""
@@ -308,6 +310,15 @@
308 iapts=$(parse_cnf sst inno-apply-opts "")310 iapts=$(parse_cnf sst inno-apply-opts "")
309 impts=$(parse_cnf sst inno-move-opts "")311 impts=$(parse_cnf sst inno-move-opts "")
310 stimeout=$(parse_cnf sst sst-initial-timeout 100)312 stimeout=$(parse_cnf sst sst-initial-timeout 100)
313 ssyslog=$(parse_cnf sst sst-syslog 0)
314 ssystag=$(parse_cnf mysqld_safe syslog-tag "${SST_SYSLOG_TAG:-}")
315 ssystag+="-"
316
317 if [[ $ssyslog -ne -1 ]];then
318 if my_print_defaults -c $WSREP_SST_OPT_CONF mysqld_safe | tr '_' '-' | grep -q -- "--syslog";then
319 ssyslog=1
320 fi
321 fi
311}322}
312323
313get_stream()324get_stream()
@@ -363,6 +374,14 @@
363 if [[ -n ${STATDIR:-} ]];then 374 if [[ -n ${STATDIR:-} ]];then
364 [[ -d $STATDIR ]] && rm -rf $STATDIR375 [[ -d $STATDIR ]] && rm -rf $STATDIR
365 fi376 fi
377
378 sleep 10
379
380 # Final cleanup
381 pgid=$(ps -o pgid= $$ | grep -o '[0-9]*')
382 kill -TERM -$pgid || true
383
384 exit $estatus
366}385}
367386
368check_pid()387check_pid()
@@ -403,6 +422,14 @@
403 if [[ -n $itmpdir ]];then 422 if [[ -n $itmpdir ]];then
404 [[ -d $itmpdir ]] && rm -rf $itmpdir || true423 [[ -d $itmpdir ]] && rm -rf $itmpdir || true
405 fi424 fi
425
426 sleep 10
427
428 # Final cleanup
429 pgid=$(ps -o pgid= $$ | grep -o '[0-9]*')
430 kill -TERM -$pgid || true
431
432 exit $estatus
406}433}
407434
408kill_xtrabackup()435kill_xtrabackup()
@@ -551,19 +578,48 @@
551578
552read_cnf579read_cnf
553setup_ports580setup_ports
581
582if ${INNOBACKUPEX_BIN} /tmp --help 2>/dev/null | grep -q -- '--version-check'; then
583 disver="--no-version-check"
584fi
585
586
587INNOEXTRA=""
588
589if [[ $ssyslog -eq 1 ]];then
590
591 if [[ ! -x `which logger` ]];then
592 wsrep_log_error "logger not in path: $PATH. Ignoring"
593 else
594
595 wsrep_log_info "Logging all stderr of SST/Innobackupex to syslog"
596
597 exec 2> >(logger -p daemon.err -t ${ssystag}wsrep-sst-$WSREP_SST_OPT_ROLE)
598
599 wsrep_log_error()
600 {
601 logger -p daemon.err -t ${ssystag}wsrep-sst-$WSREP_SST_OPT_ROLE "$@"
602 }
603
604 wsrep_log_info()
605 {
606 logger -p daemon.info -t ${ssystag}wsrep-sst-$WSREP_SST_OPT_ROLE "$@"
607 }
608
609 INNOAPPLY="${INNOBACKUPEX_BIN} $disver $iapts --apply-log \$rebuildcmd \${DATA} 2>&1 | logger -p daemon.err -t ${ssystag}innobackupex-apply "
610 INNOMOVE="${INNOBACKUPEX_BIN} --defaults-file=${WSREP_SST_OPT_CONF} $disver $impts --move-back --force-non-empty-directories \${DATA} 2>&1 | logger -p daemon.err -t ${ssystag}innobackupex-move "
611 INNOBACKUP="${INNOBACKUPEX_BIN} --defaults-file=${WSREP_SST_OPT_CONF} $disver $iopts \$tmpopts \$INNOEXTRA --galera-info --stream=\$sfmt \$itmpdir 2> >(logger -p daemon.err -t ${ssystag}innobackupex-backup)"
612 fi
613
614else
615 INNOAPPLY="${INNOBACKUPEX_BIN} $disver $iapts --apply-log \$rebuildcmd \${DATA} &>\${DATA}/innobackup.prepare.log"
616 INNOMOVE="${INNOBACKUPEX_BIN} --defaults-file=${WSREP_SST_OPT_CONF} $disver $impts --move-back --force-non-empty-directories \${DATA} &>\${DATA}/innobackup.move.log"
617 INNOBACKUP="${INNOBACKUPEX_BIN} --defaults-file=${WSREP_SST_OPT_CONF} $disver $iopts \$tmpopts \$INNOEXTRA --galera-info --stream=\$sfmt \$itmpdir 2>\${DATA}/innobackup.backup.log"
618fi
619
554get_stream620get_stream
555get_transfer621get_transfer
556622
557if ${INNOBACKUPEX_BIN} /tmp --help | grep -q -- '--version-check'; then
558 disver="--no-version-check"
559fi
560
561
562INNOEXTRA=""
563INNOAPPLY="${INNOBACKUPEX_BIN} $disver $iapts --apply-log \$rebuildcmd \${DATA} &>\${DATA}/innobackup.prepare.log"
564INNOMOVE="${INNOBACKUPEX_BIN} --defaults-file=${WSREP_SST_OPT_CONF} $disver $impts --move-back --force-non-empty-directories \${DATA} &>\${DATA}/innobackup.move.log"
565INNOBACKUP="${INNOBACKUPEX_BIN} --defaults-file=${WSREP_SST_OPT_CONF} $disver $iopts \$tmpopts \$INNOEXTRA --galera-info --stream=\$sfmt \$itmpdir 2>\${DATA}/innobackup.backup.log"
566
567if [ "$WSREP_SST_OPT_ROLE" = "donor" ]623if [ "$WSREP_SST_OPT_ROLE" = "donor" ]
568then624then
569 trap cleanup_donor EXIT625 trap cleanup_donor EXIT
@@ -810,6 +866,11 @@
810866
811 get_proc867 get_proc
812868
869 if [[ ! -s ${DATA}/xtrabackup_checkpoints ]];then
870 wsrep_log_error "xtrabackup_checkpoints missing, failed innobackupex/SST on donor"
871 exit 2
872 fi
873
813 # Rebuild indexes for compact backups874 # Rebuild indexes for compact backups
814 if grep -q 'compact = 1' ${DATA}/xtrabackup_checkpoints;then 875 if grep -q 'compact = 1' ${DATA}/xtrabackup_checkpoints;then
815 wsrep_log_info "Index compaction detected"876 wsrep_log_info "Index compaction detected"
816877
=== modified file 'sql/wsrep_mysqld.cc'
--- sql/wsrep_mysqld.cc 2014-08-25 18:02:27 +0000
+++ sql/wsrep_mysqld.cc 2015-01-27 18:30:35 +0000
@@ -1375,13 +1375,25 @@
1375int wsrep_to_isolation_begin(THD *thd, char *db_, char *table_,1375int wsrep_to_isolation_begin(THD *thd, char *db_, char *table_,
1376 const TABLE_LIST* table_list)1376 const TABLE_LIST* table_list)
1377{1377{
13781378 LEX *lex;
1379 /*1379 /*
1380 No isolation for applier or replaying threads.1380 No isolation for applier or replaying threads.
1381 */1381 */
1382 if (thd->wsrep_exec_mode == REPL_RECV) return 0;1382 if (thd->wsrep_exec_mode == REPL_RECV) return 0;
13831383
1384 int ret= 0;1384 lex = thd->lex;
1385 if (!wsrep_replicate_myisam && lex->create_info.db_type && lex->create_info.db_type->db_type == DB_TYPE_MYISAM)
1386 {
1387 if (db_) {
1388 WSREP_INFO("Cannot replicate MyISAM DDL for %s.%s with wsrep_replicate_myisam OFF", db_, table_);
1389 } else {
1390 WSREP_INFO("Cannot replicate MyISAM DDL with wsrep_replicate_myisam OFF");
1391 }
1392
1393 return 0;
1394 }
1395
1396 int ret= 0;
1385 mysql_mutex_lock(&thd->LOCK_wsrep_thd);1397 mysql_mutex_lock(&thd->LOCK_wsrep_thd);
13861398
1387 if (thd->wsrep_conflict_state == MUST_ABORT)1399 if (thd->wsrep_conflict_state == MUST_ABORT)
13881400
=== modified file 'sql/wsrep_sst.cc'
--- sql/wsrep_sst.cc 2015-01-09 18:57:00 +0000
+++ sql/wsrep_sst.cc 2015-01-27 18:30:35 +0000
@@ -384,6 +384,10 @@
384 {384 {
385 WSREP_ERROR("Failed to read uuid:seqno from joiner script.");385 WSREP_ERROR("Failed to read uuid:seqno from joiner script.");
386 if (proc.error()) err = proc.error();386 if (proc.error()) err = proc.error();
387 }
388 else if ((err=proc.error()))
389 {
390 WSREP_ERROR("SST script aborted with error %d (%s)", err,strerror(err));
387 }391 }
388 else392 else
389 {393 {

Subscribers

People subscribed via source and target branches

to all changes: