BUG#54144: ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE is hard coded
The error message for ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE was hard coded. Additionally, the same error was used in three separate error symptoms: 1. when heartbeat period exceeds the value of slave_net_timeout, 2. when it is smaller than 1 milisecond and 3. when it was not in range, ie, either negative or greater than the maximum allowed. We fix this by splitting into three distinct errors and by removing the message from the source code and moving it to the errmsg-utf8.txt file.
This commit is contained in:
parent
95f8d9a2a4
commit
06e921818a
@ -6,19 +6,19 @@ show status like 'Slave_heartbeat_period';;
|
||||
Variable_name Slave_heartbeat_period
|
||||
Value 5.000
|
||||
change master to master_host='127.0.0.1',master_port=MASTER_PORT, master_user='root', master_heartbeat_period= 4294968;
|
||||
ERROR HY000: The requested value for the heartbeat period is negative or exceeds the maximum 4294967 seconds
|
||||
ERROR HY000: The requested value for the heartbeat period is either negative or exceeds the maximum allowed (4294967 seconds).
|
||||
show status like 'Slave_heartbeat_period';;
|
||||
Variable_name Slave_heartbeat_period
|
||||
Value 5.000
|
||||
change master to master_host='127.0.0.1',master_port=MASTER_PORT, master_user='root', master_heartbeat_period= 0.0009999;
|
||||
Warnings:
|
||||
Warning 1624 The requested value for the heartbeat period is less than 1 msec. The period is reset to zero which means no heartbeats will be sending
|
||||
Warning 1701 The requested value for the heartbeat period is less than 1 millisecond. The value is reset to 0, meaning that heartbeating will effectively be disabled.
|
||||
show status like 'Slave_heartbeat_period';;
|
||||
Variable_name Slave_heartbeat_period
|
||||
Value 0.000
|
||||
change master to master_host='127.0.0.1',master_port=MASTER_PORT, master_user='root', master_heartbeat_period= 4294967;
|
||||
Warnings:
|
||||
Warning 1624 The requested value for the heartbeat period exceeds the value of `slave_net_timeout' sec. A sensible value for the period should be less than the timeout.
|
||||
Warning 1702 The requested value for the heartbeat period exceeds the value of `slave_net_timeout' seconds. A sensible value for the period should be less than the timeout.
|
||||
show status like 'Slave_heartbeat_period';;
|
||||
Variable_name Slave_heartbeat_period
|
||||
Value 4294967.000
|
||||
@ -30,7 +30,7 @@ reset slave;
|
||||
set @@global.slave_net_timeout= 5;
|
||||
change master to master_host='127.0.0.1',master_port=MASTER_PORT, master_user='root', master_heartbeat_period= 5.001;
|
||||
Warnings:
|
||||
Warning 1624 The requested value for the heartbeat period exceeds the value of `slave_net_timeout' sec. A sensible value for the period should be less than the timeout.
|
||||
Warning 1702 The requested value for the heartbeat period exceeds the value of `slave_net_timeout' seconds. A sensible value for the period should be less than the timeout.
|
||||
show status like 'Slave_heartbeat_period';;
|
||||
Variable_name Slave_heartbeat_period
|
||||
Value 5.001
|
||||
@ -42,7 +42,7 @@ Variable_name Slave_heartbeat_period
|
||||
Value 4.000
|
||||
set @@global.slave_net_timeout= 3 /* must be a warning */;
|
||||
Warnings:
|
||||
Warning 1624 The current value for master_heartbeat_period exceeds the new value of `slave_net_timeout' sec. A sensible value for the period should be less than the timeout.
|
||||
Warning 1702 The requested value for the heartbeat period exceeds the value of `slave_net_timeout' seconds. A sensible value for the period should be less than the timeout.
|
||||
reset slave;
|
||||
drop table if exists t1;
|
||||
set @@global.slave_net_timeout= 10;
|
||||
|
@ -38,14 +38,14 @@ RESET SLAVE;
|
||||
*** Warning if updated slave_net_timeout < slave_heartbeat_timeout ***
|
||||
SET @@global.slave_net_timeout=FLOOR(SLAVE_HEARTBEAT_TIMEOUT)-1;
|
||||
Warnings:
|
||||
Warning 1624 The current value for master_heartbeat_period exceeds the new value of `slave_net_timeout' sec. A sensible value for the period should be less than the timeout.
|
||||
Warning 1702 The requested value for the heartbeat period exceeds the value of `slave_net_timeout' seconds. A sensible value for the period should be less than the timeout.
|
||||
SET @@global.slave_net_timeout=@restore_slave_net_timeout;
|
||||
RESET SLAVE;
|
||||
|
||||
*** Warning if updated slave_heartbeat_timeout > slave_net_timeout ***
|
||||
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_HEARTBEAT_PERIOD=SLAVE_NET_TIMEOUT;
|
||||
Warnings:
|
||||
Warning 1624 The requested value for the heartbeat period exceeds the value of `slave_net_timeout' sec. A sensible value for the period should be less than the timeout.
|
||||
Warning 1702 The requested value for the heartbeat period exceeds the value of `slave_net_timeout' seconds. A sensible value for the period should be less than the timeout.
|
||||
RESET SLAVE;
|
||||
|
||||
*** CHANGE MASTER statement only updates slave_heartbeat_period ***
|
||||
@ -140,7 +140,7 @@ Slave_heartbeat_period 0.001
|
||||
RESET SLAVE;
|
||||
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_HEARTBEAT_PERIOD=0.0009;
|
||||
Warnings:
|
||||
Warning 1624 The requested value for the heartbeat period is less than 1 msec. The period is reset to zero which means no heartbeats will be sending
|
||||
Warning 1701 The requested value for the heartbeat period is less than 1 millisecond. The period is reset to 0, meaning that heartbeating will effectively be disabled.
|
||||
SHOW GLOBAL STATUS LIKE 'slave_heartbeat_period';
|
||||
Variable_name Value
|
||||
Slave_heartbeat_period 0.000
|
||||
@ -149,19 +149,19 @@ RESET SLAVE;
|
||||
*** Max slave_heartbeat_timeout ***
|
||||
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_HEARTBEAT_PERIOD=4294967;
|
||||
Warnings:
|
||||
Warning 1624 The requested value for the heartbeat period exceeds the value of `slave_net_timeout' sec. A sensible value for the period should be less than the timeout.
|
||||
Warning 1702 The requested value for the heartbeat period exceeds the value of `slave_net_timeout' seconds. A sensible value for the period should be less than the timeout.
|
||||
SHOW GLOBAL STATUS LIKE 'slave_heartbeat_period';
|
||||
Variable_name Value
|
||||
Slave_heartbeat_period 4294967.000
|
||||
RESET SLAVE;
|
||||
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_HEARTBEAT_PERIOD=4294968;
|
||||
ERROR HY000: The requested value for the heartbeat period is negative or exceeds the maximum 4294967 seconds
|
||||
ERROR HY000: The requested value for the heartbeat period is either negative or exceeds the maximum allowed (4294967 seconds).
|
||||
RESET SLAVE;
|
||||
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_HEARTBEAT_PERIOD=8589935;
|
||||
ERROR HY000: The requested value for the heartbeat period is negative or exceeds the maximum 4294967 seconds
|
||||
ERROR HY000: The requested value for the heartbeat period is either negative or exceeds the maximum allowed (4294967 seconds).
|
||||
RESET SLAVE;
|
||||
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_HEARTBEAT_PERIOD=4294967296;
|
||||
ERROR HY000: The requested value for the heartbeat period is negative or exceeds the maximum 4294967 seconds
|
||||
ERROR HY000: The requested value for the heartbeat period is either negative or exceeds the maximum allowed (4294967 seconds).
|
||||
RESET SLAVE;
|
||||
|
||||
*** Misc incorrect values ***
|
||||
|
@ -6152,7 +6152,7 @@ ER_WARN_ENGINE_TRANSACTION_ROLLBACK
|
||||
ER_SLAVE_HEARTBEAT_FAILURE
|
||||
eng "Unexpected master's heartbeat data: %s"
|
||||
ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE
|
||||
eng "The requested value for the heartbeat period %s %s"
|
||||
eng "The requested value for the heartbeat period is either negative or exceeds the maximum allowed (%s seconds)."
|
||||
|
||||
ER_NDB_REPLICATION_SCHEMA_ERROR
|
||||
eng "Bad schema for mysql.ndb_replication table. Message: %-.64s"
|
||||
@ -6379,3 +6379,10 @@ ER_SET_PASSWORD_AUTH_PLUGIN
|
||||
|
||||
ER_GRANT_PLUGIN_USER_EXISTS
|
||||
eng "GRANT with IDENTIFIED WITH is illegal because the user %-.*s already exists"
|
||||
|
||||
ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN
|
||||
eng "The requested value for the heartbeat period is less than 1 millisecond. The value is reset to 0, meaning that heartbeating will effectively be disabled."
|
||||
|
||||
ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX
|
||||
eng "The requested value for the heartbeat period exceeds the value of `slave_net_timeout' seconds. A sensible value for the period should be less than the timeout."
|
||||
|
||||
|
@ -1936,32 +1936,25 @@ master_def:
|
||||
if (Lex->mi.heartbeat_period > SLAVE_MAX_HEARTBEAT_PERIOD ||
|
||||
Lex->mi.heartbeat_period < 0.0)
|
||||
{
|
||||
const char format[]= "%d seconds";
|
||||
const char format[]= "%d";
|
||||
char buf[4*sizeof(SLAVE_MAX_HEARTBEAT_PERIOD) + sizeof(format)];
|
||||
sprintf(buf, format, SLAVE_MAX_HEARTBEAT_PERIOD);
|
||||
my_error(ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE,
|
||||
MYF(0), " is negative or exceeds the maximum ", buf);
|
||||
my_error(ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE, MYF(0), buf);
|
||||
MYSQL_YYABORT;
|
||||
}
|
||||
if (Lex->mi.heartbeat_period > slave_net_timeout)
|
||||
{
|
||||
push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_WARN,
|
||||
ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE,
|
||||
ER(ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE),
|
||||
" exceeds the value of `slave_net_timeout' sec.",
|
||||
" A sensible value for the period should be"
|
||||
" less than the timeout.");
|
||||
ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX,
|
||||
ER(ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX));
|
||||
}
|
||||
if (Lex->mi.heartbeat_period < 0.001)
|
||||
{
|
||||
if (Lex->mi.heartbeat_period != 0.0)
|
||||
{
|
||||
push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_WARN,
|
||||
ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE,
|
||||
ER(ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE),
|
||||
" is less than 1 msec.",
|
||||
" The period is reset to zero which means"
|
||||
" no heartbeats will be sending");
|
||||
ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN,
|
||||
ER(ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN));
|
||||
Lex->mi.heartbeat_period= 0.0;
|
||||
}
|
||||
Lex->mi.heartbeat_opt= LEX_MASTER_INFO::LEX_MI_DISABLE;
|
||||
|
@ -2943,11 +2943,8 @@ static bool fix_slave_net_timeout(sys_var *self, THD *thd, enum_var_type type)
|
||||
(active_mi? active_mi->heartbeat_period : 0.0)));
|
||||
if (active_mi && slave_net_timeout < active_mi->heartbeat_period)
|
||||
push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
|
||||
ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE,
|
||||
"The current value for master_heartbeat_period"
|
||||
" exceeds the new value of `slave_net_timeout' sec."
|
||||
" A sensible value for the period should be"
|
||||
" less than the timeout.");
|
||||
ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX,
|
||||
ER(ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX));
|
||||
mysql_mutex_unlock(&LOCK_active_mi);
|
||||
return false;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user