summaryrefslogtreecommitdiff
path: root/sql/slave.cc
diff options
context:
space:
mode:
authorunknown <monty@mashka.mysql.fi>2002-07-19 21:57:53 +0300
committerunknown <monty@mashka.mysql.fi>2002-07-19 21:57:53 +0300
commita9c52ff7172308af72f062a1cae86671cbb1ed7a (patch)
treea8e6eca0f255ec9e518c1f9974e71335bdfa63aa /sql/slave.cc
parent887aaff93919e9f359133d8c7a86277789d130e1 (diff)
downloadmariadb-git-a9c52ff7172308af72f062a1cae86671cbb1ed7a.tar.gz
Fix wrong usage of constant which could cause mysqld to use index when doing an update/delete on small tables.
code cleanup Docs/manual.texi: changelog sql/ha_innobase.cc: Removed compiler warning sql/slave.cc: Cleanup comments and indentation for suppressing connect warnings sql/sql_db.cc: clean up comment sql/sql_delete.cc: Fix wrong usage of constant which could cause mysqld to use index when doing an update/delete on small tables. sql/sql_update.cc: Fix wrong usage of constant which could cause mysqld to use index when doing an update/delete on small tables.
Diffstat (limited to 'sql/slave.cc')
-rw-r--r--sql/slave.cc57
1 files changed, 27 insertions, 30 deletions
diff --git a/sql/slave.cc b/sql/slave.cc
index b11fcc0d847..adbf3c106cc 100644
--- a/sql/slave.cc
+++ b/sql/slave.cc
@@ -55,7 +55,7 @@ inline bool slave_killed(THD* thd);
static int init_slave_thread(THD* thd);
static int safe_connect(THD* thd, MYSQL* mysql, MASTER_INFO* mi);
static int safe_reconnect(THD* thd, MYSQL* mysql, MASTER_INFO* mi,
- bool suppress_prints_as_normal_reconnect_after_timeout);
+ bool suppress_warnings);
static int safe_sleep(THD* thd, int sec);
static int request_table_dump(MYSQL* mysql, char* db, char* table);
static int create_table_from_dump(THD* thd, NET* net, const char* db,
@@ -839,13 +839,15 @@ command");
return 0;
}
-/* We set suppress_prints_as_normal_reconnect_after_timeout TRUE
-when a normal net read timeout has caused us to try a reconnect.
-We do not want to print anything to the error log in this case
-because this a anormal event in an idle server. */
-static uint read_event(MYSQL* mysql, MASTER_INFO *mi,
- bool* suppress_prints_as_normal_reconnect_after_timeout)
+/*
+ We set suppress_warnings TRUE when a normal net read timeout has
+ caused us to try a reconnect. We do not want to print anything to
+ the error log in this case because this a anormal event in an idle
+ server.
+*/
+
+static uint read_event(MYSQL* mysql, MASTER_INFO *mi, bool* suppress_warnings)
{
uint len = packet_error;
@@ -855,24 +857,25 @@ static uint read_event(MYSQL* mysql, MASTER_INFO *mi,
if (disconnect_slave_event_count && !(events_till_disconnect--))
return packet_error;
#endif
- *suppress_prints_as_normal_reconnect_after_timeout = 0;
+ *suppress_warnings= 0;
len = mc_net_safe_read(mysql);
if (len == packet_error || (long) len < 1)
{
- if (mc_mysql_errno(mysql) == ER_NET_READ_INTERRUPTED) {
-
- /* We are trying a normal reconnect after a read timeout;
- we suppress prints to .err file as long as the reconnect
- happens without problems */
- *suppress_prints_as_normal_reconnect_after_timeout = TRUE;
+ if (mc_mysql_errno(mysql) == ER_NET_READ_INTERRUPTED)
+ {
+ /*
+ We are trying a normal reconnect after a read timeout;
+ we suppress prints to .err file as long as the reconnect
+ happens without problems
+ */
+ *suppress_warnings= TRUE;
}
-
- if (!(*suppress_prints_as_normal_reconnect_after_timeout))
+ else
sql_print_error("Error reading packet from server: %s (\
server_errno=%d)",
- mc_mysql_error(mysql), mc_mysql_errno(mysql));
+ mc_mysql_error(mysql), mc_mysql_errno(mysql));
return packet_error;
}
@@ -1380,15 +1383,13 @@ try again, log '%s' at postion %s", RPL_LOG_NAME,
while(!slave_killed(thd))
{
- bool suppress_prints_as_normal_reconnect_after_timeout = 0;
+ bool suppress_warnings= 0;
thd->proc_info = "Reading master update";
- uint event_len = read_event(mysql, &glob_mi,
- &suppress_prints_as_normal_reconnect_after_timeout);
+ uint event_len = read_event(mysql, &glob_mi, &suppress_warnings);
if(slave_killed(thd))
{
- suppress_prints_as_normal_reconnect_after_timeout = 0;
sql_print_error("Slave thread killed while reading event");
goto err;
}
@@ -1397,7 +1398,6 @@ try again, log '%s' at postion %s", RPL_LOG_NAME,
{
if(mc_mysql_errno(mysql) == ER_NET_PACKET_TOO_LARGE)
{
- suppress_prints_as_normal_reconnect_after_timeout = 0;
sql_print_error("Log entry on master is longer than \
max_allowed_packet on slave. Slave thread will be aborted. If the entry is \
really supposed to be that long, restart the server with a higher value of \
@@ -1415,7 +1415,6 @@ max_allowed_packet. The current value is %ld", max_allowed_packet);
if(slave_killed(thd))
{
- suppress_prints_as_normal_reconnect_after_timeout = 0;
sql_print_error("Slave thread killed while waiting to \
reconnect after a failed read");
goto err;
@@ -1423,21 +1422,19 @@ reconnect after a failed read");
thd->proc_info = "Reconnecting after a failed read";
last_failed_pos= glob_mi.pos;
- if (!suppress_prints_as_normal_reconnect_after_timeout)
+ if (!suppress_warnings)
sql_print_error("Slave: Failed reading log event, \
reconnecting to retry, log '%s' position %s", RPL_LOG_NAME,
llstr(last_failed_pos, llbuff));
if(safe_reconnect(thd, mysql, &glob_mi,
- suppress_prints_as_normal_reconnect_after_timeout)
+ suppress_warnings)
|| slave_killed(thd))
{
- suppress_prints_as_normal_reconnect_after_timeout = 0;
sql_print_error("Slave thread killed during or after a \
reconnect done to recover from failed read");
goto err;
}
- suppress_prints_as_normal_reconnect_after_timeout = 0;
goto connected;
} // if(event_len == packet_error)
@@ -1550,7 +1547,7 @@ static int safe_connect(THD* thd, MYSQL* mysql, MASTER_INFO* mi)
*/
static int safe_reconnect(THD* thd, MYSQL* mysql, MASTER_INFO* mi,
- bool suppress_prints_as_normal_reconnect_after_timeout)
+ bool suppress_warnings)
{
int slave_was_killed;
int last_errno= -2; // impossible error
@@ -1570,7 +1567,7 @@ static int safe_reconnect(THD* thd, MYSQL* mysql, MASTER_INFO* mi,
/* Don't repeat last error */
if (mc_mysql_errno(mysql) != last_errno)
{
- suppress_prints_as_normal_reconnect_after_timeout = 0;
+ suppress_warnings= 0;
sql_print_error("Slave thread: error re-connecting to master: \
%s, last_errno=%d, retry in %d sec",
mc_mysql_error(mysql), last_errno=mc_mysql_errno(mysql),
@@ -1587,7 +1584,7 @@ static int safe_reconnect(THD* thd, MYSQL* mysql, MASTER_INFO* mi,
if (!slave_was_killed)
{
- if (!suppress_prints_as_normal_reconnect_after_timeout)
+ if (!suppress_warnings)
sql_print_error("Slave: reconnected to master '%s@%s:%d',\
replication resumed in log '%s' at position %s", glob_mi.user,
glob_mi.host, glob_mi.port,