From 09f7fb80d76be0a2430a0a3a859075c1f32d7b82 Mon Sep 17 00:00:00 2001 From: Fariha Shaikh Date: Fri, 12 Jun 2026 19:32:09 +0000 Subject: [PATCH] MDEV-39153 Fix sporadic main.change_master_default mismatch The test used "restart_abort:" in the expect file, which MTR never recognized. It fell through to the else branch, deleted restart_opts, and started the server with defaults (heartbeat_period=60 instead of 0). Replace restart_abort with direct --exec $MYSQLD calls. All new code of the whole pull request, including one or several files that are either new files or modified ones, are contributed under the BSD-new license. I am contributing on behalf of my employer Amazon Web Services, Inc. --- mysql-test/main/change_master_default.result | 4 ---- mysql-test/main/change_master_default.test | 25 +++++++++----------- 2 files changed, 11 insertions(+), 18 deletions(-) diff --git a/mysql-test/main/change_master_default.result b/mysql-test/main/change_master_default.result index 9178c395339fb..a7505ae702969 100644 --- a/mysql-test/main/change_master_default.result +++ b/mysql-test/main/change_master_default.result @@ -201,10 +201,6 @@ slave_heartbeat_period 15.000 RESET REPLICA 'unset' ALL; CHANGE MASTER 'unset' TO master_host='127.0.1.3'; # Validate command line options -# restart_abort: --master-heartbeat-period='' -# restart_abort: --master-heartbeat-period=123abc -# restart_abort: --master-heartbeat-period=-1 -# restart_abort: --master-heartbeat-period=4294967.296 # restart: --skip-slave-start --master-heartbeat-period=0.000499 SELECT connection_name, slave_heartbeat_period FROM information_schema.slave_status ORDER BY connection_name; diff --git a/mysql-test/main/change_master_default.test b/mysql-test/main/change_master_default.test index a4e25c8d86992..0b9db8a0c291a 100644 --- a/mysql-test/main/change_master_default.test +++ b/mysql-test/main/change_master_default.test @@ -10,6 +10,8 @@ # only need CHANGE MASTER and IS.slave_status --source include/have_binlog_format_mixed.inc +# --exec $MYSQLD bypasses MTR's --user=root injection +--source include/not_as_root.inc CREATE PROCEDURE show_defaultable_fields() SELECT connection_name, @@ -104,21 +106,16 @@ CHANGE MASTER 'unset' TO master_host='127.0.1.3'; --echo # Validate command line options # Invalid `--master-heartbeat-period` values should abort the server -# (`restart_abort` includes a wait for the server to exit on its own, -# e.g., due to a startup error.) --source include/shutdown_mysqld.inc ---let $restart_parameters= restart_abort: --master-heartbeat-period='' ---echo # $restart_parameters ---write_line "$restart_parameters" $_expect_file_name ---let $restart_parameters= restart_abort: --master-heartbeat-period=123abc ---echo # $restart_parameters ---write_line "$restart_parameters" $_expect_file_name ---let $restart_parameters= restart_abort: --master-heartbeat-period=-1 ---echo # $restart_parameters ---write_line "$restart_parameters" $_expect_file_name ---let $restart_parameters= restart_abort: --master-heartbeat-period=4294967.296 ---echo # $restart_parameters ---write_line "$restart_parameters" $_expect_file_name + +--disable_result_log +--error 1 +--exec $MYSQLD --defaults-group-suffix=.1 --defaults-file=$MYSQLTEST_VARDIR/my.cnf --master-heartbeat-period=123abc +--error 1 +--exec $MYSQLD --defaults-group-suffix=.1 --defaults-file=$MYSQLTEST_VARDIR/my.cnf --master-heartbeat-period=-1 +--error 1 +--exec $MYSQLD --defaults-group-suffix=.1 --defaults-file=$MYSQLTEST_VARDIR/my.cnf --master-heartbeat-period=4294967.296 +--enable_result_log # Numbers between 0 and 0.5 exclusive should warn about rounding to 0 (disabled) --let $restart_parameters= --skip-slave-start --master-heartbeat-period=0.000499