Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-13968

sst fails with "WSREP_SST_OPT_PORT: readonly variable"

Details

    • 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)
      

      Attachments

        Issue Links

          Activity

            anikitin Andrii Nikitin (Inactive) added a comment - - edited

            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
            

            anikitin Andrii Nikitin (Inactive) added a comment - - edited 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

            People

              serg Sergei Golubchik
              anikitin Andrii Nikitin (Inactive)
              Votes:
              1 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.