• unknown's avatar
    BUG#24954 (Last_errno and Last_error not set after master_retry_count has · abbf5941
    unknown authored
    been reached):
    
    Post-merge patch to handle all the changes to the tree since the tree
    was cloned.
    
    
    mysql-test/extra/rpl_tests/rpl_log.test:
      Replacing SHOW SLAVE STATUS with include file.
    mysql-test/extra/rpl_tests/rpl_max_relay_size.test:
      Replacing SHOW SLAVE STATUS with include file.
    mysql-test/extra/rpl_tests/rpl_reset_slave.test:
      Replacing SHOW SLAVE STATUS with include file.
    mysql-test/include/show_slave_status.inc:
      Column change.
    mysql-test/r/rpl_000015.result:
      Result file change.
    mysql-test/r/rpl_change_master.result:
      Result file change.
    mysql-test/r/rpl_empty_master_crash.result:
      Result file change.
    mysql-test/r/rpl_extraCol_innodb.result:
      Result file change.
    mysql-test/r/rpl_extraCol_myisam.result:
      Result file change.
    mysql-test/r/rpl_flushlog_loop.result:
      Result file change.
    mysql-test/r/rpl_incident.result:
      Result file change.
    mysql-test/r/rpl_known_bugs_detection.result:
      Result file change.
    mysql-test/r/rpl_loaddata.result:
      Result file change.
    mysql-test/r/rpl_loaddata_fatal.result:
      Result file change.
    mysql-test/r/rpl_log_pos.result:
      Result file change.
    mysql-test/r/rpl_ndb_basic.result:
      Result file change.
    mysql-test/r/rpl_ndb_circular.result:
      Result file change.
    mysql-test/r/rpl_ndb_extraCol.result:
      Result file change.
    mysql-test/r/rpl_ndb_idempotent.result:
      Result file change.
    mysql-test/r/rpl_ndb_log.result:
      Result file change.
    mysql-test/r/rpl_ndb_sync.result:
      Result file change.
    mysql-test/r/rpl_rbr_to_sbr.result:
      Result file change.
    mysql-test/r/rpl_redirect.result:
      Result file change.
    mysql-test/r/rpl_replicate_do.result:
      Result file change.
    mysql-test/r/rpl_rotate_logs.result:
      Result file change.
    mysql-test/r/rpl_row_inexist_tbl.result:
      Result file change.
    mysql-test/r/rpl_row_log.result:
      Result file change.
    mysql-test/r/rpl_row_log_innodb.result:
      Result file change.
    mysql-test/r/rpl_row_max_relay_size.result:
      Result file change.
    mysql-test/r/rpl_row_reset_slave.result:
      Result file change.
    mysql-test/r/rpl_row_tabledefs_2myisam.result:
      Result file change.
    mysql-test/r/rpl_row_tabledefs_3innodb.result:
      Result file change.
    mysql-test/r/rpl_row_until.result:
      Result file change.
    mysql-test/r/rpl_server_id1.result:
      Result file change.
    mysql-test/r/rpl_server_id2.result:
      Result file change.
    mysql-test/r/rpl_slave_skip.result:
      Result file change.
    mysql-test/r/rpl_ssl.result:
      Result file change.
    mysql-test/r/rpl_ssl1.result:
      Result file change.
    mysql-test/r/rpl_stm_log.result:
      Result file change.
    mysql-test/r/rpl_stm_max_relay_size.result:
      Result file change.
    mysql-test/r/rpl_stm_reset_slave.result:
      Result file change.
    mysql-test/r/rpl_stm_until.result:
      Result file change.
    mysql-test/t/rpl_000015.test:
      Replacing SHOW SLAVE STATUS with include file.
    mysql-test/t/rpl_change_master.test:
      Column position change.
      Making result of SHOW SLAVE STATUS vertical.
    mysql-test/t/rpl_empty_master_crash.test:
      Replacing SHOW SLAVE STATUS with include file.
    mysql-test/t/rpl_log_pos.test:
      Replacing SHOW SLAVE STATUS with include file.
    mysql-test/t/rpl_ndb_basic.test:
      Column position change.
    mysql-test/t/rpl_ndb_idempotent.test:
      Column position change.
    mysql-test/t/rpl_ndb_sync.test:
      Column position change.
      Making result of SHOW SLAVE STATUS vertical.
    mysql-test/t/rpl_redirect.test:
      Replacing SHOW SLAVE STATUS with include file.
    mysql-test/t/rpl_replicate_do.test:
      Column position change.
      Making result of SHOW SLAVE STATUS vertical.
    mysql-test/t/rpl_rotate_logs.test:
      Replacing SHOW SLAVE STATUS with include file.
    mysql-test/t/rpl_row_inexist_tbl.test:
      Replacing SHOW SLAVE STATUS with include file.
    mysql-test/t/rpl_row_until.test:
      Replacing SHOW SLAVE STATUS with include file.
    mysql-test/t/rpl_server_id1.test:
      Column position change.
      Making result of SHOW SLAVE STATUS vertical.
    mysql-test/t/rpl_server_id2.test:
      Column position change.
      Making result of SHOW SLAVE STATUS vertical.
    mysql-test/t/rpl_slave_status.test:
      Column position change.
    mysql-test/t/rpl_ssl.test:
      Column position change.
    mysql-test/t/rpl_ssl1.test:
      Column position change.
    mysql-test/t/rpl_stm_until.test:
      Replacing SHOW SLAVE STATUS with include file.
    sql/log_event.cc:
      Using member function last_error() instead of member variable.
      Replacing use of 'table' with 'm_table'.
      Suppressing warnings in debug printout.
      Setting thd->net.last_error on error return from unpack_row() to get
      a non-zero error message.  The error codes for are being harmonized
      in another worklog.
      Replacing use of slave_print_msg() with RELAY_LOG_INFO::report().
    sql/rpl_mi.h:
      Moving order of include files since they are dependent (!).
    sql/rpl_record.cc:
      Adding missing include file.
      Replacing use of slave_print_msg() with RELAY_LOG_INFO::report().
    sql/rpl_record_old.cc:
      Adding missing include file.
      Replacing use of slave_print_msg() with RELAY_LOG_INFO::report().
    sql/rpl_reporting.cc:
      Adding const modifier to member function.
      Using renamed member variable m_last_error.
    sql/rpl_reporting.h:
      Adding missing constant MAX_SLAVE_ERRMSG.
      Adding const modifier to Slave_reporting_capability::report().
      Hiding and renaming member variable last_error and incorporating
      member function for access in order to make it mutable.
    sql/rpl_rli.h:
      Moving constant MAX_SLAVE_ERRMSG.
    sql/rpl_utility.cc:
      Adding missing include file rpl_rli.h.
    sql/slave.cc:
      Replacing use of member variable last_error with call to member function
      last_error().
      Replacing use of slave_print_msg() with RELAY_LOG_INFO::report().
    abbf5941
