Comment 2 for bug 1286450

Revision history for this message
Raghavendra D Prabhu (raghavendra-prabhu) wrote :

To simplify, just setting pc.bootstrap=1 during runtime crashes.

#0 0x00007ffff5f5e389 in raise () from /usr/lib/libc.so.6
#1 0x00007ffff5f5f788 in abort () from /usr/lib/libc.so.6
#2 0x00007ffff6848625 in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/libstdc++.so.6
#3 0x00007ffff6846786 in ?? () from /usr/lib/libstdc++.so.6
#4 0x00007ffff68467b3 in std::terminate() () from /usr/lib/libstdc++.so.6
#5 0x00007ffff68469f2 in __cxa_throw () from /usr/lib/libstdc++.so.6
#6 0x00007fffd7fb1427 in gu::Config::get (this=<optimized out>, key=...) at galerautils/src/gu_config.hpp:126
#7 0x00007fffd80b7f67 in galera::ReplicatorSMM::param_set (this=0x145d290, key=..., value=...) at galera/src/replicator_smm_params.cpp:143
#8 0x00007fffd80b55d7 in wsrep_set_params (repl=..., params=<optimized out>) at galera/src/wsrep_params.cpp:40
#9 0x00007fffd80e8657 in galera_parameters_set (gh=<optimized out>, params=<optimized out>) at galera/src/wsrep_provider.cpp:117
#10 0x0000000000633416 in wsrep_provider_options_update (self=<optimized out>, thd=<optimized out>, type=<optimized out>)
    at /media/Tintin/Work/code/percona-xtradb-cluster/pxc56/Percona-Server/sql/wsrep_var.cc:287
#11 0x00000000006cdcab in sys_var::update (this=0x12f8140 <Sys_wsrep_provider_options>, thd=0x2304c40, var=<optimized out>)
    at /media/Tintin/Work/code/percona-xtradb-cluster/pxc56/Percona-Server/sql/set_var.cc:194
#12 0x00000000006cdfa7 in set_var::update (this=<optimized out>, thd=<optimized out>) at /media/Tintin/Work/code/percona-xtradb-cluster/pxc56/Percona-Server/sql/set_var.cc:679
#13 0x00000000006ce87c in sql_set_variables (thd=thd@entry=0x2304c40, var_list=var_list@entry=0x2307f18) at /media/Tintin/Work/code/percona-xtradb-cluster/pxc56/Percona-Server/sql/set_var.cc:579
#14 0x0000000000740053 in mysql_execute_command (thd=thd@entry=0x2304c40) at /media/Tintin/Work/code/percona-xtradb-cluster/pxc56/Percona-Server/sql/sql_parse.cc:4381
#15 0x0000000000742670 in mysql_parse (thd=thd@entry=0x2304c40, rawbuf=rawbuf@entry=0x7fff68005130 "set global wsrep_provider_options=\"pc.bootstrap=1\"", length=length@entry=50,
    parser_state=parser_state@entry=0x7fffbc568800) at /media/Tintin/Work/code/percona-xtradb-cluster/pxc56/Percona-Server/sql/sql_parse.cc:7188
#16 0x0000000000742c4c in wsrep_mysql_parse (thd=thd@entry=0x2304c40, rawbuf=0x7fff68005130 "set global wsrep_provider_options=\"pc.bootstrap=1\"", length=length@entry=50,
    parser_state=parser_state@entry=0x7fffbc568800) at /media/Tintin/Work/code/percona-xtradb-cluster/pxc56/Percona-Server/sql/sql_parse.cc:6940
#17 0x0000000000744542 in dispatch_command (command=<optimized out>, command@entry=COM_QUERY, thd=thd@entry=0x2304c40, packet=packet@entry=0x2338e11 "set global wsrep_provider_options=\"pc.bootstrap=1\"",
    packet_length=packet_length@entry=50) at /media/Tintin/Work/code/percona-xtradb-cluster/pxc56/Percona-Server/sql/sql_parse.cc:1630
#18 0x0000000000744b49 in do_command (thd=0x2304c40) at /media/Tintin/Work/code/percona-xtradb-cluster/pxc56/Percona-Server/sql/sql_parse.cc:1133
#19 0x0000000000717d12 in do_handle_one_connection (thd_arg=thd_arg@entry=0x2304c40) at /media/Tintin/Work/code/percona-xtradb-cluster/pxc56/Percona-Server/sql/sql_connect.cc:1557
#20 0x0000000000717e50 in handle_one_connection (arg=arg@entry=0x2304c40) at /media/Tintin/Work/code/percona-xtradb-cluster/pxc56/Percona-Server/sql/sql_connect.cc:1461
#21 0x0000000000ab4663 in pfs_spawn_thread (arg=0x238cf70) at /media/Tintin/Work/code/percona-xtradb-cluster/pxc56/Percona-Server/storage/perfschema/pfs.cc:1858
#22 0x00007ffff7bc70a2 in start_thread () from /usr/lib/libpthread.so.0
#23 0x00007ffff600ed1d in clone () from /usr/lib/libc.so.6

This is possibly a regression from recent galera commits on parameter handling.

bzr diff
=== modified file 'gcomm/src/conf.cpp'
--- gcomm/src/conf.cpp 2014-02-06 19:27:50 +0000
+++ gcomm/src/conf.cpp 2014-03-01 08:11:16 +0000
@@ -175,7 +175,7 @@
     GCOMM_CONF_ADD_DEFAULT(PcAnnounceTimeout);
     GCOMM_CONF_ADD (PcLinger);
     GCOMM_CONF_ADD_DEFAULT(PcNpvo);
- GCOMM_CONF_ADD (PcBootstrap);
+ GCOMM_CONF_ADD_DEFAULT(PcBootstrap);
     GCOMM_CONF_ADD_DEFAULT(PcWaitPrim);
     GCOMM_CONF_ADD_DEFAULT(PcWaitPrimTimeout);
     GCOMM_CONF_ADD_DEFAULT(PcWeight);

=== modified file 'gcomm/src/defaults.cpp'
--- gcomm/src/defaults.cpp 2014-02-06 19:27:50 +0000
+++ gcomm/src/defaults.cpp 2014-03-01 08:03:58 +0000
@@ -43,6 +43,7 @@
     std::string const Defaults::PcIgnoreSb = PcIgnoreQuorum;
     std::string const Defaults::PcNpvo = "false";
     std::string const Defaults::PcVersion = "0";
+ std::string const Defaults::PcBootstrap = "0";
     std::string const Defaults::PcWaitPrim = "true";
     std::string const Defaults::PcWaitPrimTimeout = "P30S";
     std::string const Defaults::PcWeight = "1";

=== modified file 'gcomm/src/defaults.hpp'
--- gcomm/src/defaults.hpp 2014-02-06 19:27:50 +0000
+++ gcomm/src/defaults.hpp 2014-03-01 08:04:12 +0000
@@ -41,6 +41,7 @@
         static std::string const PcIgnoreSb ;
         static std::string const PcNpvo ;
         static std::string const PcVersion ;
+ static std::string const PcBootstrap ;
         static std::string const PcWaitPrim ;
         static std::string const PcWaitPrimTimeout ;
         static std::string const PcWeight ;

fixes that (but adding NotSet exception handling with logging may also be better).