Commit graph

10 commits

Author SHA1 Message Date
Sven Sandberg
6e69536956 BUG#37975: wait_for_slave_* should increase the timeout
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.
2008-07-10 18:09:39 +02:00
unknown
9526a24b2f Bug #22234 Extra Slave Col: Slave should stop on Error Field d of table
There was a failure in that show slave status displayed a wrong message
when slave stopped at processing a row event inserting to a default-less
column.

The problem seem to have ceased after recent fixes in rbr code.
However, the test was not updated to carry testing of the case commented-out.

Uncommenting and editing the test.
Notice, Bug#23907 is most probably a duplicate of this one.


mysql-test/extra/rpl_tests/rpl_extraSlave_Col.test:
  uncommenting the test that previously failed.
mysql-test/suite/rpl/r/rpl_extraCol_innodb.result:
  results changed due to the correct expected error message of an added test
  is displayed.
mysql-test/suite/rpl/r/rpl_extraCol_myisam.result:
  results changed to reflect the test changes
mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result:
  results changed to reflect the uncommented test
sql/log_event.cc:
  correcting of a merge with bug#12713 to use the correct object holding
  the error code.
2008-03-06 20:32:47 +02:00
unknown
496bac71c4 rpl_extraSlave_Col.test:
Corrected issues found in preparing to push code


mysql-test/extra/rpl_tests/rpl_extraSlave_Col.test:
  Corrected issues found in preparing to push code
2007-10-31 14:01:01 -05:00
unknown
f1cdbe0d67 Merge mysql.com:/usr/clones/mysql-5.1-new-rpl
into  mysql.com:/usr/clones/rpl-push


mysql-test/extra/rpl_tests/rpl_extraSlave_Col.test:
  Auto merged
mysql-test/suite/rpl/r/rpl_extraCol_innodb.result:
  Auto merged
mysql-test/suite/rpl/r/rpl_extraCol_myisam.result:
  Auto merged
mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result:
  Auto merged
2007-10-30 10:02:37 -05:00
unknown
74ef292dc2 BUG#28618 (Skipping into the middle of a group with SQL_SLAVE_SKIP_COUNTER
is possible):

When skipping the beginning of a transaction starting with BEGIN, the OPTION_BEGIN
flag was not set correctly, which caused the slave to not recognize that it was
inside a group. This patch sets the OPTION_BEGIN flag for BEGIN, COMMIT, ROLLBACK,
and XID events. It also adds checks if inside a group before decreasing the
slave skip counter to zero.

Begin_query_log_event was not marked that it could not end a group, which is now
corrected.


mysql-test/extra/rpl_tests/rpl_extraSlave_Col.test:
  Correcting slave skip counter to get the correct behaviour.
mysql-test/suite/rpl/r/rpl_slave_skip.result:
  Result change.
mysql-test/suite/rpl/t/rpl_slave_skip.test:
  Adding tests to check that skipping works for transactions:
  - Skipping one group with BEGIN first
  - Skipping two groups with BEGIN first
  - Skipping one group without BEGIN first but with AUTOCOMMIT=0
  - LOAD DATA INFILE under statement-based replication
mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result:
  Result change.
sql/log_event.cc:
  Adding checks if we're in a group when the slave skip counter is 1.
  In that case, we should keep going.
  
  Adding helping member function Log_event::continue_group() denoting
  that this event cannot end a group, and if the skip counter indicates
  that the group ends after this event, it should not decrease the skip
  counter.
  
  Query_log_event will change the OPTION_BEGIN flag for BEGIN, COMMIT, and
  ROLLBACK, even when skipping because of a positive skip count, and
  Xid_log_event will also affect the OPTION_BEGIN flag, even when being
  skipped.
  
  Begin_load_query_log_event cannot end a group, so it is marked to
  continue the group.
sql/log_event.h:
  Adding helper function Log_event::continue_group().
sql/rpl_rli.h:
  Adding Relay_log_info::get_flag() to get the value of a
  replication flag.
sql/slave.cc:
  Adding debug output and changing debug message.
mysql-test/suite/rpl/data/rpl_bug28618.dat:
  New BitKeeper file ``mysql-test/suite/rpl/data/rpl_bug28618.dat''
mysql-test/suite/rpl/t/rpl_slave_skip-slave.opt:
  New BitKeeper file ``mysql-test/suite/rpl/t/rpl_slave_skip-slave.opt''
2007-10-19 14:18:41 +02:00
unknown
9ad300d50d BUG#22086 : Extra Slave Col: Char(5) on slave and Char(10) on master cause mysqld crash
This patch adds functionality to row-based replication to ensure the
slave's column sizes are >= to that of the master.

It also includes some refactoring for the code from WL#3228.


mysql-test/extra/rpl_tests/rpl_extraSlave_Col.test:
  BUG#22086 : Extra Slave Col: Char(5) on slave and Char(10) on master cause mysqld crash 
  
  Removed commented out portion of test referenced in bug report. This
  test supports the original request of the bug report.
mysql-test/suite/rpl/r/rpl_extraCol_innodb.result:
  BUG#22086 : Extra Slave Col: Char(5) on slave and Char(10) on master cause mysqld crash 
  
  New result file for additional test.
mysql-test/suite/rpl/r/rpl_extraCol_myisam.result:
  BUG#22086 : Extra Slave Col: Char(5) on slave and Char(10) on master cause mysqld crash 
  
  New result file for additional test.
mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result:
  BUG#22086 : Extra Slave Col: Char(5) on slave and Char(10) on master cause mysqld crash 
  
  New result file for additional test.
sql/field.cc:
  BUG#22086 : Extra Slave Col: Char(5) on slave and Char(10) on master cause mysqld crash 
  
  This patch refactors the additions made by this bug patch and those
  made by WL#3228. The effort consolidates the large switches on type()
  into functions within the field classes.
sql/field.h:
  BUG#22086 : Extra Slave Col: Char(5) on slave and Char(10) on master cause mysqld crash 
  
  This patch refactors the additions made by this bug patch and those
  made by WL#3228. The effort consolidates the large switches on type()
  into functions within the field classes.
sql/log_event.cc:
  BUG#22086 : Extra Slave Col: Char(5) on slave and Char(10) on master cause mysqld crash 
  
  This patch refactors the calc_field_size() method to use the new
  methods implemented in the field classes. It also corrects comments 
  concerning how replication of field metadata works.
sql/log_event.h:
  BUG#22086 : Extra Slave Col: Char(5) on slave and Char(10) on master cause mysqld crash 
  
  This patch refactors out the calc_field_size() method into the method
  save_field_metadata().
sql/rpl_utility.cc:
  BUG#22086 : Extra Slave Col: Char(5) on slave and Char(10) on master cause mysqld crash 
  
  This patch adds a method to check the size of the field on the master 
  using the field metadata from WL#3228. Each column is checked to ensure 
  the slave's column is >= to the master's column in size.
sql/rpl_utility.h:
  BUG#22086 : Extra Slave Col: Char(5) on slave and Char(10) on master cause mysqld crash 
  
  This patch changes the table_def class so that it records the size of
  the metadata. This is a result of refactoring out the calc_field_size()
  method into the method save_field_metadata(). Prevents access via 
  field_metadata(col) to unitialized memory when there is no metadata
  transmitted from the master.
mysql-test/suite/rpl/r/rpl_row_colSize.result:
  BUG#22086 : Extra Slave Col: Char(5) on slave and Char(10) on master cause mysqld crash 
  
  New result file for additional test.
mysql-test/suite/rpl/t/rpl_row_colSize.test:
  BUG#22086 : Extra Slave Col: Char(5) on slave and Char(10) on master cause mysqld crash 
  
  Added a test file to test each variable type that relies on field
  metadata from the master.
mysql-test/include/test_fieldsize.inc:
  BUG#22086 : Extra Slave Col: Char(5) on slave and Char(10) on master cause mysqld crash 
  
  Sub unit file to test each variable type that relies on field
  metadata from the master.
2007-08-10 12:48:01 -04:00
unknown
42886677ca Many files:
Added new test case for dropping column on the end of master table


mysql-test/extra/rpl_tests/rpl_extraSlave_Col.test:
  Added new test case for dropping column on the end of master table
mysql-test/r/rpl_extraCol_innodb.result:
  Added new test case for dropping column on the end of master table
mysql-test/r/rpl_extraCol_myisam.result:
  Added new test case for dropping column on the end of master table
mysql-test/r/rpl_ndb_extraCol.result:
  Added new test case for dropping column on the end of master table
2007-07-17 15:49:07 -05:00
unknown
b55468d713 Updated patch for Bug#28497 based off of Magnus's review
mysql-test/include/wait_for_slave_io_to_stop.inc:
  Updated previous commit to include Magnus's change request from review. In addition, I moved it from the mysql-5.1 to mysql-5.1-maint clone. We now have 3 new replications tools and one tool that has been refactored. 1) include/wait_for_slave_to_stop.inc replaces the old mysqltest.c wait_for_slave_to_stop. NEW: 2) include/wait_for_slave_sql_to_stop.inc is for when you are expecting the slave to get an SQL error and waiting for the SQL Thread to stop. 3) include/wait_for_slave_io_to_stop.inc is used for test that you expect sometype of IO error and the IO Thread to stop. 4) include/wait_for_slave_to_start.inc for waiting for the slave to completely start before moving forward in the test. All 4 tests have a built in loop that will stop the test if any of the tools take too long.
mysql-test/include/wait_for_slave_sql_to_stop.inc:
  Updated previous commit to include Magnus's change request from review. In addition, I moved it from the mysql-5.1 to mysql-5.1-maint clone. We now have 3 new replications tools and one tool that has been refactored. 1) include/wait_for_slave_to_stop.inc replaces the old mysqltest.c wait_for_slave_to_stop. NEW: 2) include/wait_for_slave_sql_to_stop.inc is for when you are expecting the slave to get an SQL error and waiting for the SQL Thread to stop. 3) include/wait_for_slave_io_to_stop.inc is used for test that you expect sometype of IO error and the IO Thread to stop. 4) include/wait_for_slave_to_start.inc for waiting for the slave to completely start before moving forward in the test. All 4 tests have a built in loop that will stop the test if any of the tools take too long.
mysql-test/include/wait_for_slave_to_start.inc:
  Updated previous commit to include Magnus's change request from review. In addition, I moved it from the mysql-5.1 to mysql-5.1-maint clone. We now have 3 new replications tools and one tool that has been refactored. 1) include/wait_for_slave_to_stop.inc replaces the old mysqltest.c wait_for_slave_to_stop. NEW: 2) include/wait_for_slave_sql_to_stop.inc is for when you are expecting the slave to get an SQL error and waiting for the SQL Thread to stop. 3) include/wait_for_slave_io_to_stop.inc is used for test that you expect sometype of IO error and the IO Thread to stop. 4) include/wait_for_slave_to_start.inc for waiting for the slave to completely start before moving forward in the test. All 4 tests have a built in loop that will stop the test if any of the tools take too long.
mysql-test/include/wait_for_slave_to_stop.inc:
  Updated previous commit to include Magnus's change request from review. In addition, I moved it from the mysql-5.1 to mysql-5.1-maint clone. We now have 3 new replications tools and one tool that has been refactored. 1) include/wait_for_slave_to_stop.inc replaces the old mysqltest.c wait_for_slave_to_stop. NEW: 2) include/wait_for_slave_sql_to_stop.inc is for when you are expecting the slave to get an SQL error and waiting for the SQL Thread to stop. 3) include/wait_for_slave_io_to_stop.inc is used for test that you expect sometype of IO error and the IO Thread to stop. 4) include/wait_for_slave_to_start.inc for waiting for the slave to completely start before moving forward in the test. All 4 tests have a built in loop that will stop the test if any of the tools take too long.
mysql-test/t/rpl_critical_errors.test:
  Updated to use new tool(s)
mysql-test/t/rpl_dual_pos_advance.test:
  Updated to use new tool(s)
mysql-test/t/rpl_known_bugs_detection.test:
  Updated to use new tool(s)
mysql-test/t/rpl_rotate_logs.test:
  Updated to use new tool(s)
mysql-test/t/rpl_row_inexist_tbl.test:
  Updated to use new tool(s)
mysql-test/extra/rpl_tests/rpl_extraSlave_Col.test:
  Updated to use new tool(s)
mysql-test/extra/rpl_tests/rpl_loaddata.test:
  Updated to use new tool(s)
mysql-test/extra/rpl_tests/rpl_row_tabledefs.test:
  Updated to use new tool(s)
mysql-test/extra/rpl_tests/rpl_stm_000001.test:
  Updated to use new tool(s)
mysql-test/extra/rpl_tests/rpl_stm_EE_err2.test:
  Updated to use new tool(s)
2007-06-13 05:52:43 +02:00
unknown
fedd09cddf Fix test case that was broken for builds without InnoDB.
---
Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build-work-vanilla-building
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.1-build-work-vanilla-building
---
Fix test cases to pass for a plain ./configure && make build. This includes disabling two test cases when certain features are not present in the server. We're not losing coverage from this because these features are usually present, and disabling them here only serves the purpose to make the test cases work in the unlikely case that they aren't.
---
fixes


mysql-test/extra/rpl_tests/rpl_extraSlave_Col.test:
  Disable this test case if we don't have partitioning
mysql-test/t/rpl_row_basic_11bugs.test:
  Disable warnings in a number of places to make this test case work with servers that don't contain InnoDB
  ---
  make test case look better on request from reviewer
mysql-test/t/rpl_row_mysqlbinlog.test:
  Disable this test case if the server does not have cp932 compiled in
mysql-test/t/sp.test:
  Disable warnings during table creation in one place where engine=innodb is used, in order to make this test case work with a mysqld that was compiled without InnoDB.
2007-04-25 21:33:18 +02:00
unknown
77b1bb8477 Has issues with original tree, so had to pull new tree and copy test over. Running last test now and will push after
mysql-test/extra/rpl_tests/rpl_extraSlave_Col.test:
  BitKeeper file /data0/mysql-5.1-new-rpl/mysql-test/extra/rpl_tests/rpl_extraSlave_Col.test
mysql-test/t/rpl_extraCol_innodb-master.opt:
  BitKeeper file /data0/mysql-5.1-new-rpl/mysql-test/t/rpl_extraCol_innodb-master.opt
mysql-test/t/rpl_extraCol_innodb-slave.opt:
  BitKeeper file /data0/mysql-5.1-new-rpl/mysql-test/t/rpl_extraCol_innodb-slave.opt
mysql-test/t/rpl_extraCol_innodb.test:
  BitKeeper file /data0/mysql-5.1-new-rpl/mysql-test/t/rpl_extraCol_innodb.test
mysql-test/t/rpl_extraCol_myisam.test:
  BitKeeper file /data0/mysql-5.1-new-rpl/mysql-test/t/rpl_extraCol_myisam.test
mysql-test/r/rpl_extraCol_innodb.result:
  BitKeeper file /data0/mysql-5.1-new-rpl/mysql-test/r/rpl_extraCol_innodb.result
mysql-test/r/rpl_extraCol_myisam.result:
  BitKeeper file /data0/mysql-5.1-new-rpl/mysql-test/r/rpl_extraCol_myisam.result
mysql-test/r/rpl_ndb_extraCol.result:
  BitKeeper file /data0/mysql-5.1-new-rpl/mysql-test/r/rpl_ndb_extraCol.result
mysql-test/t/rpl_ndb_extraCol.test:
  BitKeeper file /data0/mysql-5.1-new-rpl/mysql-test/t/rpl_ndb_extraCol.test
mysql-test/extra/rpl_tests/rpl_ndb_ddl.test:
  BitKeeper file /data0/mysql-5.1-new-rpl/mysql-test/extra/rpl_tests/rpl_ndb_ddl.test
2006-11-03 16:31:25 +01:00