WL#9394: Move GTID enabled tests to binlog_gtid suite and GTID disabled tests to binlog_nogtid
Status: Complete
Currently in MTR, binlog suite run tests with GTID_MODE=ON and GTID_MODE=OFF. However, the binlog tests use the rpl suite configuration files for GTID enabled tests. The objective of this work-log is to identify binlog tests which can run: 1. only with gtid_mode=ON and move them into a separate suite binlog_gtid 2. only with gtid_mode=OFF and move them into a separate suite binlog_nogtid 3. tests which are independent of GTID modes or can run with both gtid_mode=ON and gtid_mode=OFF will be retained in the existing binlog suite The same changes will be done for binlog internal suites.At the end of this WL, we will have the following test suites: 1. binlog 2. binlog_gtid 3. binlog_nogtid 4. i_binlog 5. i_binlog_gtid 6. i_binlog_nogtid Configuration file details: 1. binlog and i_binlog will use default_mysqld.cnf 2. binlog_nogtid and i_binlog_nogtid will use default_mysqld.cnf. 3. binlog_gtid and i_binlog_gtid will have 2 new .cnf files created. User Documentation ================== Work was done for test suite. No user documentation needed.
FR1. All binlog tests that DO require GTID_MODE=ON SHALL be moved to new suites binlog_gtid & i_binlog_gtid. FR2. All binlog tests that DO require GTID_MODE=OFF SHALL be moved to new suites binlog_nogtid & i_binlog_nogtid. FR3. All binlog tests that DO NOT require any specific GTID mode (can run with both GTID_MODE=ON and GTID_MODE=OFF) will be retained in the binlog & i_binlog suites FR4. suite binlog_gtid WILL be added in the MTR default suite(s) list. FR5. suite binlog_nogtid WILL be added in the MTR default suite(s) list. FR6. binlog_gtid & binlog_nogtid WILL run with 2 new configuration files (.cnf) with GTID_MODE=ON and GTID_MODE=OFF respectively. FR7. Reference of "have_gtid.inc" and "not_gtid_enabled.inc" will be removed from all the binlog tests.
Currently, in binlog tests, the presence of have_gtid.inc is internally mapped in MTR code to identify it as an rpl_gtid test. The presence of "have_gtid.inc" will allow the binlog tests to use the configuration file of rpl_gtid suite. If "have_gtid.inc" is removed from the binlog tests, the test will fail as binlog suite does not have it's own .cnf file. This is a limitation and should be eliminated.
Below is the list of binlog tests that will be migrated: Tests that will be migrated to binlog_gtid; Also the corresponding result files will also be migrated. 1. binlog_group_commit_gtid_order.test 2. binlog_gtid_cache.test 3. binlog_gtid_errors.test 4. binlog_gtid_exhausted.test 5. binlog_gtid_implicit_commit.test 6. binlog_gtid_innodb.test 7. binlog_gtid_mix_ok_packet_all_gtids.test 8. binlog_gtid_mix_response_packet.test 9. binlog_gtid_mysqlbinlog_row_innodb.test 10. binlog_gtid_mysqlbinlog_row_myisam.test 11. binlog_gtid_mysqlbinlog_row.test 12. binlog_gtid_mysqlbinlog_start_stop.test 13. binlog_gtid_next_begin_caused_trx.test 14. binlog_gtid_next_partially_failed_grant.test 15. binlog_gtid_next_partially_failed_stmts.test 16. binlog_gtid_row_ctype_ucs.test 17. binlog_gtids_table_gcov.test 18. binlog_gtid_stm_ctype_ucs.test 19. binlog_gtid_utils.test 20. binlog_mts_logical_clock_gtid.test 21. binlog_mysqlbinlog_concat.test 22. binlog_simulate_crash_and_error_on_compress_gtid_table.test 23. binlog_wait_for_executed_gtid_set_interrupted.test 24. binlog_wait_for_executed_gtid_set_invalid_input.test 25. binlog_wait_for_executed_gtid_set_unsafe_statement.test 26. binlog_xa_modify_gtid_executed_explicitly.test 27. binlog_xa_select_gtid_executed_explicitly_crash.test 28. binlog_xa_trx_gtid_response_packet.test Test that will be migrated to binlog_nogtid; Also the corresponding result file will also be migrated. 1. binlog_bug23533.test 2. binlog_enforce_gtid_consistency_multiple_warnings.test 3. binlog_enforce_gtid_consistency_option.test 4. binlog_enforce_gtid_consistency_tmp_consistent.test 5. binlog_enforce_gtid_consistency_tmp_violation.test 6. binlog_gtid_mode_set_gtid_next.test 7. binlog_gtid_next_single_stmt_trx_rollback.test 8. binlog_gtid_next_temporary_table.test 9. binlog_gtid_simple_recovery.test 10. binlog_gtid_state_update_deadlock.test 11. binlog_implicit_commit.test 12. binlog_innodb.test 13. binlog_mixed_cache_stat.test 14. binlog_mts_logical_clock.test 15. binlog_mysqlbinlog_row_innodb.test 16. binlog_mysqlbinlog_row_myisam.test 17. binlog_mysqlbinlog_row.test 18. binlog_mysqlbinlog_row_trans.test 19. binlog_mysqlbinlog_start_stop_slave_server_id.test 20. binlog_mysqlbinlog_start_stop.test 21. binlog_nogtid_mix_response_packet.test 22. binlog_old_versions.test 23. binlog_row_binlog.test 24. binlog_row_cache_stat.test 25. binlog_row_create_select_crash.test 26. binlog_row_ctype_cp932.test 27. binlog_row_ctype_ucs.test 28. binlog_row_insert_select.test 29. binlog_row_mix_innodb_myisam.test 30. binlog_set_gtid_mode_ongoing_transaction_errors.test 31. binlog_spurious_ddl_errors.test 32. binlog_stm_binlog.test 33. binlog_stm_cache_stat.test 34. binlog_stm_ctype_cp932.test 35. binlog_stm_ctype_ucs.test 36. binlog_stm_insert_select.test 37. binlog_stm_mix_innodb_myisam.test 38. binlog_unsafe.test 39. binlog_wait_for_executed_gtid_set_no_gtid.test 40. binlog_anonymous_ownership.test Following .opt files will be migrated to binlog_gtid suite. 1. binlog_gtid_cache-master.opt 2. binlog_gtid_errors-master.opt 3. binlog_gtid_exhausted-master.opt 4. binlog_gtid_mix_ok_packet_all_gtids-master.opt 5. binlog_gtid_mix_response_packet-master.opt 6. binlog_xa_trx_gtid_response_packet-master.opt Following .opt files will be migrated to binlog_nogtid suite: 1. binlog_enforce_gtid_consistency_multiple_warnings-master.opt 2. binlog_innodb-master.opt 3. binlog_row_binlog-master.opt 4. binlog_row_mix_innodb_myisam-master.opt 5. binlog_set_gtid_mode_ongoing_transaction_errors-master.opt 6. binlog_spurious_ddl_errors-master.opt 7. binlog_stm_binlog-master.opt 8. binlog_stm_cache_stat-master.opt 9. binlog_stm_mix_innodb_myisam-master.opt 10. binlog_unsafe-master.opt ========= I_BINLOG ========= Tests that will be migrated to i_binlog_gtid; The corresponding result file will also be migrated. 1. binlog_gtid_get_string_length.test 2. binlog_gtid_mixed_mysqlbinlog.test 3. binlog_gtid_next_valgrind.test 4. binlog_gtid_rollback_statement.test 5. binlog_gtid_set_gtid_next.test 6. binlog_load_longsetexpr.test 7. binlog_mix_gtid_errors.test Opt files that will be migrated to i_binlog_gtid: 1. binlog_gtid_get_string_length-master.opt 2. binlog_gtid_mixed_mysqlbinlog-master.opt 3. binlog_gtid_next_valgrind-master.opt 4. binlog_gtid_rollback_statement-master.opt 5. binlog_load_longsetexpr-master.opt Test that will be migrated to i_binlog_nogtid; The corresponding result file will also be migrated. 1. binlog_client_5_5_filter_perf_schema.test 2. binlog_corrupted_field_length.test 3. binlog_gtid_for_backups_gtid_mode_off.test Opt files that will be migrated to i_binlog_gtid: 1. binlog_gtid_for_backups_gtid_mode_off-master.opt ========= Clean up ========= As part of clean-up process, dangling opt/result files will be removed from the system. Dangling result/opt files are those for which we do not have the corresponding test files. We cases are found below: Dangling opt files will be removed from the suite: 1. binlog_row_innodb_stat-master.opt 2. binlog_stm_innodb_stat-master.opt Dangling .result file will be removed from the suite: 1. binlog_trx_empty_assertions.result =========== cnf files =========== 1. Below my.cnf will be used for binlog_gtid: ############################################################################# my.cnf ############################################################################# # Use settings from binlog_1slave_base.cnf # add setting to connect the slave to the master by default !include binlog_1slave_base.cnf !include include/default_client.cnf [mysqld] gtid-mode=on enforce-gtid-consistency log-slave-updates ############################################################################# binlog_1slave_base.cnf ############################################################################# # Use default setting for mysqld processes !include include/default_mysqld.cnf # Set innodb-write-io-threads and innodb-read-io-threads to 2, # instead of the default value 4, so that the aio-max-nr limit is # not exceeded when MTR runs rpl tests with parallel 4 or more due # to increased number of concurrent mysqld instances. [mysqld.1] # Run the master.sh script before starting this process #!run-master-sh log-bin= master-bin loose-innodb_write_io_threads= 2 loose-innodb_read_io_threads= 2 2. Below my.cnf file will be used for i_binlog_gtid suite: ############################################################################# my.cnf ############################################################################# # Use configuration file of binlog_gtid suite !include suite/binlog_gtid/my.cnf
Copyright (c) 2000, 2024, Oracle Corporation and/or its affiliates. All rights reserved.