Behavior of pc.ignore_sb in Galera 3

Bug #1229632 reported by Raghavendra D Prabhu on 2013-09-24
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Galera
Status tracked in 3.x
3.x
Undecided
Teemu Ollakka

Bug Description

The behavior of pc.ignore_sb has changed in galera. Setting it as part of wsrep_cluster_address leads to Galera not listening on its listen_addr and hence not being available as a Donor for SST. In Galera 2.x however, it is available.

Changed in galera:
assignee: nobody → Teemu Ollakka (teemu-ollakka)
milestone: none → 3.1
Teemu Ollakka (teemu-ollakka) wrote :

Could not reproduce this:

Command to start mysqld:

/run/shm/galera/local1/mysql/sbin/mysqld --defaults-file=/run/shm/galera/local1/mysql/etc/my.cnf --user=teemu --basedir=/run/shm/galera/local1/mysql --datadir=/run/shm/galera/local1/mysql/var --plugin-dir=lib/mysql/plugin --pid-file=/run/shm/galera/local1/mysql/var/mysqld.pid --port=3311 --socket=/run/shm/galera/local1/mysql/var/mysqld.sock --skip-external-locking --log_error=/run/shm/galera/local1/mysql/var/hp.err --default-storage-engine=InnoDB --wsrep_provider=/run/shm/galera/local1/galera/lib/libgalera_smm.so --wsrep_cluster_address=gcomm://?pc.ignore_sb=1&gmcast.listen_addr=tcp://gw:10011 --wsrep_start_position=9ac15fea-2513-11e3-bcd4-33878a9222ca:0

Log shows:
2013-09-24 15:21:41 8573 [Note] WSREP: (de6aaaa2-2513-11e3-b799-1ef476e847f8, 'tcp://192.168.3.254:10011') listening at tcp://192.168.3.254:10011

$ netstat -natp |grep 10011
tcp 0 0 192.168.3.254:10011 0.0.0.0:* LISTEN 8573/mysqld

Joining another node to cluster goes as usual.

@Teemu,

I had provided it as

--mysqld=--wsrep_cluster_address=gcomm://?pc.ignore_sb=true --mysqld=--wsrep_provider_options="gmcast.listen_addr=tcp://127.0.0.1:8493"

I couldn't get it listening on that address.

Full commandline:

  perl mysql-test-run.pl \
    --start-and-exit \
    --port-base=7000 \
    --nowarnings \
    --vardir=$node1 \
    --mysqld=--innodb_file_per_table \
    --mysqld=--binlog-format=ROW \
    --mysqld=--wsrep-slave-threads=2 \
    --mysqld=--innodb_autoinc_lock_mode=2 \
    --mysqld=--innodb_locks_unsafe_for_binlog=1 \
    --mysqld=--wsrep-provider=/pxc56/lib/libgalera_smm.so \
    --mysqld=--wsrep_cluster_address=gcomm://?pc.ignore_sb=true \
    --mysqld=--wsrep_sst_receive_address=127.0.0.1:37193 \
    --mysqld=--wsrep_node_incoming_address=127.0.0.1 \
    --mysqld=--wsrep_provider_options="gmcast.listen_addr=tcp://127.0.0.1:44444" \
    --mysqld=--wsrep_sst_method=rsync \
    --mysqld=--wsrep_sst_auth=root: \
    --mysqld=--wsrep_node_address=127.0.0.1 \
    --mysqld=--innodb_flush_method=O_DIRECT \
    --mysqld=--core-file \
    --mysqld=--loose-new \
    --mysqld=--sql-mode=no_engine_substitution \
    --mysqld=--loose-innodb \
    --mysqld=--secure-file-priv= \
    --mysqld=--loose-innodb-status-file=1 \
    --mysqld=--skip-name-resolve \
    --mysqld=--socket=/tmp/socket.sock \
    --mysqld=--log-output=none \
    1st

This didn't listen on 127.0.0.1:44444

As it works when provided differently, the bug may be with how the address is provided.

Teemu Ollakka (teemu-ollakka) wrote :

I still cannot reproduce this. Could you start the process and post the mysqld command with arguments as it is seen in processlist.

@Teemu,

Ack, I will test it again and post it here.

