-
Sven Sandberg authored
WL#7083 step 3.7. GTID_MODE settable: Make commands accessing GTID_MODE safe for concurrent SET GTID_MODE. @sql/rpl_gtid.h - Require that get_gtid_mode() is used with a lock. Either the new lock gtid_mode_lock, or global_sid_lock.rdlock (or wrlock), or LOCK_msr_map, or mysql_bin_log.get_log_lock must be held. @sql/item_func.cc - Update wait_for_executed_gtid_set to use lock when reading gtid_mode - Update wait_for_sql_thread_after_gtids ot use lock when reading gtid_mode. @sql/mysqld.cc - Update main to use global_sid_lock.rdlock when reading gtid_mode. @sql/rpl_binlog_sender.cc - Update Binlog_sender::init to use global_sid_lock.rdlock when reading gtid_mode. @sql/rpl_gtid_execution.cc - Update gtid_reacquire_ownership_if_anonymous to use global_sid_lock.rdlock when reading gtid_mode. @sql/rpl_gtid_misc.cc - Implement the lock assertions for get_gtid_mode. @sql/rpl_gtid_state.cc - Update generate_automatic_gtid to use global_sid_lock.rdlock when reading gtid_mode. @sql/rpl_mi.cc - Update Master_info::read_info to use global_sid_lock.rdlock when reading gtid_mode. @sql/rpl_slave.cc - Update IO thread initialization code to use global_sid_lock.rdlock when reading gtid_mode. - Fix a strange condition where positions in heartbeat events are sanity-checked. This should not depend on gtid_mode. Also remove check for mi->get_master_log_name() != NULL; this is redundant, since if it was NULL the previous memcmp would crash. - Update IO thread queueing code to use global_sid_lock.rdlock when reading gtid_mode. - Update CHANGE MASTER to use lock_msr_map when reading gtid_mode. @sql/sql_class.cc - Call gtid_post_statement_checks regardless of gtid_mode. @sql/sys_vars.cc - Update check_slave_skip_counter to use global_sid_lock.rdlock when reading gtid_mode. - Update check_enforce_gtid_consistency to use global_sid_lock.rdlock when reading gtid_mode. - Update check_gtid_next_list to use global_sid_lock.rdlock when reading gtid_mode. @sql/transaction.cc - Clear the thd->status & SERVER_STATUS_IN_TRANS bit regardless of gtid_mode.
Sven Sandberg authoredWL#7083 step 3.7. GTID_MODE settable: Make commands accessing GTID_MODE safe for concurrent SET GTID_MODE. @sql/rpl_gtid.h - Require that get_gtid_mode() is used with a lock. Either the new lock gtid_mode_lock, or global_sid_lock.rdlock (or wrlock), or LOCK_msr_map, or mysql_bin_log.get_log_lock must be held. @sql/item_func.cc - Update wait_for_executed_gtid_set to use lock when reading gtid_mode - Update wait_for_sql_thread_after_gtids ot use lock when reading gtid_mode. @sql/mysqld.cc - Update main to use global_sid_lock.rdlock when reading gtid_mode. @sql/rpl_binlog_sender.cc - Update Binlog_sender::init to use global_sid_lock.rdlock when reading gtid_mode. @sql/rpl_gtid_execution.cc - Update gtid_reacquire_ownership_if_anonymous to use global_sid_lock.rdlock when reading gtid_mode. @sql/rpl_gtid_misc.cc - Implement the lock assertions for get_gtid_mode. @sql/rpl_gtid_state.cc - Update generate_automatic_gtid to use global_sid_lock.rdlock when reading gtid_mode. @sql/rpl_mi.cc - Update Master_info::read_info to use global_sid_lock.rdlock when reading gtid_mode. @sql/rpl_slave.cc - Update IO thread initialization code to use global_sid_lock.rdlock when reading gtid_mode. - Fix a strange condition where positions in heartbeat events are sanity-checked. This should not depend on gtid_mode. Also remove check for mi->get_master_log_name() != NULL; this is redundant, since if it was NULL the previous memcmp would crash. - Update IO thread queueing code to use global_sid_lock.rdlock when reading gtid_mode. - Update CHANGE MASTER to use lock_msr_map when reading gtid_mode. @sql/sql_class.cc - Call gtid_post_statement_checks regardless of gtid_mode. @sql/sys_vars.cc - Update check_slave_skip_counter to use global_sid_lock.rdlock when reading gtid_mode. - Update check_enforce_gtid_consistency to use global_sid_lock.rdlock when reading gtid_mode. - Update check_gtid_next_list to use global_sid_lock.rdlock when reading gtid_mode. @sql/transaction.cc - Clear the thd->status & SERVER_STATUS_IN_TRANS bit regardless of gtid_mode.
Loading