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
|
Variable_name Slave_heartbeat_period
|
||||||
Value 5.000
|
Value 5.000
|
||||||
change master to master_host='127.0.0.1',master_port=MASTER_PORT, master_user='root', master_heartbeat_period= 4294968;
|
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';;
|
show status like 'Slave_heartbeat_period';;
|
||||||
Variable_name Slave_heartbeat_period
|
Variable_name Slave_heartbeat_period
|
||||||
Value 5.000
|
Value 5.000
|
||||||
change master to master_host='127.0.0.1',master_port=MASTER_PORT, master_user='root', master_heartbeat_period= 0.0009999;
|
change master to master_host='127.0.0.1',master_port=MASTER_PORT, master_user='root', master_heartbeat_period= 0.0009999;
|
||||||
Warnings:
|
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';;
|
show status like 'Slave_heartbeat_period';;
|
||||||
Variable_name Slave_heartbeat_period
|
Variable_name Slave_heartbeat_period
|
||||||
Value 0.000
|
Value 0.000
|
||||||
change master to master_host='127.0.0.1',master_port=MASTER_PORT, master_user='root', master_heartbeat_period= 4294967;
|
change master to master_host='127.0.0.1',master_port=MASTER_PORT, master_user='root', master_heartbeat_period= 4294967;
|
||||||
Warnings:
|
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';;
|
show status like 'Slave_heartbeat_period';;
|
||||||
Variable_name Slave_heartbeat_period
|
Variable_name Slave_heartbeat_period
|
||||||
Value 4294967.000
|
Value 4294967.000
|
||||||
@ -30,7 +30,7 @@ reset slave;
|
|||||||
set @@global.slave_net_timeout= 5;
|
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;
|
change master to master_host='127.0.0.1',master_port=MASTER_PORT, master_user='root', master_heartbeat_period= 5.001;
|
||||||
Warnings:
|
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';;
|
show status like 'Slave_heartbeat_period';;
|
||||||
Variable_name Slave_heartbeat_period
|
Variable_name Slave_heartbeat_period
|
||||||
Value 5.001
|
Value 5.001
|
||||||
@ -42,7 +42,7 @@ Variable_name Slave_heartbeat_period
|
|||||||
Value 4.000
|
Value 4.000
|
||||||
set @@global.slave_net_timeout= 3 /* must be a warning */;
|
set @@global.slave_net_timeout= 3 /* must be a warning */;
|
||||||
Warnings:
|
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;
|
reset slave;
|
||||||
drop table if exists t1;
|
drop table if exists t1;
|
||||||
set @@global.slave_net_timeout= 10;
|
set @@global.slave_net_timeout= 10;
|
||||||
|
@ -38,14 +38,14 @@ RESET SLAVE;
|
|||||||
*** Warning if updated slave_net_timeout < slave_heartbeat_timeout ***
|
*** Warning if updated slave_net_timeout < slave_heartbeat_timeout ***
|
||||||
SET @@global.slave_net_timeout=FLOOR(SLAVE_HEARTBEAT_TIMEOUT)-1;
|
SET @@global.slave_net_timeout=FLOOR(SLAVE_HEARTBEAT_TIMEOUT)-1;
|
||||||
Warnings:
|
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;
|
SET @@global.slave_net_timeout=@restore_slave_net_timeout;
|
||||||
RESET SLAVE;
|
RESET SLAVE;
|
||||||
|
|
||||||
*** Warning if updated slave_heartbeat_timeout > slave_net_timeout ***
|
*** 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;
|
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_HEARTBEAT_PERIOD=SLAVE_NET_TIMEOUT;
|
||||||
Warnings:
|
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;
|
RESET SLAVE;
|
||||||
|
|
||||||
*** CHANGE MASTER statement only updates slave_heartbeat_period ***
|
*** CHANGE MASTER statement only updates slave_heartbeat_period ***
|
||||||
@ -140,7 +140,7 @@ Slave_heartbeat_period 0.001
|
|||||||
RESET SLAVE;
|
RESET SLAVE;
|
||||||
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_HEARTBEAT_PERIOD=0.0009;
|
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_HEARTBEAT_PERIOD=0.0009;
|
||||||
Warnings:
|
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';
|
SHOW GLOBAL STATUS LIKE 'slave_heartbeat_period';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Slave_heartbeat_period 0.000
|
Slave_heartbeat_period 0.000
|
||||||
@ -149,19 +149,19 @@ RESET SLAVE;
|
|||||||
*** Max slave_heartbeat_timeout ***
|
*** Max slave_heartbeat_timeout ***
|
||||||
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_HEARTBEAT_PERIOD=4294967;
|
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_HEARTBEAT_PERIOD=4294967;
|
||||||
Warnings:
|
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';
|
SHOW GLOBAL STATUS LIKE 'slave_heartbeat_period';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Slave_heartbeat_period 4294967.000
|
Slave_heartbeat_period 4294967.000
|
||||||
RESET SLAVE;
|
RESET SLAVE;
|
||||||
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_HEARTBEAT_PERIOD=4294968;
|
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;
|
RESET SLAVE;
|
||||||
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_HEARTBEAT_PERIOD=8589935;
|
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;
|
RESET SLAVE;
|
||||||
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_PORT, MASTER_USER='root', MASTER_HEARTBEAT_PERIOD=4294967296;
|
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;
|
RESET SLAVE;
|
||||||
|
|
||||||
*** Misc incorrect values ***
|
*** Misc incorrect values ***
|
||||||
|
@ -6152,7 +6152,7 @@ ER_WARN_ENGINE_TRANSACTION_ROLLBACK
|
|||||||
ER_SLAVE_HEARTBEAT_FAILURE
|
ER_SLAVE_HEARTBEAT_FAILURE
|
||||||
eng "Unexpected master's heartbeat data: %s"
|
eng "Unexpected master's heartbeat data: %s"
|
||||||
ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE
|
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
|
ER_NDB_REPLICATION_SCHEMA_ERROR
|
||||||
eng "Bad schema for mysql.ndb_replication table. Message: %-.64s"
|
eng "Bad schema for mysql.ndb_replication table. Message: %-.64s"
|
||||||
@ -6379,3 +6379,10 @@ ER_SET_PASSWORD_AUTH_PLUGIN
|
|||||||
|
|
||||||
ER_GRANT_PLUGIN_USER_EXISTS
|
ER_GRANT_PLUGIN_USER_EXISTS
|
||||||
eng "GRANT with IDENTIFIED WITH is illegal because the user %-.*s already 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."
|
||||||
|
|
||||||
|
@ -1933,35 +1933,28 @@ master_def:
|
|||||||
| MASTER_HEARTBEAT_PERIOD_SYM EQ NUM_literal
|
| MASTER_HEARTBEAT_PERIOD_SYM EQ NUM_literal
|
||||||
{
|
{
|
||||||
Lex->mi.heartbeat_period= (float) $3->val_real();
|
Lex->mi.heartbeat_period= (float) $3->val_real();
|
||||||
if (Lex->mi.heartbeat_period > SLAVE_MAX_HEARTBEAT_PERIOD ||
|
if (Lex->mi.heartbeat_period > SLAVE_MAX_HEARTBEAT_PERIOD ||
|
||||||
Lex->mi.heartbeat_period < 0.0)
|
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)];
|
char buf[4*sizeof(SLAVE_MAX_HEARTBEAT_PERIOD) + sizeof(format)];
|
||||||
sprintf(buf, format, SLAVE_MAX_HEARTBEAT_PERIOD);
|
sprintf(buf, format, SLAVE_MAX_HEARTBEAT_PERIOD);
|
||||||
my_error(ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE,
|
my_error(ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE, MYF(0), buf);
|
||||||
MYF(0), " is negative or exceeds the maximum ", buf);
|
MYSQL_YYABORT;
|
||||||
MYSQL_YYABORT;
|
|
||||||
}
|
}
|
||||||
if (Lex->mi.heartbeat_period > slave_net_timeout)
|
if (Lex->mi.heartbeat_period > slave_net_timeout)
|
||||||
{
|
{
|
||||||
push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_WARN,
|
push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_WARN,
|
||||||
ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE,
|
ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX,
|
||||||
ER(ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE),
|
ER(ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX));
|
||||||
" exceeds the value of `slave_net_timeout' sec.",
|
|
||||||
" A sensible value for the period should be"
|
|
||||||
" less than the timeout.");
|
|
||||||
}
|
}
|
||||||
if (Lex->mi.heartbeat_period < 0.001)
|
if (Lex->mi.heartbeat_period < 0.001)
|
||||||
{
|
{
|
||||||
if (Lex->mi.heartbeat_period != 0.0)
|
if (Lex->mi.heartbeat_period != 0.0)
|
||||||
{
|
{
|
||||||
push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_WARN,
|
push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_WARN,
|
||||||
ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE,
|
ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN,
|
||||||
ER(ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE),
|
ER(ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN));
|
||||||
" is less than 1 msec.",
|
|
||||||
" The period is reset to zero which means"
|
|
||||||
" no heartbeats will be sending");
|
|
||||||
Lex->mi.heartbeat_period= 0.0;
|
Lex->mi.heartbeat_period= 0.0;
|
||||||
}
|
}
|
||||||
Lex->mi.heartbeat_opt= LEX_MASTER_INFO::LEX_MI_DISABLE;
|
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)));
|
(active_mi? active_mi->heartbeat_period : 0.0)));
|
||||||
if (active_mi && slave_net_timeout < active_mi->heartbeat_period)
|
if (active_mi && slave_net_timeout < active_mi->heartbeat_period)
|
||||||
push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
|
push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
|
||||||
ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE,
|
ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX,
|
||||||
"The current value for master_heartbeat_period"
|
ER(ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX));
|
||||||
" exceeds the new value of `slave_net_timeout' sec."
|
|
||||||
" A sensible value for the period should be"
|
|
||||||
" less than the timeout.");
|
|
||||||
mysql_mutex_unlock(&LOCK_active_mi);
|
mysql_mutex_unlock(&LOCK_active_mi);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user