WL#10296: Change replication tests to run with new default charset

Affects: Server-8.0   —   Status: Complete   —   Priority: Medium

WL#7554 added a workaround to make some tests pass with utf8mb4. This WL will remove the workaround and fix the tests in replication and binlog suites.

User Documentation

Work was done for test suite. No user documentation required.

  • There shall be no workarounds to make tests pass with the new default charset utf8mb4

LLD has list of tests that have the workaround. Remove the workarounds and make changes needed for test to pass

Tests to be migrated

Tests that use alter table :

  • mysql-test/suite/rpl/t/rpl_bug26395.test
  • mysql-test/suite/rpl/t/rpl_binlog_errors.test
  • mysql-test/suite/rpl/t/rpl_xa_survive_crash_debug.test
  • mysql-test/suite/rpl_gtid/t/rpl_gtid_delete_memory_table_after_start_server.test
  • mysql-test/suite/rpl_gtid/t/rpl_gtids_table.test
  • mysql-test/suite/rpl_nogtid/t/default_row_format_02.test
  • mysql-test/suite/rpl_nogtid/t/rpl_mixed_implicit_commit_binlog.test
  • mysql-test/suite/rpl_nogtid/t/rpl_row_create_select.test
  • mysql-test/suite/rpl_nogtid/t/rpl_row_implicit_commit_binlog.test
  • mysql-test/suite/rpl_nogtid/t/rpl_stm_implicit_commit_binlog.test
  • mysql-test/suite/binlog_gtid/t/binlog_gtid_next_partially_failed_stmts.test
  • mysql-test/suite/binlog_nogtid/t/binlog_mysqlbinlog_start_stop_slave_server_id.test
  • mysql-test/suite/binlog_nogtid/t/binlog_old_versions.test
  • mysql-test/suite/binlog_nogtid/t/binlog_stm_mix_innodb_myisam.test
  • mysql-test/suite/binlog_nogtid/t/binlog_unsafe.test
  • internal/mysql-test/suite/i_binlog_nogtid/t/binlog_corrupted_field_length.test
  • mysql-test/suite/binlog/t/binlog_drop_if_exists.test
  • mysql-test/suite/binlog/t/binlog_stm_blackhole.test

Tests that set character-set-server at bootstrap in opt file:

  • None

Original list of failing tests

The list of following tests fail due to result content mismatch in the charset value, which is expected. The result file needs to be updated, after verifying the charset value.

