summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2018-08-21 16:52:59 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2018-08-21 16:52:59 +0300
commitb0ef1b388bff28b93bfdf83a97723a56c869ca34 (patch)
tree922b163e213099181d5f56d27d7d2527cd677c17 /scripts
parent9258097fa3617b720b2b518060c0d09a00455051 (diff)
downloadmariadb-git-b0ef1b388bff28b93bfdf83a97723a56c869ca34.tar.gz
After-merge fix: Revert MDEV-15511
My conflict resolution for the script did not work out after all, and apparently I was testing a wrong version. Revert MDEV-15511 from MariaDB 10.2 for now.
Diffstat (limited to 'scripts')
-rw-r--r--scripts/wsrep_sst_rsync.sh80
1 files changed, 14 insertions, 66 deletions
diff --git a/scripts/wsrep_sst_rsync.sh b/scripts/wsrep_sst_rsync.sh
index 2824593a0a9..88b1352db2e 100644
--- a/scripts/wsrep_sst_rsync.sh
+++ b/scripts/wsrep_sst_rsync.sh
@@ -41,8 +41,6 @@ cleanup_joiner()
kill -9 $RSYNC_REAL_PID >/dev/null 2>&1 || \
:
rm -rf "$RSYNC_CONF"
- rm -f "$STUNNEL_CONF"
- rm -f "$STUNNEL_PID"
rm -rf "$MAGIC_FILE"
rm -rf "$RSYNC_PID"
wsrep_log_info "Joiner cleanup done."
@@ -70,7 +68,7 @@ check_pid_and_port()
local port_info="$(sockstat -46lp ${rsync_port} 2>/dev/null | \
grep ":${rsync_port}")"
local is_rsync="$(echo $port_info | \
- grep -wE '[[:space:]]\+(rsync|stunnel)[[:space:]]\+'"$rsync_pid" 2>/dev/null)"
+ grep '[[:space:]]\+rsync[[:space:]]\+'"$rsync_pid" 2>/dev/null)"
;;
*)
if ! which lsof > /dev/null; then
@@ -81,7 +79,7 @@ check_pid_and_port()
local port_info="$(lsof -i :$rsync_port -Pn 2>/dev/null | \
grep "(LISTEN)")"
local is_rsync="$(echo $port_info | \
- grep -wE '^(rsync|stunnel)[[:space:]]\+'"$rsync_pid" 2>/dev/null)"
+ grep -w '^rsync[[:space:]]\+'"$rsync_pid" 2>/dev/null)"
;;
esac
@@ -121,12 +119,6 @@ is_local_ip()
$get_addr_bin | grep "$address" > /dev/null
}
-STUNNEL_CONF="$WSREP_SST_OPT_DATA/stunnel.conf"
-rm -f "$STUNNEL_CONF"
-
-STUNNEL_PID="$WSREP_SST_OPT_DATA/stunnel.pid"
-rm -f "$STUNNEL_PID"
-
MAGIC_FILE="$WSREP_SST_OPT_DATA/rsync_sst_complete"
rm -rf "$MAGIC_FILE"
@@ -164,28 +156,9 @@ fi
FILTER="-f '- /lost+found' -f '- /.fseventsd' -f '- /.Trashes'
-f '+ /wsrep_sst_binlog.tar' -f '+ /ib_lru_dump' -f '+ /ibdata*' -f '+ /*/' -f '- /*'"
-SSTKEY=$(parse_cnf sst tkey "")
-SSTCERT=$(parse_cnf sst tcert "")
-STUNNEL=""
-if [ -f "$SSTKEY" ] && [ -f "$SSTCERT" ] && wsrep_check_programs stunnel
-then
- STUNNEL="stunnel ${STUNNEL_CONF}"
-fi
-
if [ "$WSREP_SST_OPT_ROLE" = "donor" ]
then
-cat << EOF > "$STUNNEL_CONF"
-CApath = ${SSTCERT%/*}
-foreground = yes
-pid = $STUNNEL_PID
-debug = warning
-client = yes
-connect = ${WSREP_SST_OPT_ADDR%/*}
-TIMEOUTclose = 0
-verifyPeer = yes
-EOF
-
if [ $WSREP_SST_OPT_BYPASS -eq 0 ]
then
@@ -247,8 +220,7 @@ EOF
# first, the normal directories, so that we can detect incompatible protocol
RC=0
- eval rsync ${STUNNEL:+--rsh="$STUNNEL"} \
- --owner --group --perms --links --specials \
+ eval rsync --owner --group --perms --links --specials \
--ignore-times --inplace --dirs --delete --quiet \
$WHOLE_FILE_OPT ${FILTER} "$WSREP_SST_OPT_DATA/" \
rsync://$WSREP_SST_OPT_ADDR >&2 || RC=$?
@@ -271,8 +243,7 @@ EOF
fi
# second, we transfer InnoDB log files
- rsync ${STUNNEL:+--rsh="$STUNNEL"} \
- --owner --group --perms --links --specials \
+ rsync --owner --group --perms --links --specials \
--ignore-times --inplace --dirs --delete --quiet \
$WHOLE_FILE_OPT -f '+ /ib_logfile[0-9]*' -f '- **' "$WSREP_LOG_DIR/" \
rsync://$WSREP_SST_OPT_ADDR-log_dir >&2 || RC=$?
@@ -292,8 +263,7 @@ EOF
find . -maxdepth 1 -mindepth 1 -type d -not -name "lost+found" \
-print0 | xargs -I{} -0 -P $count \
- rsync ${STUNNEL:+--rsh="$STUNNEL"} \
- --owner --group --perms --links --specials \
+ rsync --owner --group --perms --links --specials \
--ignore-times --inplace --recursive --delete --quiet \
$WHOLE_FILE_OPT --exclude '*/ib_logfile*' "$WSREP_SST_OPT_DATA"/{}/ \
rsync://$WSREP_SST_OPT_ADDR/{} >&2 || RC=$?
@@ -316,8 +286,7 @@ EOF
echo "continue" # now server can resume updating data
echo "$STATE" > "$MAGIC_FILE"
- rsync ${STUNNEL:+--rsh="$STUNNEL"} \
- --archive --quiet --checksum "$MAGIC_FILE" rsync://$WSREP_SST_OPT_ADDR
+ rsync --archive --quiet --checksum "$MAGIC_FILE" rsync://$WSREP_SST_OPT_ADDR
echo "done $STATE"
@@ -372,41 +341,20 @@ $SILENT
path = $WSREP_LOG_DIR
EOF
-cat << EOF > "$STUNNEL_CONF"
-key = $SSTKEY
-cert = $SSTCERT
-foreground = yes
-pid = $STUNNEL_PID
-debug = warning
-client = no
-[rsync]
-accept = $RSYNC_PORT
-exec = $(which rsync)
-execargs = rsync --server --daemon --config=$RSYNC_CONF .
-EOF
-
# rm -rf "$DATA"/ib_logfile* # we don't want old logs around
readonly RSYNC_PORT=${WSREP_SST_OPT_PORT:-4444}
-
- if [ -z "$STUNNEL" ]
+ # If the IP is local listen only in it
+ if is_local_ip "$RSYNC_ADDR"
then
- # If the IP is local listen only in it
- if is_local_ip "$RSYNC_ADDR"
- then
- rsync --daemon --no-detach --address "$RSYNC_ADDR" --port "$RSYNC_PORT" --config "$RSYNC_CONF" &
- else
- # Not local, possibly a NAT, listen in all interfaces
- rsync --daemon --no-detach --port "$RSYNC_PORT" --config "$RSYNC_CONF" &
- # Overwrite address with all
- RSYNC_ADDR=""
- fi
- RSYNC_REAL_PID=$!
+ rsync --daemon --no-detach --address "$RSYNC_ADDR" --port "$RSYNC_PORT" --config "$RSYNC_CONF" &
else
- stunnel "$STUNNEL_CONF" &
- RSYNC_REAL_PID=$!
- RSYNC_PID=$STUNNEL_PID
+ # Not local, possibly a NAT, listen in all interface
+ rsync --daemon --no-detach --port "$RSYNC_PORT" --config "$RSYNC_CONF" &
+ # Overwrite address with all
+ RSYNC_ADDR="*"
fi
+ RSYNC_REAL_PID=$!
until check_pid_and_port "$RSYNC_PID" "$RSYNC_REAL_PID" "$RSYNC_ADDR" "$RSYNC_PORT"
do