summaryrefslogtreecommitdiff
path: root/sql/sql_repl.cc
diff options
context:
space:
mode:
authorguilhem@mysql.com <>2003-03-17 22:51:56 +0100
committerguilhem@mysql.com <>2003-03-17 22:51:56 +0100
commit87e1c552ed7e1e4c1ce65c0c7ba18291f1b3915f (patch)
tree5d9a0eaa1fe759e9fccf20738544fe2eab9bbbe8 /sql/sql_repl.cc
parent7761805ecb0055933ce4141f83f8315f9879cf5a (diff)
downloadmariadb-git-87e1c552ed7e1e4c1ce65c0c7ba18291f1b3915f.tar.gz
New variable rli->ignore_log_space_limit to resolve
a deadlock between I/O and SQL threads in replication when relay_log_space is too small. This fixes bug #79.
Diffstat (limited to 'sql/sql_repl.cc')
-rw-r--r--sql/sql_repl.cc8
1 files changed, 4 insertions, 4 deletions
diff --git a/sql/sql_repl.cc b/sql/sql_repl.cc
index 5e90bbf1b0f..d670c673b4a 100644
--- a/sql/sql_repl.cc
+++ b/sql/sql_repl.cc
@@ -858,22 +858,21 @@ int change_master(THD* thd, MASTER_INFO* mi)
if (lex_mi->relay_log_name)
{
- need_relay_log_purge = 0;
- mi->rli.skip_log_purge=1;
+ need_relay_log_purge= 0;
strmake(mi->rli.relay_log_name,lex_mi->relay_log_name,
sizeof(mi->rli.relay_log_name)-1);
}
if (lex_mi->relay_log_pos)
{
- need_relay_log_purge=0;
+ need_relay_log_purge= 0;
mi->rli.relay_log_pos=lex_mi->relay_log_pos;
}
flush_master_info(mi);
if (need_relay_log_purge)
{
- mi->rli.skip_log_purge=0;
+ mi->rli.skip_log_purge= 0;
thd->proc_info="purging old relay logs";
if (purge_relay_logs(&mi->rli, thd,
0 /* not only reset, but also reinit */,
@@ -887,6 +886,7 @@ int change_master(THD* thd, MASTER_INFO* mi)
else
{
const char* msg;
+ mi->rli.skip_log_purge= 1;
/* Relay log is already initialized */
if (init_relay_log_pos(&mi->rli,
mi->rli.relay_log_name,