S.No Test name Reason of failure Details Developer Notes
1 binlog_gtid.binlog_gtid_stm_ctype_ucs Result content mismatch Mismatch in collation_server printed by mysqlbinlog.inc. Result file needs to be recorded. Result recorded
2 binlog_gtid.binlog_gtid_mysqlbinlog_start_stop Result content mismatch Mismatch in collation_server printed by mysqlbinlog.inc. Result file needs to be recorded. Result recorded
3 binlog_gtid.binlog_gtid_mysqlbinlog_row Result content mismatch Mismatch in collation_server printed by mysqlbinlog.inc. Result file needs to be recorded. Result recorded
4 binlog_gtid.binlog_gtid_mysqlbinlog_row_innodb Result content mismatch Mismatch in collation_server printed by mysqlbinlog.inc. Result file needs to be recorded. Result recorded
5 binlog_gtid.binlog_gtid_mysqlbinlog_row_myisam Result content mismatch Mismatch in collation_server printed by mysqlbinlog.inc. Result file needs to be recorded. Result recorded
6 rpl.rpl_innodb_mixed_dml Result content mismatch Mismatch in the collation. Result needs to be recorded. Result recorded
7 rpl_nogtid.rpl_sp_innodb Result content mismatch Mismatch in the collation. Result needs to be recorded. Result recorded
8 rpl_nogtid.rpl_sp_myisam Result content mismatch Mismatch in the collation. Result needs to be recorded. Result recorded
9 rpl_nogtid.rpl_row_ignorable_event Result content mismatch Mismatch in collation_server printed by mysqlbinlog.inc. Result file needs to be recorded. Result recorded
10 rpl_nogtid.rpl_row_mysqlbinlog Result content mismatch Mismatch in collation_server printed by mysqlbinlog.inc. Result file needs to be recorded. Result recorded
11 rpl_nogtid.rpl_create_if_not_exists Result content mismatch Mismatch in the collation. Result needs to be recorded. Result recorded
12 rpl_nogtid.rpl_do_grant Result content mismatch Mismatch in the charset. Result needs to be updated. Result recorded
13 rpl_nogtid.rpl_binlog_json Result content mismatch Mismatch in collation_server printed by mysqlbinlog.inc. Result file needs to be recorded. Result recorded
14 rpl_nogtid.rpl_stm_innodb Result content mismatch Mismatch in the charset printed by SHOW CREATE TABLE. Result needs to be updated. Result recorded
15 binlog_nogtid.binlog_mysqlbinlog_start_stop Result content mismatch Mismatch in collation_server printed by mysqlbinlog.inc. Result file needs to be recorded. Result recorded
16 binlog_nogtid.binlog_mysqlbinlog_start_stop_slave_server_id Result content mismatch Mismatch in collation_server printed by mysqlbinlog.inc. Result file needs to be recorded. Result recorded
17 binlog_nogtid.binlog_stm_ctype_ucs Result content mismatch Mismatch in collation_server printed by mysqlbinlog.inc. Result file needs to be recorded. Result recorded
18 binlog_nogtid.binlog_mysqlbinlog_row Result content mismatch Mismatch in collation_server printed by mysqlbinlog.inc. Result file needs to be recorded. Result recorded
19 binlog_nogtid.binlog_mysqlbinlog_row_innodb Result content mismatch Mismatch in collation_server printed by mysqlbinlog.inc. Result file needs to be recorded. Result recorded
20 binlog_nogtid.binlog_mysqlbinlog_row_myisam Result content mismatch Mismatch in collation_server printed by mysqlbinlog.inc. Result file needs to be recorded. Result recorded
21 binlog_nogtid.binlog_mysqlbinlog_row_trans Result content mismatch Mismatch in collation_server printed by mysqlbinlog.inc. Result file needs to be recorded. Result recorded
22 binlog_nogtid.binlog_row_ctype_ucs Result content mismatch Mismatch in collation_server printed by mysqlbinlog.inc. Result file needs to be recorded. Result recorded
23 i_rpl_nogtid.rpl_mixed_backtick_myisam Result content mismatch Mismatch in the charset printed by show_binlog_events.inc. Result needs to be updated. Result recorded
24 i_rpl_nogtid.rpl_stm_backtick_myisam Result content mismatch Mismatch in the charset printed by show_binlog_events.inc. Result needs to be updated. Result recorded
25 i_rpl_nogtid.rpl_mixed_backtick_innodb Result content mismatch Mismatch in the charset. Result needs to be updated. Result recorded
26 i_rpl_nogtid.rpl_row_backtick_innodb Result content mismatch Mismatch in the charset. Result needs to be updated. Result recorded
27 i_rpl_nogtid.rpl_row_backtick_myisam Result content mismatch Mismatch in the charset. Result needs to be updated. Result recorded
28 i_rpl_nogtid.rpl_stm_backtick_innodb Result content mismatch Mismatch in the charset. Result needs to be updated. Result recorded
29 i_rpl_gtid.rpl_gtid_mixed_backtick_innodb Result content mismatch Mismatch in the charset. Result needs to be updated. Result recorded
30 i_rpl_gtid.rpl_gtid_stm_backtick_innodb Result content mismatch Mismatch in the charset. Result needs to be updated. Result recorded
31 i_rpl_gtid.rpl_gtid_row_backtick_innodb Result content mismatch Mismatch in the charset. Result needs to be updated. Result recorded
32 main.user_var-binlog Result content mismatch Mismatch in collation_server printed by mysqlbinlog.inc. Result file needs to be recorded. Result recorded
33 i_rpl_nogtid.rpl_wl6292 Result content mismatch Mismatch in charset value. Result needs to be updated. Result recorded
34 rpl.rpl_auto_increment Result content mismatch Mismatch in charset value. Result needs to be updated. Result recorded
35 binlog_gtid.binlog_gtid_next_partially_failed_stmts Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
36 rpl.rpl_partition_innodb Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
37 rpl.rpl_innodb_bug28430 Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
38 rpl.rpl_skip_error Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
39 rpl.rpl_spec_variables Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
40 rpl.rpl_bug26395 Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
41 rpl.rpl_colSize Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
42 rpl.rpl_gis_geometry Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
43 rpl_nogtid.rpl_row_implicit_commit_binlog Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
44 rpl_nogtid.rpl_mixed_implicit_commit_binlog Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
45 rpl_nogtid.rpl_stm_implicit_commit_binlog Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
46 rpl_nogtid.rpl_replicate_do Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
47 rpl_nogtid.rpl_deadlock_innodb Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
48 rpl.rpl_multi_engine Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
49 binlog_nogtid.binlog_stm_mix_innodb_myisam Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
50 rpl.rpl_ps Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
51 rpl.rpl_multi_engine Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
52 binlog.binlog_drop_if_exists Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
53 rpl_nogtid.rpl_mixed_ddl_dml Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
54 rpl.rpl_row_UUID Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
55 rpl_nogtid.rpl_extra_col_slave_innodb Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
56 rpl_nogtid.rpl_extra_col_slave_myisam Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
57 rpl.rpl_row_basic_8partition Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
58 rpl_nogtid.rpl_read_only Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
59 main.no_binlog_gtid_next_partially_failed_stmts Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
60 rpl_nogtid.rpl_trigger Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
61 rpl_nogtid.rpl_no_gtid_split_statements Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
62 rpl_nogtid.rpl_row_create_select Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
63 rpl_gtid.rpl_gtid_split_statements Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
64 i_rpl_nogtid.rpl_user_var_zero_length_name Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
65 binlog.binlog_mysqlbinlog_filter Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
66 binlog.binlog_xa_prepared_disconnect Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
67 rpl.rpl_xa_survive_crash_debug Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
68 rpl.rpl_xa_survive_disconnect Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
69 rpl.rpl_xa_survive_disconnect_lsu_off Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
70 rpl.rpl_xa_survive_disconnect_table Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
71 rpl_gtid.rpl_gtids_table Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded
72 rpl_gtid.rpl_gtid_delete_memory_table_after_start_server Result content mismatch Mismatch in charset value. Result needs to be updated Result recorded

