ports/databases/mariadb/patches/patch-scripts_wsrep_sst_rsync_sh

40 lines
1.9 KiB
Text

Index: scripts/wsrep_sst_rsync.sh
--- scripts/wsrep_sst_rsync.sh.orig
+++ scripts/wsrep_sst_rsync.sh
@@ -117,9 +117,14 @@ check_pid_and_port()
fi
port_info=$(sockstat "$opts" "$port" 2>/dev/null | \
grep -E '[[:space:]]LISTEN' | grep -o -E "$filter")
- else
+ elif [ $ss_available -ne 0 ]; then
port_info=$(ss -nlpH "( sport = :$port )" 2>/dev/null | \
grep -F 'users:(' | grep -o -E "$filter")
+ elif [ $fstat_available -ne 0 ]; then
+ port_info=$(fstat -n 2>/dev/null | grep -E "[[:space:]](\\*|\\[?::\\]?):$port\$")
+ else
+ wsrep_log_error "Unknown sockets utility"
+ exit 2 # ENOENT
fi
echo "$port_info" | \
grep -q -E "[[:space:]](\\*|\\[?::\\]?):$port\$" && busy=1
@@ -474,9 +479,9 @@ EOF
# Preparing binlog files for transfer:
wsrep_log_info "Preparing binlog files for transfer:"
tar_type=0
- if tar --help | grep -qw -F -- '--transform'; then
+ if tar --help 2>/dev/null | grep -qw -F -- '--transform'; then
tar_type=1
- elif tar --version | grep -qw -E '^bsdtar'; then
+ elif tar --version 2>/dev/null | grep -qw -E '^bsdtar'; then
tar_type=2
fi
if [ $tar_type -eq 2 ]; then
@@ -974,7 +979,7 @@ EOF
fi
# Extracting binlog files:
wsrep_log_info "Extracting binlog files:"
- if tar --version | grep -qw -E '^bsdtar'; then
+ if tar --version 2>/dev/null | grep -qw -E '^bsdtar'; then
tar -tf "$BINLOG_TAR_FILE" > "$tmpfile" && \
tar -xvf "$BINLOG_TAR_FILE" > /dev/null || RC=$?
else