|
22 | 22 |
|
23 | 23 | . $(dirname $0)/wsrep_sst_common |
24 | 24 |
|
| 25 | +OS=$(uname) |
25 | 26 | ealgo="" |
26 | 27 | ekey="" |
27 | 28 | ekeyfile="" |
|
82 | 83 | pcmd="pv $pvopts" |
83 | 84 | declare -a RC |
84 | 85 |
|
85 | | -INNOBACKUPEX_BIN=mariabackup |
| 86 | +INNOBACKUPEX_BIN=$(which mariabackup) |
86 | 87 | XBSTREAM_BIN=mbstream |
87 | 88 | XBCRYPT_BIN=xbcrypt # Not available in MariaBackup |
88 | 89 |
|
@@ -327,6 +328,7 @@ read_cnf() |
327 | 328 | rebuild=$(parse_cnf sst rebuild 0) |
328 | 329 | ttime=$(parse_cnf sst time 0) |
329 | 330 | cpat=$(parse_cnf sst cpat '.*galera\.cache$\|.*sst_in_progress$\|.*\.sst$\|.*gvwstate\.dat$\|.*grastate\.dat$\|.*\.err$\|.*\.log$\|.*RPM_UPGRADE_MARKER$\|.*RPM_UPGRADE_HISTORY$') |
| 331 | + [[ $OS == "FreeBSD" ]] && cpat=$(parse_cnf sst cpat '.*galera\.cache$|.*sst_in_progress$|.*\.sst$|.*gvwstate\.dat$|.*grastate\.dat$|.*\.err$|.*\.log$|.*RPM_UPGRADE_MARKER$|.*RPM_UPGRADE_HISTORY$') |
330 | 332 | ealgo=$(parse_cnf xtrabackup encrypt "") |
331 | 333 | ekey=$(parse_cnf xtrabackup encrypt-key "") |
332 | 334 | ekeyfile=$(parse_cnf xtrabackup encrypt-key-file "") |
@@ -527,7 +529,11 @@ wait_for_listen() |
527 | 529 | local MODULE=$3 |
528 | 530 | for i in {1..50} |
529 | 531 | do |
530 | | - ss -p state listening "( sport = :$PORT )" | grep -qE 'socat|nc' && break |
| 532 | +if [ "$OS" = "FreeBSD" ];then |
| 533 | + sockstat -46lp $PORT | grep -qE "^[^ ]* *(socat|nc) *[^ ]* *[^ ]* *[^ ]* *[^ ]*:$PORT" && break |
| 534 | + else |
| 535 | + ss -p state listening "( sport = :$PORT )" | grep -qE 'socat|nc' && break |
| 536 | + fi |
531 | 537 | sleep 0.2 |
532 | 538 | done |
533 | 539 | echo "ready ${ADDR}/${MODULE}//$sst_ver" |
@@ -639,13 +645,12 @@ monitor_process() |
639 | 645 |
|
640 | 646 | while true ; do |
641 | 647 |
|
642 | | - if ! ps --pid "${WSREP_SST_OPT_PARENT}" &>/dev/null; then |
| 648 | + if ! ps -p "${WSREP_SST_OPT_PARENT}" &>/dev/null; then |
643 | 649 | wsrep_log_error "Parent mysqld process (PID:${WSREP_SST_OPT_PARENT}) terminated unexpectedly." |
644 | | - kill -- -"${WSREP_SST_OPT_PARENT}" |
645 | 650 | exit 32 |
646 | 651 | fi |
647 | 652 |
|
648 | | - if ! ps --pid "${sst_stream_pid}" &>/dev/null; then |
| 653 | + if ! ps -p "${sst_stream_pid}" &>/dev/null; then |
649 | 654 | break |
650 | 655 | fi |
651 | 656 |
|
@@ -941,7 +946,11 @@ then |
941 | 946 |
|
942 | 947 |
|
943 | 948 | wsrep_log_info "Cleaning the existing datadir and innodb-data/log directories" |
944 | | - find $ib_home_dir $ib_log_dir $ib_undo_dir $DATA -mindepth 1 -regex $cpat -prune -o -exec rm -rfv {} 1>&2 \+ |
| 949 | +if [ "${OS}" = "FreeBSD" ]; then |
| 950 | + find -E $ib_home_dir $ib_log_dir $ib_undo_dir $DATA -mindepth 1 -prune -regex $cpat -o -exec rm -rfv {} 1>&2 \+ |
| 951 | + else |
| 952 | + find $ib_home_dir $ib_log_dir $ib_undo_dir $DATA -mindepth 1 -prune -regex $cpat -o -exec rm -rfv {} 1>&2 \+ |
| 953 | + fi |
945 | 954 |
|
946 | 955 | tempdir=$(parse_cnf mysqld log-bin "") |
947 | 956 | if [[ -n ${tempdir:-} ]];then |
|
0 commit comments