[MDEV-13968] sst fails with "WSREP_SST_OPT_PORT: readonly variable" Created: 2017-09-30  Updated: 2018-05-14  Resolved: 2017-10-19

Status: Closed
Project: MariaDB Server
Component/s: Galera SST
Affects Version/s: 10.1.28, 10.2.9
Fix Version/s: 10.2.10, 10.0.36-galera

Type: Bug Priority: Critical
Reporter: Andrii Nikitin (Inactive) Assignee: Sergei Golubchik
Resolution: Fixed Votes: 1
Labels: None

Issue Links:
Problem/Incident
causes MDEV-14299 /usr//bin/wsrep_sst_xtrabackup-v2: li... Closed
Relates
relates to MDEV-14030 Remove or Merge wsrep_sst_mariabackup Closed
Sprint: 10.2.10

 Description   

Problem happens if both --address and --port are passed to sst script and address contains port.

2017-09-30 13:08:50 139710282025728 [Note] WSREP: wsrep_notify_cmd is not defined, skipping notification.
/usr//bin/wsrep_sst_common: line 89: WSREP_SST_OPT_PORT: readonly variable
2017-09-30 13:08:50 139710282025728 [ERROR] WSREP: Process completed with error: wsrep_sst_mysqldump --address '192.168.1.183:3307' --port '3307' --local-port '3306' --socket '/var/run/mysqld/mysqld.sock'   --gtid '9587a0be-a5b0-11e7-ab7b-2b5aa1592648:0' --gtid-domain-id '0': 1 (Operation not permitted)
2017-09-30 13:08:50 139710282025728 [ERROR] WSREP: Try 1/3: 'wsrep_sst_mysqldump --address '192.168.1.183:3307' --port '3307' --local-port '3306' --socket '/var/run/mysqld/mysqld.sock'   --gtid '9587a0be-a5b0-11e7-ab7b-2b5aa1592648:0' --gtid-domain-id '0'' failed: 1 (Operation not permitted)
/usr//bin/wsrep_sst_common: line 89: WSREP_SST_OPT_PORT: readonly variable
2017-09-30 13:08:51 139710282025728 [ERROR] WSREP: Process completed with error: wsrep_sst_mysqldump --address '192.168.1.183:3307' --port '3307' --local-port '3306' --socket '/var/run/mysqld/mysqld.sock'   --gtid '9587a0be-a5b0-11e7-ab7b-2b5aa1592648:0' --gtid-domain-id '0': 1 (Operation not permitted)
2017-09-30 13:08:51 139710282025728 [ERROR] WSREP: Try 2/3: 'wsrep_sst_mysqldump --address '192.168.1.183:3307' --port '3307' --local-port '3306' --socket '/var/run/mysqld/mysqld.sock'   --gtid '9587a0be-a5b0-11e7-ab7b-2b5aa1592648:0' --gtid-domain-id '0'' failed: 1 (Operation not permitted)
/usr//bin/wsrep_sst_common: line 89: WSREP_SST_OPT_PORT: readonly variable
2017-09-30 13:08:52 139710282025728 [ERROR] WSREP: Process completed with error: wsrep_sst_mysqldump --address '192.168.1.183:3307' --port '3307' --local-port '3306' --socket '/var/run/mysqld/mysqld.sock'   --gtid '9587a0be-a5b0-11e7-ab7b-2b5aa1592648:0' --gtid-domain-id '0': 1 (Operation not permitted)
2017-09-30 13:08:52 139710282025728 [ERROR] WSREP: Try 3/3: 'wsrep_sst_mysqldump --address '192.168.1.183:3307' --port '3307' --local-port '3306' --socket '/var/run/mysqld/mysqld.sock'   --gtid '9587a0be-a5b0-11e7-ab7b-2b5aa1592648:0' --gtid-domain-id '0'' failed: 1 (Operation not permitted)



 Comments   
Comment by Andrii Nikitin (Inactive) [ 2017-09-30 ]

Suggested fix:

$ diff wsrep_sst_common.bug  wsrep_sst_common.fixed
48c48
<         readonly WSREP_SST_OPT_PORT=$(echo $WSREP_SST_OPT_ADDR | \
---
>         readonly __WSREP_SST_OPT_ADDRESS_PORT=$(echo $WSREP_SST_OPT_ADDR | \
125a126,139
> 
> 
> # if both --port and --address contain port we ensure that it equals
> # if port is specified only in --address we assign it to WSREP_SST_OPT_PORT
> set +u
> if [ ! -z "$__WSREP_SST_OPT_ADDRESS_PORT" ] && [ ! -z "$WSREP_SST_OPT_PORT" ] ; then
>     if [ "$__WSREP_SST_OPT_ADDRESS_PORT" != "$WSREP_SST_OPT_PORT" ] ; then
>         ( >&2 echo "port in --port doesn\'t match port in --address ($WSREP_SST_OPT_PORT) vs ($__WSREP_SST_OPT_ADDRESS_PORT)" )
>         exit 1
>     fi
> elif [ -z "$WSREP_SST_OPT_PORT" ] && [ ! -z "$__WSREP_SST_OPT_ADDRESS_PORT" ] ; then
>     readonly WSREP_SST_OPT_PORT="$__WSREP_SST_OPT_ADDRESS_PORT"
> fi
> set -u

Generated at Thu Feb 08 08:09:48 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.