The remaining tests fail due to other reasons and need to be analyzed further:

S.No Test name Reason of failure Details Developer Notes
1 rpl.rpl_special_charset Query failed INSERT failed. Incorrect string value for insert Changed charset of table to latin1
2 rpl.rpl_rewrt_db Result content mismatch Mismatch in warnings and result Changed charset of table to latin1
3 main.mysqlbinlog Query failed Query 'LOAD DATA INFILE' failed. Invalid utf8mb4 character string Changed charset of table to latin1
4 rpl_nogtid.default_row_format_02 Query failed CREATE TABLE failed because specified key was too long Changed charset of column to latin1
5 rpl.rpl_insert_id Query failed CREATE TABLE failed because specified key was too long Reduced length of column
6 rpl.default_row_format_01 Query failed CREATE TABLE failed because specified key was too long Changed charset of table to latin1
7 rpl.rpl_row_corrupt Query failed CREATE TABLE failed because column length was too big Changed charset of table to latin1
8 rpl.rpl_binlog_errors Query failed CREATE TABLE failed because column length was too big Reduced length of column
9 rpl.rpl_func_uuid Query failed INSERT failed. Incorrect string value for insert Changed charset of column to binary
10 rpl.rpl_user_variables Result content mismatch Change in order of result Changed charset of table to latin1
11 rpl.rpl_loaddata_charset Query failed Query 'LOAD DATA INFILE' failed. Invalid utf8mb4 character string Changed charset of table to latin1
12 rpl_nogtid.rpl_stm_binlog_max_cache_size Query failed CREATE TABLE failed because column length was too big Changed charset of table to latin1
13 binlog_nogtid.binlog_unsafe Query failed INSERT failed. Incorrect string value for insert Changed charset of table to latin1
14 rpl_nogtid.rpl_mixed_binlog_max_cache_size Query failed CREATE TABLE failed because column length was too big Changed charset of table to latin1
15 binlog.binlog_stm_blackhole Result content mismatch Mismatch in sub_part Changed charset of table to latin1
16 binlog_nogtid.binlog_old_versions Command failed Command $MYSQL_BINLOG failed. Set --slave_type_conversions=ALL_NON_LOSSY in opt file
17 i_binlog_nogtid.binlog_corrupted_field_length Warnings/errors in server log [ERROR] Slave SQL: Column 1 of table 'test.t1' cannot be converted from type 'varchar(1000)' to type 'varchar(1000)' Set --slave_type_conversions=ALL_NON_LOSSY in opt file
18 rpl.rpl_row_tbl_metadata Query failed SELECT failed. Out of sort memory Changed charset of table to latin1