mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 13:02:28 +01:00
4 commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
unknown
|
62554f812e |
This is the final commit for Worklog tasks:
* A more dynamic binlog format which allows small changes (1064) * Log session variables in Query_log_event (1063) It contains a few bugfixes (which I made when running the testsuite). I carefully updated the results of the testsuite (i.e. I checked for every one, if the difference between .reject and .result could be explained). Apparently mysql-test-run --manager is broken in 4.1 and 5.0 currently, so I could neither run the few tests which require --manager, nor check that they pass nor modify their .result. But for builds, we don't run with --manager. Apart from --manager, the full testsuite passes, with Valgrind too (no errors). I'm going to push in the next minutes. Remains: update the manual. Note: by chance I saw that (in 4.1, in 5.0) rpl_get_lock fails when run alone; this is normal at it makes assumptions on thread ids. I will fix this one day in 4.1. mysql-test/r/rpl000015.result: result update mysql-test/r/rpl_change_master.result: result update mysql-test/r/rpl_error_ignored_table.result: result update mysql-test/r/rpl_flush_log_loop.result: result update mysql-test/r/rpl_flush_tables.result: result update mysql-test/r/rpl_loaddata.result: result update mysql-test/r/rpl_loaddata_rule_m.result: result update mysql-test/r/rpl_loaddata_rule_s.result: result update mysql-test/r/rpl_log.result: result update mysql-test/r/rpl_log_pos.result: result update mysql-test/r/rpl_max_relay_size.result: result update mysql-test/r/rpl_relayrotate.result: result update mysql-test/r/rpl_replicate_do.result: result update mysql-test/r/rpl_reset_slave.result: result update mysql-test/r/rpl_rotate_logs.result: result update mysql-test/r/rpl_session_var.result: result update mysql-test/r/rpl_temporary.result: result update mysql-test/r/rpl_trunc_binlog.result: result update mysql-test/r/rpl_until.result: result update mysql-test/r/rpl_user_variables.result: result update mysql-test/t/rpl000010-slave.opt: need to wait 2 events, because now we receive a Format_desc on top of the Rotate, when replication starts. mysql-test/t/rpl000015.test: relay log information is not repeatable in general (if a reconnection happens because --sleep=10 for example), so we hide these columns. mysql-test/t/rpl_change_master.test: relay log information is not repeatable in general (if a reconnection happens because --sleep=10 for example), so we hide these columns. mysql-test/t/rpl_empty_master_crash.test: relay log information is not repeatable in general (if a reconnection happens because --sleep=10 for example), so we hide these columns. mysql-test/t/rpl_error_ignored_table.test: relay log information is not repeatable in general (if a reconnection happens because --sleep=10 for example), so we hide these columns. mysql-test/t/rpl_flush_log_loop.test: relay log information is not repeatable in general (if a reconnection happens because --sleep=10 for example), so we hide these columns. mysql-test/t/rpl_loaddata.test: position update mysql-test/t/rpl_loaddata_rule_m.test: position update mysql-test/t/rpl_loaddata_rule_s.test: position update mysql-test/t/rpl_log.test: position update mysql-test/t/rpl_log_pos.test: position update mysql-test/t/rpl_max_relay_size.test: relay log information is not repeatable in general (if a reconnection happens because --sleep=10 for example), so we hide these columns. mysql-test/t/rpl_openssl.test: relay log information is not repeatable in general (if a reconnection happens because --sleep=10 for example), so we hide these columns. mysql-test/t/rpl_redirect.test: relay log information is not repeatable in general (if a reconnection happens because --sleep=10 for example), so we hide these columns. mysql-test/t/rpl_relayrotate-slave.opt: better options for this test mysql-test/t/rpl_relayrotate.test: using max() is better for debugging (it shows at which place the slave SQL thread resumed) mysql-test/t/rpl_replicate_do.test: relay log information is not repeatable in general (if a reconnection happens because --sleep=10 for example), so we hide these columns. mysql-test/t/rpl_reset_slave.test: relay log information is not repeatable in general (if a reconnection happens because --sleep=10 for example), so we hide these columns. mysql-test/t/rpl_rotate_logs.test: relay log information is not repeatable in general (if a reconnection happens because --sleep=10 for example), so we hide these columns. mysql-test/t/rpl_session_var.test: 100 because password() is longer than 10 chars mysql-test/t/rpl_trunc_binlog.test: relay log information is not repeatable in general (if a reconnection happens because --sleep=10 for example), so we hide these columns. mysql-test/t/rpl_until.test: position update mysql-test/t/rpl_user_variables.test: position update sql/log.cc: Ensure that the Format_desc propagated on next relay logs does not trigger undue actions (like incrementing some positions or clearing some files). sql/log_event.cc: * When the slave SQL thread finds a Rotate/Format_desc/Stop in the middle of a transaction (then these were written by the slave itself to its relay log), it should not increment rli->group* variables, but only rli->event* ones. * When the slave SQL thread finds a Format_desc not to be ignored (not the same server id as the slave's), if it has log_pos==0 it must not trigger "unfinished transaction in master's binlog" (log_pos==0 is always a marker in the relay log to mean "this event was not at this place in the master's binlog": it's for fake Rotate events, and for Format_description events which the master had to send us for replication to start). * In the Query_log_event on disk, catalog is now terminated by '\0'. * thd->catalog must be set to 0 when some exec_event() terminate (otherwise double free). sql/slave.cc: * Fixes for a few bugs when ignoring events in the slave SQL thread: - do not decrement rli->slave_skip_counter if the event is an event related to the binlog or relay log itself (FORMAT_DESCRIPTION, ROTATE, STOP) because these events should never be skipped (or the slave will be confused). Usually the user wants to skip a query, not a Rotate... - when we (re)connect to the master, we must free description_event_for_queue (otherwise memory leak when we reconnect). * Changed a bit the code where we change description_event_for_queue, to make it look "safer". * Moved 'created=0' to log.cc where it is safer. * When the slave SQL thread finds a Rotate/Format_desc/Stop in the middle of a transaction (then these were written by the slave itself to its relay log), it should not increment rli->group* variables, but only rli->event* ones. sql/sql_class.h: a warning comment sql/sql_repl.cc: A mistake: I had passed a char* instead of char** |
||
unknown
|
bc8f801bf0 |
Don't show Slave_IO_State in the testsuite (replace it with #) because it can't be predicted.
I manually edited rpl_openssl.result because the test is skipped on my machine. Hope it's correct. mysql-test/r/rpl000015.result: Don't show Slave_IO_State because it can't be predicted. mysql-test/r/rpl_error_ignored_table.result: Don't show Slave_IO_State because it can't be predicted. mysql-test/r/rpl_flush_log_loop.result: Don't show Slave_IO_State because it can't be predicted. mysql-test/r/rpl_loaddata.result: Don't show Slave_IO_State because it can't be predicted. mysql-test/r/rpl_log.result: Don't show Slave_IO_State because it can't be predicted. mysql-test/r/rpl_log_pos.result: Don't show Slave_IO_State because it can't be predicted. mysql-test/r/rpl_max_relay_size.result: Don't show Slave_IO_State because it can't be predicted. mysql-test/r/rpl_openssl.result: Don't show Slave_IO_State because it can't be predicted. mysql-test/r/rpl_replicate_do.result: Don't show Slave_IO_State because it can't be predicted. mysql-test/r/rpl_reset_slave.result: Don't show Slave_IO_State because it can't be predicted. mysql-test/r/rpl_rotate_logs.result: Don't show Slave_IO_State because it can't be predicted. mysql-test/r/rpl_trunc_binlog.result: Don't show Slave_IO_State because it can't be predicted. mysql-test/r/rpl_until.result: Don't show Slave_IO_State because it can't be predicted. mysql-test/t/rpl000015.test: Don't show Slave_IO_State because it can't be predicted. mysql-test/t/rpl_empty_master_crash.test: Don't show Slave_IO_State because it can't be predicted. mysql-test/t/rpl_error_ignored_table.test: Don't show Slave_IO_State because it can't be predicted. mysql-test/t/rpl_flush_log_loop.test: Don't show Slave_IO_State because it can't be predicted. mysql-test/t/rpl_loaddata.test: Don't show Slave_IO_State because it can't be predicted. mysql-test/t/rpl_log.test: Don't show Slave_IO_State because it can't be predicted. mysql-test/t/rpl_log_pos.test: Don't show Slave_IO_State because it can't be predicted. mysql-test/t/rpl_max_relay_size.test: Don't show Slave_IO_State because it can't be predicted. mysql-test/t/rpl_openssl.test: Don't show Slave_IO_State because it can't be predicted. mysql-test/t/rpl_redirect.test: Don't show Slave_IO_State because it can't be predicted. mysql-test/t/rpl_replicate_do.test: Don't show Slave_IO_State because it can't be predicted. mysql-test/t/rpl_reset_slave.test: Don't show Slave_IO_State because it can't be predicted. mysql-test/t/rpl_rotate_logs.test: Don't show Slave_IO_State because it can't be predicted. mysql-test/t/rpl_trunc_binlog.test: Don't show Slave_IO_State because it can't be predicted. mysql-test/t/rpl_until.test: Don't show Slave_IO_State because it can't be predicted. |
||
unknown
|
a7a7a8cacd |
Final push for WL#1098:
"Add a column "Timestamp_of_last_master_event_executed" in SHOW SLAVE STATUS". Finally this is adding - Slave_IO_State (a copy of the State column of SHOW PROCESSLIST for the I/O thread, so that the users, most of the time, has enough info with only SHOW SLAVE STATUS). - Seconds_behind_master. When the slave connects to the master it does SELECT UNIX_TIMESTAMP() on the master, computes the absolute difference between the master's and the slave's clock. It records the timestamp of the last event executed by the SQL thread, and does a small computation to find the number of seconds by which the slave is late. mysql-test/r/rpl000015.result: result update mysql-test/r/rpl_empty_master_crash.result: result update mysql-test/r/rpl_error_ignored_table.result: result update mysql-test/r/rpl_flush_log_loop.result: result update mysql-test/r/rpl_loaddata.result: result update mysql-test/r/rpl_log.result: result update mysql-test/r/rpl_log_pos.result: result update mysql-test/r/rpl_max_relay_size.result: result update mysql-test/r/rpl_redirect.result: result update mysql-test/r/rpl_replicate_do.result: result update mysql-test/r/rpl_reset_slave.result: result update mysql-test/r/rpl_rotate_logs.result: result update mysql-test/r/rpl_trunc_binlog.result: result update mysql-test/r/rpl_until.result: result update mysql-test/t/rpl000015.test: update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS mysql-test/t/rpl_empty_master_crash.test: update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS mysql-test/t/rpl_error_ignored_table.test: update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS mysql-test/t/rpl_flush_log_loop.test: update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS mysql-test/t/rpl_loaddata.test: update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS mysql-test/t/rpl_log.test: update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS mysql-test/t/rpl_log_pos.test: update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS mysql-test/t/rpl_max_relay_size.test: update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS mysql-test/t/rpl_openssl.test: update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS mysql-test/t/rpl_redirect.test: update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS mysql-test/t/rpl_replicate_do.test: update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS mysql-test/t/rpl_reset_slave.test: update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS mysql-test/t/rpl_rotate_logs.test: update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS mysql-test/t/rpl_trunc_binlog.test: update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS mysql-test/t/rpl_until.test: update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS sql/log_event.cc: when the SQL thread executes an event, we record its timestamp sql/slave.cc: in check_master_version() we know read the master's clock, to know the clock difference with the slave. In show_master_info() we send the state of the I/O thread, and compute the number of seconds by which the slave is late. sql/slave.h: timestamp of the last master's event executed by the SQL thread, and difference between the clocks of the master and slave. sql/sql_repl.cc: clear the Seconds_behind_master column of SHOW SLAVE STATUS when RESET SLAVE or CHANGE MASTER. |
||
unknown
|
8a548ffd9c |
Implemented replication over SSL
Added proper options to CHANGE MASTER TO, new fields to SHOW SLAVE STATUS, Honoring this parameters during connection to master. Introduced new format of master.info file include/mysqld_error.h: Added error code for "slave without SSL ignored SSL params warning" mysql-test/Makefile.am: Copy files required for rpl_openssl test during the make process mysql-test/r/rpl000015.result: Added fields to SHOW SLAVE STATUS for replication over SSL mysql-test/r/rpl_empty_master_crash.result: Added fields to SHOW SLAVE STATUS for replication over SSL mysql-test/r/rpl_flush_log_loop.result: Added fields to SHOW SLAVE STATUS for replication over SSL mysql-test/r/rpl_log.result: Added fields to SHOW SLAVE STATUS for replication over SSL mysql-test/r/rpl_log_pos.result: Added fields to SHOW SLAVE STATUS for replication over SSL mysql-test/r/rpl_redirect.result: Added fields to SHOW SLAVE STATUS for replication over SSL mysql-test/r/rpl_replicate_do.result: Added fields to SHOW SLAVE STATUS for replication over SSL mysql-test/r/rpl_rotate_logs.result: Added fields to SHOW SLAVE STATUS for replication over SSL sql/lex.h: Added MASTER_SSL lexems for CHANGE MASTER sql/mysqld.cc: Added --master-ssl-ca parameter. Fixed description of other master-ssl parameters sql/repl_failsafe.cc: Added SSL support to connect_to_master() sql/share/czech/errmsg.txt: Added "slave without SSL ignored SSL params" warning sql/share/danish/errmsg.txt: Added "slave without SSL ignored SSL params" warning sql/share/dutch/errmsg.txt: Added "slave without SSL ignored SSL params" warning sql/share/english/errmsg.txt: Added "slave without SSL ignored SSL params" warning sql/share/estonian/errmsg.txt: Added "slave without SSL ignored SSL params" warning sql/share/french/errmsg.txt: Added "slave without SSL ignored SSL params" warning sql/share/german/errmsg.txt: Added "slave without SSL ignored SSL params" warning sql/share/greek/errmsg.txt: Added "slave without SSL ignored SSL params" warning sql/share/hungarian/errmsg.txt: Added "slave without SSL ignored SSL params" warning sql/share/italian/errmsg.txt: Added "slave without SSL ignored SSL params" warning sql/share/japanese/errmsg.txt: Added "slave without SSL ignored SSL params" warning sql/share/korean/errmsg.txt: Added "slave without SSL ignored SSL params" warning sql/share/norwegian-ny/errmsg.txt: Added "slave without SSL ignored SSL params" warning sql/share/norwegian/errmsg.txt: Added "slave without SSL ignored SSL params" warning sql/share/polish/errmsg.txt: Added "slave without SSL ignored SSL params" warning sql/share/portuguese/errmsg.txt: Added "slave without SSL ignored SSL params" warning sql/share/romanian/errmsg.txt: Added "slave without SSL ignored SSL params" warning sql/share/russian/errmsg.txt: Added "slave without SSL ignored SSL params" warning sql/share/serbian/errmsg.txt: Added "slave without SSL ignored SSL params" warning sql/share/slovak/errmsg.txt: Added "slave without SSL ignored SSL params" warning sql/share/spanish/errmsg.txt: Added "slave without SSL ignored SSL params" warning sql/share/swedish/errmsg.txt: Added "slave without SSL ignored SSL params" warning sql/share/ukrainian/errmsg.txt: Added "slave without SSL ignored SSL params" warning sql/slave.cc: Introduced new format of master.info file Added support of SSL params in master.info and SHOW SLAVE STATUS Added support of SSL connections sql/slave.h: Added SSL parameters to MASTER_INFO sql/sql_lex.h: Added SSL parameters for CHANGE MASTER TO sql/sql_repl.cc: Added SSL parameters for CHANGE MASTER TO sql/sql_yacc.yy: Added SSL parameters for CHANGE MASTER TO |