rpl_ssl1.test 2.75 KB
source include/have_ssl.inc;
source include/master-slave.inc;

# We don't test all types of ssl auth params here since it's a bit hard 
# until problems with OpenSSL 0.9.7 are unresolved

# creating replication user for whom ssl auth is required
# preparing playground
connection master;
grant replication slave on *.* to replssl@localhost require ssl;
create table t1 (t int);
save_master_pos;

#syncing with master
connection slave;
sync_with_master;

#trying to use this user without ssl
stop slave;
change master to master_user='replssl',master_password='';
start slave;

#showing that replication don't work
connection master;
insert into t1 values (1);
#reasonable timeout for changes to propagate to slave
sleep 3;
connection slave;
select * from t1;

#showing that replication could work with ssl params
stop slave;
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
eval change master to master_ssl=1 , master_ssl_ca ='$MYSQL_TEST_DIR/std_data/cacert.pem', master_ssl_cert='$MYSQL_TEST_DIR/std_data/client-cert.pem', master_ssl_key='$MYSQL_TEST_DIR/std_data/client-key.pem';
start slave;

#avoiding unneeded sleeps
connection master;
save_master_pos;
connection slave;
sync_with_master;

#checking that replication is ok
select * from t1;

#checking show slave status
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR $MASTER_MYPORT MASTER_MYPORT
--replace_column 1 # 6 # 7 # 8 # 9 # 10 # 11 # 16 # 22 # 23 # 33 # 35 # 36 #
query_vertical show slave status;

#checking if replication works without ssl also performing clean up
stop slave;
change master to master_user='root',master_password='', master_ssl=0;
start slave;
connection master;
drop user replssl@localhost;
drop table t1;
save_master_pos;
connection slave;
sync_with_master;
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR $MASTER_MYPORT MASTER_MYPORT
--replace_column 1 # 6 # 7 # 8 # 9 # 10 # 11 # 16 # 22 # 23 # 33 # 35 # 36 #
query_vertical show slave status;

# End of 4.1 tests

# Start replication with ssl_verify_server_cert turned on
connection slave;
stop slave;
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
eval change master to
 master_host="localhost",
 master_ssl=1 ,
 master_ssl_ca ='$MYSQL_TEST_DIR/std_data/cacert.pem',
 master_ssl_cert='$MYSQL_TEST_DIR/std_data/client-cert.pem',
 master_ssl_key='$MYSQL_TEST_DIR/std_data/client-key.pem',
 master_ssl_verify_server_cert=1;
start slave;

connection master;
create table t1 (t int);
insert into t1 values (1);

sync_slave_with_master;

echo on slave;
#checking that replication is ok
select * from t1;

#checking show slave status
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR $MASTER_MYPORT MASTER_MYPORT
--replace_column 1 # 6 # 7 # 8 # 9 # 10 # 11 # 16 # 22 # 23 # 33 # 35 # 36 #
query_vertical show slave status;

connection master;
drop table t1;
sync_slave_with_master;