Download full text (11.1 KiB)

/tmp/run.sh

defined(@array) is deprecated at lib/mtr_cases.pm line 339.
        (Maybe you should just omit the defined()?)
defined(@array) is deprecated at mysql-test-run.pl line 497.
        (Maybe you should just omit the defined()?)
Logging: mysql-test-run.pl --start-and-exit --port-base=7000 --nowarnings --vardir=/tmp/node1 --mysqld=--innodb_file_per_table --mysqld=--binlog-format=ROW --mysqld=--wsrep-slave-threads=2 --mysqld=--innodb_autoinc_lock_mode=2 --mysqld=--innodb_locks_unsafe_for_binlog=1 --mysqld=--wsrep-provider=/pxc56/lib/libgalera_smm.so --mysqld=--wsrep_sst_receive_address=127.0.0.1:37193 --mysqld=--wsrep_node_incoming_address=127.0.0.1 --mysqld=--wsrep_provider_options=gmcast.listen_addr=tcp://127.0.0.1:44444 --mysqld=--wsrep_sst_method=rsync --mysqld=--wsrep_sst_auth=root: --mysqld=--wsrep_node_address=127.0.0.1 --mysqld=--innodb_flush_method=O_DIRECT --mysqld=--core-file --mysqld=--loose-new --mysqld=--sql-mode=no_engine_substitution --mysqld=--loose-innodb --mysqld=--secure-file-priv= --mysqld=--loose-innodb-status-file=1 --mysqld=--skip-name-resolve --mysqld=--socket=/tmp/socket.sock --mysqld=--log-output=none 1st
2013-09-26 17:21:43 28293 [Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 5000)

2013-09-26 17:21:43 28293 [Warning] Buffered warning: Changed limits: table_cache: 431 (requested 2000)

2013-09-26 17:21:43 28293 [Note] Binlog end
2013-09-26 17:21:43 28293 [Note] Shutting down plugin 'CSV'
2013-09-26 17:21:43 28293 [Note] Shutting down plugin 'MyISAM'
MySQL Version 5.6.13
Using binlog format 'ROW'
Checking supported features...
 - SSL connections supported
 - binaries are debug compiled
Collecting tests...
Removing old var directory...
Creating var directory '/tmp/node1'...
Installing system database...
Using server port 41683

==============================================================================

TEST RESULT TIME (ms) or COMMENT
--------------------------------------------------------------------------

worker[1] Using MTR_BUILD_THREAD -300, with reserved ports 7000..7009
worker[1]
Started [mysqld.1 - pid: 28329, winpid: 28329]
worker[1] Using config for test main.1st
worker[1] Port and socket path for server(s):
worker[1] mysqld.1 7001 /tmp/node1/tmp/mysqld.1.sock
worker[1] Server(s) started, not waiting for them to finish

>>p mysqld
raghave+ 28329 1.7 1.4 696276 115860 pts/18 Sl 17:21 0:00 /media/Vone/data/pxc56/bin/mysqld --defaults-group-suffix=.1 --defaults-file=/tmp/node1/my.cnf --log-output=file --loose-debug-sync-timeout=600 --default-storage-engine=MyISAM --default-tmp-storage-engine=MyISAM --loose-skip-log-bin --innodb_file_per_table --wsrep-slave-threads=2 --innodb_autoinc_lock_mode=2 --innodb_locks_unsafe_for_binlog=1 --wsrep-provider=/pxc56/lib/libgalera_smm.so --wsrep_sst_receive_address=127.0.0.1:37193 --wsrep_node_incoming_address=127.0.0.1 --wsrep_provider_options=gmcast.listen_addr=tcp://127.0.0.1:44444 --wsrep_sst_method=rsync --wsrep_sst_auth=root: --wsrep_node_address=127.0.0.1 --innodb_flush_method=O_DIRECT --core-file --loose-new --sql-mode=no_engine_substitution --loose-innodb --secure-file-priv= -...

Teemu Ollakka (teemu-ollakka) wrote :

It looks like --wsrep_cluster_address param is not passed to mysqld process at all and therefore galera wsrep provider does not start.

Alex Yurchenko (ayurchen) wrote :

can't seem to reproduce

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers