Commit graph

4 commits

Author SHA1 Message Date
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
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