- 31 Jul, 2008 1 commit
-
-
He Zhenxing authored
The problem of this bug is that we need to get the list of tables to be updated for a multi-table update statement, which requires to open all the tables referenced by the statement and resolve all the fields involved in update in order to figure out the list of tables for update. However if there are replicate filter rules, some tables might not exist on slave and result in a failure before we could examine the filter rules. I think the whole problem can not be solved on slave alone, the master must record and send the information of tables involved for update to slave, so that the slave do not need to open all the tables referenced by the multi-table update statement to figure out which tables are involved for update. So a status variable is added to Query_log event to store the value of table map for update on master. And on slave, it will try to get the value of this variable and use it to examine filter rules without opening any tables on slave, if this values is not available, the old approach is used and thus the bug will still occur for when replicating from old masters. sql/sql_class.h: add member table_map_for_update to THD sql/sql_parse.cc: check filter rules by using table_map_for_update value sql/sql_update.cc: save the value of table_map_for_update
-
- 16 Jul, 2008 3 commits
-
-
Sven Sandberg authored
-
Sven Sandberg authored
Problem: mysqlbinlog_base64 fails because the binlog contains traces from previous test cases. Fix: Make have_log_bin reset the master's binlog. mysql-test/include/have_log_bin.inc: Made have_log_bin reset the master logs, so that no traces of earlier test cases are left. mysql-test/t/mysqlbinlog_base64.test: Removed debug info from previous push to this test.
-
Sven Sandberg authored
Post-post-push fix. The result file for rpl_rbr_to_sbr needs to be updated. While I was there, made rpl_rbr_to_sbr clean up after itself by reverting @@binlog_format to the value it had before the test started. mysql-test/suite/rpl/r/rpl_rbr_to_sbr.result: Updated result file mysql-test/suite/rpl/t/rpl_rbr_to_sbr.test: Made the test clean up after itself by reverting @@binlog_format to its original value.
-
- 15 Jul, 2008 2 commits
-
-
Sven Sandberg authored
This is not a fix to the bug. I'm just pushing a change to the test case that will produce debug info when the test fails next time. mysql-test/t/mysqlbinlog_base64.test: Temporarily augmenting the test with debug info in order to analyze BUG#38127.
-
Sven Sandberg authored
Post-push fix. The previous patch did 'reset master' at the wrong place. mysql-test/include/master-slave-reset.inc: reset master must be called *after* the tables have been dropped. The purpose of reset master is to get rid of 'drop table' from the slave's binlog.
-
- 14 Jul, 2008 3 commits
-
-
Sven Sandberg authored
Post-push fixes: forgot to commit an updated result file. mysql-test/suite/rpl_ndb/r/rpl_ndb_log.result: Updated result file.
-
Sven Sandberg authored
Post-push fixes: I forgot to include the new files start_slave.inc and stop_slave.inc in the previuos push. mysql-test/include/start_slave.inc: Added file. Purpose: start slave synchronously, waiting for the two threads to start. mysql-test/include/stop_slave.inc: Added file. Purpose: stop slave synchronously, waiting for the two threads to stop.
-
Sven Sandberg authored
-
- 10 Jul, 2008 2 commits
-
-
Sven Sandberg authored
removing the option files mysql-test/suite/rpl/t/rpl000018-master.opt: removed unused file mysql-test/suite/rpl/t/rpl000018-slave.opt: removed unused file
-
Sven Sandberg authored
Problem 1: tests often fail in pushbuild with a timeout when waiting for the slave to start/stop/receive error. Fix 1: Updated the wait_for_slave_* macros in the following way: - The timeout is increased by a factor ten - Refactored the macros so that wait_for_slave_param does the work for the other macros. Problem 2: Tests are often incorrectly written, lacking a source include/wait_for_slave_to_[start|stop].inc. Fix 2: Improved the chance to get it right by adding include/start_slave.inc and include/stop_slave.inc, and updated tests to use these. Problem 3: The the built-in test language command wait_for_slave_to_stop is a misnomer (does not wait for the slave io thread) and does not give as much debug info in case of failure as the otherwise equivalent macro source include/wait_for_slave_sql_to_stop.inc Fix 3: Replaced all calls to the built-in command by a call to the macro. Problem 4: Some, but not all, of the wait_for_slave_* macros had an implicit connection slave. This made some tests confusing to read, and made it more difficult to use the macro in circular replication scenarios, where the connection named master needs to wait. Fix 4: Removed the implicit connection slave from all wait_for_slave_* macros, and updated tests to use an explicit connection slave where necessary. Problem 5: The macros wait_slave_status.inc and wait_show_pattern.inc were unused. Moreover, using them is difficult and error-prone. Fix 5: remove these macros. Problem 6: log_bin_trust_function_creators_basic failed when running tests because it assumed @@global.log_bin_trust_function_creators=1, and some tests modified this variable without resetting it to its original value. Fix 6: All tests that use this variable have been updated so that they reset the value at end of test. mysql-test/extra/rpl_tests/rpl_extraMaster_Col.test: Replaced wait_for_slave_to_stop by include/wait_for_slave_sql_to_stop.inc mysql-test/extra/rpl_tests/rpl_extraSlave_Col.test: Replaced wait_for_slave_to_stop by include/wait_for_slave_sql_to_stop.inc Added connection slave since includ/wait_for_slave_sql_to_stop.inc does not do that anymore. mysql-test/extra/rpl_tests/rpl_log.test: Replaced start slave+wait_slave_status by start_slave.inc mysql-test/include/reset_master_and_slave.inc: replaced start/stop slave by start_slave.inc/stop_slave.inc mysql-test/include/sync_slave_io_with_master.inc: Improved comments and error message. mysql-test/include/wait_for_slave_io_to_stop.inc: Refactored to use wait_for_slave_param.inc. Removed connection slave. mysql-test/include/wait_for_slave_param.inc: - Improved usage instructions - Added more debug info in case of timeout - Added parameters $slave_param_comparison, $slave_timeout, $slave_keep_connection, $slave_error_message mysql-test/include/wait_for_slave_sql_error.inc: Refactored to use wait_for_slave_param.inc. Removed connection slave. mysql-test/include/wait_for_slave_sql_to_start.inc: Refactored to use wait_for_slave_param.inc. Removed connection slave. mysql-test/include/wait_for_slave_sql_to_stop.inc: Refactored to use wait_for_slave_param.inc. Removed connection slave. mysql-test/include/wait_for_slave_to_start.inc: Refactored to use wait_for_slave_param.inc. Removed connection slave. mysql-test/include/wait_for_slave_to_stop.inc: Refactored to use wait_for_slave_param.inc. Removed connection slave. mysql-test/include/wait_show_pattern.inc: Removed unused (and error-prone) file mysql-test/include/wait_slave_status.inc: Removed unused (and error-prone) file mysql-test/suite/binlog/t/binlog_auto_increment_bug33029.test: Renamed $keep_connection to $slave_keep_connection. mysql-test/suite/rpl/t/rpl_bug26395.test: Replace stop slave by stop_slave.inc mysql-test/suite/rpl/t/rpl_circular_for_4_hosts.test: Replace start/stop slave by start_slave.inc/stop_slave.inc. Replace wait_for_slave_param by wait_for_slave_sql_to_stop.inc. mysql-test/suite/rpl/t/rpl_dual_pos_advance.test: Renamed $keep_connection to $slave_keep_connection. mysql-test/suite/rpl/t/rpl_flushlog_loop.test: Replace wait_slave_status by start_slave.inc mysql-test/suite/rpl/t/rpl_idempotency.test: Added connection slave since wait_for_slave_sql_to_stop.inc does not do that any more. mysql-test/suite/rpl/t/rpl_incident.test: Replaced wait_for_slave_to_stop by wait_for_slave_sql_to_stop.inc mysql-test/suite/rpl/t/rpl_init_slave.test: Replaced start/stop slave by start_slave.inc/stop_slave.inc. Replaced save_master_pos;connection slave;sync_with_master by sync_slave_with_master. mysql-test/suite/rpl/t/rpl_log_pos.test: Replaced start/stop slave by start_slave.inc/stop_slave.inc. Replaced wait_for_slave_param by other wait_for_slave_* macros. mysql-test/suite/rpl/t/rpl_packet.test: Replaced start/stop slave by start_slave.inc/stop_slave.inc. mysql-test/suite/rpl/t/rpl_row_inexist_tbl.test: Replaced start/stop slave by start_slave.inc/stop_slave.inc. mysql-test/suite/rpl/t/rpl_row_stop_middle_update.test: Replaced start/stop slave by start_slave.inc/stop_slave.inc. mysql-test/suite/rpl/t/rpl_row_until.test: Replaced start/stop slave by start_slave.inc/stop_slave.inc. Replaced save_master_pos;connection slave;sync_with_master by sync_slave_with_master. mysql-test/suite/rpl/t/rpl_server_id1.test: Replaced start/stop slave by start_slave.inc/stop_slave.inc. mysql-test/suite/rpl/t/rpl_slave_grp_exec.test: Replaced start/stop slave by start_slave.inc/stop_slave.inc. mysql-test/suite/rpl/t/rpl_slave_skip.test: Replaced start/stop slave by start_slave.inc/stop_slave.inc. mysql-test/suite/rpl/t/rpl_slave_status.test: Replaced start/stop slave by start_slave.inc/stop_slave.inc. mysql-test/suite/rpl/t/rpl_sp.test: Restore @@global.log_bin_trust_function_creators at end of test. mysql-test/suite/rpl/t/rpl_sp_effects.test: Restore @@global.log_bin_trust_function_creators at end of test. mysql-test/suite/rpl/t/rpl_stm_until.test: Replaced start/stop slave by start_slave.inc/stop_slave.inc. Replaced save_master_pos;connection slave;sync_with_master by sync_slave_with_master. mysql-test/suite/rpl_ndb/t/rpl_ndb_basic.test: Replaced start slave by start_slave.inc. Added explicit connection slave since wait_for_slave_sql_to_stop.inc does not do that anymore. mysql-test/t/disabled.def: Disabled failing test. mysql-test/t/func_time.test: Restore @@global.log_bin_trust_function_creators at end of test. mysql-test/t/grant.test: Restore @@global.log_bin_trust_function_creators at end of test. mysql-test/t/grant2.test: Restore @@global.log_bin_trust_function_creators at end of test. mysql-test/t/innodb_notembedded.test: Restore @@global.log_bin_trust_function_creators at end of test. mysql-test/t/log_bin_trust_function_creators_func.test: Restore @@global.log_bin_trust_function_creators at end of test. Clean up at end of test by dropping the created user. mysql-test/t/query_cache.test: Restore @@global.log_bin_trust_function_creators at end of test. mysql-test/t/query_cache_notembedded.test: Restore @@global.log_bin_trust_function_creators at end of test. mysql-test/t/rpl_init_slave_func.test: Replaced start/stop slave by start_slave.inc/stop_slave.inc. mysql-test/t/timezone2.test: Restore @@global.log_bin_trust_function_creators at end of test.
-
- 09 Jul, 2008 1 commit
-
-
Mats Kindahl authored
when resetting replication tests. If not, circular replication setups will leave cruft in the slaves binary log. mysql-test/include/master-slave-reset.inc: Adding RESET MASTER on slave and RESET SLAVE on master. In order to avoid having to re-generate all the replication test result files, I disable the query log for the added statements. mysql-test/suite/rpl/t/rpl_flushlog_loop.test: Adding code to clean up after test. Disabling query log for the cleanup code.
-
- 08 Jul, 2008 5 commits
-
-
Mats Kindahl authored
mysql-test/include/wait_for_slave_sql_to_stop.inc: Removing extreneous printout.
-
Mats Kindahl authored
-
Mats Kindahl authored
Bug #37940 rpl_dual_pos_advance fails sporadically on pushbuild,fail wait_for_slave_to_stop Bug #37941 rpl_flushlog_loop fails sporadically on pushbuild Several tests fail when waiting for the slave to stop in what appears to be timeouts caused by a timeout value set to low. This causes false failures when the servers are loaded. In order to try to avoid false negatives, we increase the timeout 10 times and also print some more information in the event that the slave fails to stop when expected to. We add a printout of the current processes running to be able to see if any process have been executing for an unexpectedly long time, and also print the binlog events at the position indicated by SHOW SLAVE STATUS. mysql-test/include/wait_for_slave_sql_to_stop.inc: - Increasing default timeout 10 times and allowing it to be configurable. - Adding printout of process list on failure. - Adding printout of binlog events on master that has not yet been applied, unless $keep_connection is true.
-
Sven Sandberg authored
-
Sven Sandberg authored
This is not a fix, it just disables the erroneous test cases. mysql-test/t/disabled.def: Disabled a number of new tests that contain sleeps and that have not been checked for race conditions. At least some of them contain race conditions.
-
- 07 Jul, 2008 6 commits
-
-
Sven Sandberg authored
-
Sven Sandberg authored
Problem: the test syncs slave by a 'wait_condition' waiting until table t1 has 5000 rows. However, there is no guarantee that t1 makes it to the slave before the wait_condition. Fix: sync_slave_with_master just after t1 was created. mysql-test/suite/rpl/t/rpl_insert.test: Added sync_slave_with_master to ensure that table t1 is on slave before the slave executes wait_condition.
-
Sven Sandberg authored
-
Sven Sandberg authored
-
Sven Sandberg authored
The file tree in mtr's vardir has changed so an old hard-coded path in mysql-test/t/subselect.test didn't work. Fix: update the paths in the test. mysql-test/r/subselect.result: Updated result file. mysql-test/t/subselect.test: Problem: The file tree in mtr's vardir has changed so an old hard-coded path didn't work. Fix: update the paths in the test.
-
Sven Sandberg authored
positions changed. Fixed by removing binlog positions from output, and also: - removed code not used to verify the tested property - added comments mysql-test/suite/rpl/r/rpl_row_inexist_tbl.result: Updated result file. mysql-test/suite/rpl/t/rpl_row_inexist_tbl-slave.opt: Removed option file: it's not needed any more. mysql-test/suite/rpl/t/rpl_row_inexist_tbl.test: Improved the test in the following ways: - The table t2 was not used to verify the property to test, so t2 has been removed. - Now printing only the relevant column from SHOW SLAVE STATUS - Added comments.
-
- 06 Jul, 2008 3 commits
-
-
Sven Sandberg authored
Made the test innodb_max_dirty_pages_pct_func clean up after itself. mysql-test/r/innodb_max_dirty_pages_pct_func.result: Updated result file. mysql-test/t/disabled.def: Fixed BUG#37906 mysql-test/t/innodb_max_dirty_pages_pct_func.test: Made the test clean up after itself.
-
Sven Sandberg authored
-
Sven Sandberg authored
Problem: rpl_ndb_transaction fails because it assumes nothing is written to the binlog at a certain point. However, ndb may binlog updates in ndb system tables at a nondeterministic time point after an ndb table update has been committed. Fix: break the test into two. rpl_ndb_transaction still does the ndb updates needed by the first half of the test. The new test case rpl_bug26395 includes the part that assumes nothing more will be written to the binlog. mysql-test/include/sync_slave_io_with_master.inc: Like sync_slave_with_master, but only waits until the IO thread has synced; the SQL thread may still be behind. mysql-test/suite/rpl/r/rpl_bug26395.result: New result file. mysql-test/suite/rpl/t/rpl_bug26395-master.opt: New option file. mysql-test/suite/rpl/t/rpl_bug26395-slave.opt: New option file. mysql-test/suite/rpl/t/rpl_bug26395.test: - Moved second half of rpl_ndb_transaction here. - Improved the test case: instead of using a sleep, it waits for the slave's io thread to sync up to a proper position, and for the slave's sql thread to sync up to another position. - Added a warning that no more tests should be added at the end of the file. mysql-test/suite/rpl_ndb/r/rpl_ndb_mixed_engines_transactions.result: Updated and renamed result file. mysql-test/suite/rpl_ndb/t/rpl_ndb_mixed_engines_transactions-master.opt: No need for the special debug flag any more, it was used by the second part of the test which is now in rpl_bug26395. Also renamed the file. mysql-test/suite/rpl_ndb/t/rpl_ndb_mixed_engines_transactions-slave.opt: Renamed option file. mysql-test/suite/rpl_ndb/t/rpl_ndb_mixed_engines_transactions.test: - Moved second half of the test to another test (rpl_bug26395) - Improved comments. - Extended the mixed transaction test to include also innodb. - Used 'source include/diff_tables.inc' instead of listing several identical tables in the result file. - Renamed the test.
-
- 04 Jul, 2008 1 commit
-
-
Sven Sandberg authored
Problem 1: main.loaddata tried to trigger an error caused by reading files outside the vardir, by reading itself. However, if loaddata.test is not world-readable (e.g., umask=0077), then another error is triggered. Fix 1: allow the other error too. Problem 2: rpl_slave_skip and rpl_innodb_mixed_dml tried to copy a file from mysql-test/suite/rpl/data to mysql-test/var and then read it. That failed too if umask=0077, since the file would not become world-readable. Fix 2: move the files from mysql-test/suite/rpl/data to mysql-test/std_data and update tests accordingly. Remove the directory mysql-test/suite/rpl/data. mysql-test/r/loaddata.result: Updated result file. mysql-test/std_data/rpl_bug28618.dat: Moved this file to std_data. mysql-test/std_data/rpl_mixed.dat: Moved this file to std_data. mysql-test/suite/rpl/data: Removed directory that is now unused. mysql-test/suite/rpl/include/rpl_mixed_dml.inc: The rpl_mixed.dat file has been moved. Updated the test to use the new location. mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result: Updated result file. mysql-test/suite/rpl/r/rpl_slave_skip.result: Updated result file. mysql-test/suite/rpl/t/rpl_slave_skip.test: The rpl_bug28618.dat file has been moved. Updated the test to use the new location. mysql-test/t/loaddata.test: Allow more error messages. ER_TEXTFILE_NOT_READABLE may happen if the file is not world-readable (which may happen, e.g., if the user has umask=0077).
-
- 01 Jul, 2008 1 commit
-
-
Matthias Leich authored
-
- 30 Jun, 2008 2 commits
-
-
Matthias Leich authored
Bug#36787 Test funcs_1.charset_collation_1 failing Details: 1. Skip charset_collation_1 if charset "ucs2_bin" is missing (property which distincts "vanilla" builds from the others) 2. Let builds with version_comment LIKE "%Advanced%" (found them for 5.1) execute charset_collation_3. 3. Update comments charset_collation.inc so that they reflect the current experiences.
-
Joerg Bruehe authored
-
- 25 Jun, 2008 3 commits
-
-
Matthias Leich authored
-
Matthias Leich authored
Bug#37492 timing bug in subselect.test + similar weaknesses found during testing + replace error numbers by error names
-
Gleb Shchepa authored
-
- 24 Jun, 2008 4 commits
-
-
Gleb Shchepa authored
-
Gleb Shchepa authored
Bug#35480: BOM detection code crashes mysql CLI with zero-sized input MySQL client crashed if no input was passed to it.
-
Gleb Shchepa authored
Bug#33812: mysql client incorrectly parsing DELIMITER Remove unnecessary and incorrect code that tried to pull delimiter commands out of the middle of statements.
-
Gleb Shchepa authored
as a commentary mysql client has been modified to interpret EOL after standalone -- commentary strings like whitespace character (according to http://dev.mysql.com/doc/refman/5.0/en/ansi-diff-comments.html) mysql-test/t/mysql_delimiter.sql: Added test case for bug #36244.
-
- 21 Jun, 2008 1 commit
-
-
Tatiana A. Nurnberg authored
configure.in: auto-merge mysql-test/suite/bugs/r/rpl_bug33029.result: auto-merge mysql-test/suite/bugs/t/rpl_bug33029.test: auto-merge sql/slave.cc: auto-merge sql/sql_class.cc: auto-merge sql/structs.h: auto-merge
-
- 20 Jun, 2008 2 commits
-
-
Joerg Bruehe authored
-
Tatiana A. Nurnberg authored
Remove unnecessary and incorrect code that tried to pull delimiter commands out of the middle of statements. client/mysql.cc: Remove unnecessary and incorrect code that tried to pull delimiter commands out of the middle of statements. mysql-test/r/mysql.result: show we no longer parse DELIMITER when we shouldn't. mysql-test/t/mysql_delimiter.sql: show we no longer parse DELIMITER when we shouldn't.
-