- 03 Nov, 2009 1 commit
-
-
Alfranio Correia authored
Non-transactional updates that take place inside a transaction present problems for logging because they are visible to other clients before the transaction is committed, and they are not rolled back even if the transaction is rolled back. It is not always possible to log correctly in statement format when both transactional and non-transactional tables are used in the same transaction. In the current patch, we ensure that such scenario is completely safe under the ROW and MIXED modes.
-
- 29 Oct, 2009 2 commits
-
-
He Zhenxing authored
-
He Zhenxing authored
-
- 27 Oct, 2009 1 commit
-
-
He Zhenxing authored
-
- 23 Oct, 2009 5 commits
-
-
He Zhenxing authored
-
He Zhenxing authored
-
He Zhenxing authored
plugin/semisync/CMakeLists.txt: Add CMakeLists.txt for semisync
-
He Zhenxing authored
CMakeLists.txt: Add plugin/semisync subdirectory mysql-test/mysql-test-run.pl: Check for semisync dll for Windows mysql-test/suite/rpl/r/rpl_semi_sync.result: Update result file mysql-test/suite/rpl/t/rpl_semi_sync.test: Test semi-sync on Windows plugin/semisync/semisync_master.cc: Define gettimeofday for Windows
-
unknown authored
Postfix
-
- 20 Oct, 2009 1 commit
-
-
unknown authored
Before the patch, slaves only appear in the output of SHOW SLAVE HOSTS when report-host option is set. If an expected slave does not appear in the list, nobody knows whether the slave does not connect or has started without the "report-host" option. The output also contains a strange field "Rpl_recovery_rank" which has never been implemented and the manual of MySQL5.4 declares that the field has been removed from MySQL5.4. This patch is done with these, According to the manual of MySQL5.4, "Rpl_recovery_rank" is removed. Slaves will register themselves to master no matter if report_host option is set or not. When slaves are registering themselves, their Server_ids, report_host and other information are together sent to master. Sever_ids are never null and is unique in one replication group. Slaves always can be identified with different Server_ids no matter if report_host exists.
-
- 19 Oct, 2009 3 commits
-
-
Sven Sandberg authored
Post-push fix. Problem: In a previous patch for BUG#39934, rpl_idempotency.test was split in two tests. The mtr suppressions in the original test did not make it into the new test. This caused pushbuild warnings. Fix: copy the mtr suppressions from rpl_idempotency.test to rpl_row_idempotency.test mysql-test/suite/rpl/r/rpl_row_idempotency.result: updated result file mysql-test/suite/rpl/t/rpl_row_idempotency.test: copied the warnings from rpl_idempotency.test to rpl_row_idempotency.test
-
Sven Sandberg authored
The rpl_ndb/combinations file was introduced as part of the fix. The file contained an error: ndb suites shall not run with binlog_format=mixed. Removed that combination. mysql-test/suite/rpl_ndb/combinations: removed binlog_format=statement combination since ndb does not support statement format. mysql-test/suite/rpl_ndb/t/rpl_ndb_mixed_tables.test: Added have_binlog_format_mixed_or_row.inc.
-
Sven Sandberg authored
post-push fixes. the test case tried to use a udf that had not been loaded. removed the udf. mysql-test/suite/rpl_ndb/r/rpl_ndb_binlog_format_errors.result: updated result file mysql-test/suite/rpl_ndb/t/rpl_ndb_binlog_format_errors.test: myfunc_int() was supposed to be a udf. but the udf was not loaded. since the test already uses another plugin, and we don't support multiple plugin directories, i removed the udf function. it was not strictly needed.
-
- 18 Oct, 2009 2 commits
-
-
He Zhenxing authored
rpl_semi_sync_master_wait_sessions was reset by FLUSH STATUS, which could cause the master fail to wake up waiting sessions and result in master timeout waiting for slave reply. rpl_semi_sync_master_wait_session should not be reset, this problem is fixed by this patch. plugin/semisync/semisync_master_plugin.cc: Change wait_sessions from SHOW_LONG back to SHOW_FUNC so that it will not be reset by FLUSH STATUS.
-
He Zhenxing authored
-
- 14 Oct, 2009 2 commits
-
-
Sven Sandberg authored
Post-push fix. Problem: After the original bugfix, if a statement is unsafe, binlog_format=mixed, and engine is statement-only, a warning was generated and the statement executed. However, it is a fundamental principle of binlogging that binlog_format=mixed should guarantee correct logging, no compromise. So correct behavior is to generate an error and don't execute the statement. Fix: Generate error instead of warning. Since issue_unsafe_warnings can only generate one error message, this allows us to simplify the code a bit too: decide_logging_format does not have to save the error code for issue_unsafe_warnings mysql-test/suite/binlog/r/binlog_statement_insert_delayed.result: updated result file mysql-test/suite/binlog/r/binlog_stm_ps.result: updated result file mysql-test/suite/binlog/r/binlog_stm_unsafe_warning.result: updated result file mysql-test/suite/binlog/r/binlog_unsafe.result: updated result file mysql-test/suite/rpl/r/rpl_stm_found_rows.result: updated result file mysql-test/suite/rpl/r/rpl_stm_loadfile.result: updated result file mysql-test/suite/rpl_ndb/r/rpl_ndb_binlog_format_errors.result: updated result file mysql-test/suite/rpl_ndb/t/rpl_ndb_binlog_format_errors.test: updated test: - ER_BINLOG_UNSAFE_AND_STMT_ENGINE is now an error. - added test for multiple types of unsafety sql/share/errmsg.txt: - Reformulated ER_BINLOG_UNSAFE_AND_STMT_ENGINE to reflect that it is now an error, not a warning. - Added "Reason for unsafeness" to ER_BINLOG_UNSAFE_STATEMENT and ER_BINLOG_UNSAFE_AND_STMT_ENGINE. sql/sql_class.cc: In decide_logging_format: - generate an error immediately in case 3, instead of scheduling a warning to be generated later. also updated comments accordingly - in case 7, there is only one unsafe warning error code now, so we don't need to store it in binlog_unsafe_warning_flags (see changes in sql_lex.h) - fixed compilation warning in DBUG_PRINT In issue_binlog_warning: - moved array of error codes to sql_lex.h (so that they are accessible also from decide_logging_format) - simplified code after the first set of bits in binlog_unsafe_warning_flags was removed sql/sql_class.h: - got rid of enum_binlog_stmt_warning. It's not needed anymore since we only have one type of unsafe warning (one of them turned into an error) - updated comments accordingly sql/sql_lex.cc: added initialization of the array of error codes that has been moved from THD::issue_unsafe_warnings to LEX. sql/sql_lex.h: Moved array of error codes from THD::issue_unsafe_warnings to LEX.
-
He Zhenxing authored
Use ev_offset instead of 1 as the packet header offset when getting log position from events for heartbeat call reset_transmit_packet before calling send_heartbeat_event sql/sql_repl.cc: Use ev_offset instead of 1 as the packet header offset when getting log position from events for heartbeat call reset_transmit_packet before calling send_heartbeat_event
-
- 13 Oct, 2009 1 commit
-
-
He Zhenxing authored
-
- 12 Oct, 2009 5 commits
-
-
He Zhenxing authored
Remove functions that no longer needed Fix warning suppressions mysql-test/suite/rpl/t/rpl_semi_sync.test: Fix warning suppressions plugin/semisync/semisync_slave.cc: Remove functions that no longer needed plugin/semisync/semisync_slave.h: Remove functions that no longer needed
-
He Zhenxing authored
Add an option to control whether the master should keep waiting until timeout when it detected that there is no semi-sync slave available. The bool option 'rpl_semi_sync_master_wait_no_slave' is 1 by defalt, and will keep waiting until timeout. When set to 0, the master will switch to asynchronous replication immediately when no semi-sync slave is available.
-
He Zhenxing authored
Semi-sync status were not reset by FLUSH STATUS, this was because all semi-sync status variables are defined as SHOW_FUNC and FLUSH STATUS could only reset SHOW_LONG type variables. This problem is fixed by change all status variables that should be reset by FLUSH STATUS from SHOW_FUNC to SHOW_LONG. After the fix, the following status variables will be reset by FLUSH STATUS: Rpl_semi_sync_master_yes_tx Rpl_semi_sync_master_no_tx Note: normally, FLUSH STATUS itself will be written into binlog and be replicated, so after FLUSH STATS, one of Rpl_semi_sync_master_yes_tx Rpl_semi_sync_master_no_tx can be 1 dependent on the semi-sync status. So it's recommended to use FLUSH NO_WRITE_TO_BINLOG STATUS to avoid this.
-
He Zhenxing authored
Errors when send reply to master should never cause the IO thread to stop, because master can fall back to async replication if it does not get reply from slave. The problem is fixed by deliberately ignoring the return value of slaveReply.
-
He Zhenxing authored
Semi-sync uses an extra connection from slave to master to send replies, this is a normal client connection, and used a normal SET query to set the reply information on master, which is visible to user and may cause some confusion and complaining. This problem is fixed by using the method of sending reply by using the same connection that is used by master dump thread to send binlog to slave. Since now the semi-sync plugins are integrated with the server code, it is not a problem to use the internal net interfaces to do this. The master dump thread will mark the event requires a reply and wait for the reply when the event just sent is the last event of a transaction and semi-sync status is ON; And the slave will send a reply to master when it received such an event that requires a reply.
-
- 10 Oct, 2009 1 commit
-
-
Serge Kozlov authored
Fix for backport into mysql-5.1-rep+2
-
- 09 Oct, 2009 1 commit
-
-
Andrei Elkin authored
mysql-test/suite/rpl/r/rpl_stop_middle_group.result: the new result file mysql-test/suite/rpl/t/rpl_stop_middle_group.test: renamed from rpl_row_stop_middle_update and added a regression test for bug#45940.
-
- 07 Oct, 2009 2 commits
-
-
Luis Soares authored
-
Serge Kozlov authored
The issue appears when number of heartbeat events non-zero before start of test block. But really we need to check that no new events has received during test block. So I did following: 1. Replace absolute values by diff of values 2. Increase heartbeat period from 1.5 to 5 sec
-
- 06 Oct, 2009 1 commit
-
-
Andrei Elkin authored
-
- 03 Oct, 2009 5 commits
-
-
Serge Kozlov authored
It is backport patch. This adds new test case for testing affects of some variables to replication.
-
He Zhenxing authored
-
He Zhenxing authored
On sparc, semisync master/slave status is always showed as OFF, this is fixed by change rpl_semisync_master/slave_status variables from long to char. plugin/semisync/semisync_master.cc: Change rpl_semisync_master_status variables from long to char plugin/semisync/semisync_master.h: Change rpl_semisync_master_status variables from long to char plugin/semisync/semisync_slave.cc: Change rpl_semisync_slave_status variables from long to char plugin/semisync/semisync_slave.h: Change rpl_semisync_slave_status variables from long to char
-
He Zhenxing authored
-
He Zhenxing authored
-
- 02 Oct, 2009 7 commits
-
-
Serge Kozlov authored
This is backport for next-mr. The patch adds new test cases that cover replication heartbeat testing.
-
Andrei Elkin authored
fixing tests results: rpl_ndb_log, rpl_ndb_multi, sp_trans_log; adding replicate-ignore_server_ids specific tests
-
He Zhenxing authored
mysql-test/mysql-test-run.pl: Set SEMISYNC_PLUGIN_OPT to '--plugin-dir=' when semi-sync plugins are not found
-
He Zhenxing authored
binlog_tmp_table rpl_row_sp006_InnoDB rpl_slave_status
-
He Zhenxing authored
-
He Zhenxing authored
According to Jon's comment, add (at least one of) to the error message.
-
He Zhenxing authored
-