#At file:///home/acorreia/workspace.sun/repository.mysql/bzrwork/wl-4858/mysql-6.0-bugteam-push/ based on revid:davi.arnaut@stripped
3409 Alfranio Correia 2009-06-29
Rep: Testing failure injection WL#4856.
modified:
sql/rpl_mi_file.cc
sql/rpl_rli.cc
sql/rpl_rli_file.cc
sql/slave.cc
=== modified file 'sql/rpl_mi_file.cc'
--- a/sql/rpl_mi_file.cc 2009-04-02 16:14:14 +0000
+++ b/sql/rpl_mi_file.cc 2009-06-29 10:44:27 +0000
@@ -58,9 +58,15 @@ Master_info_file::Master_info_file(const
int Master_info_file::do_check()
{
char fname[FN_REFLEN+128];
+
+ DBUG_ENTER("Master_info_file::do_check");
+
+ if (DBUG_EVALUATE_IF("Master_info_file::do_check_fault_injection", 1, 0))
+ DBUG_RETURN(1);
+
fn_format(fname, info_fname, mysql_data_home, "", 4+32);
- return (access(fname,F_OK));
+ DBUG_RETURN(access(fname,F_OK));
}
int Master_info_file::do_init_info()
@@ -69,6 +75,9 @@ int Master_info_file::do_init_info()
char fname[FN_REFLEN+128];
DBUG_ENTER("Master_info_file::do_init_info");
+ if (DBUG_EVALUATE_IF("Master_info_file::do_init_info_fault_injection", 1, 0))
+ DBUG_RETURN(1);
+
mysql= 0;
file_id= 1;
fn_format(fname, info_fname, mysql_data_home, "", 4+32);
@@ -278,6 +287,9 @@ int Master_info_file::do_flush_info()
DBUG_ENTER("Master_info_file::do_flush_info");
DBUG_PRINT("enter",("master_pos: %ld", (long) master_log_pos));
+ if (DBUG_EVALUATE_IF("Master_info_file::do_flush_info_fault_injection", 1, 0))
+ DBUG_RETURN(1);
+
/*
In certain cases this code may create master.info files that seems
corrupted, because of extra lines filled with garbage in the end
=== modified file 'sql/rpl_rli.cc'
--- a/sql/rpl_rli.cc 2009-05-21 09:00:52 +0000
+++ b/sql/rpl_rli.cc 2009-06-29 10:44:27 +0000
@@ -965,6 +965,9 @@ int Relay_log_info::init_info(bool abort
DBUG_ENTER("Relay_log_info::init_info");
+ if (DBUG_EVALUATE_IF("Relay_log_info::init_info_fault_injection", 1, 0))
+ DBUG_RETURN(1);
+
if (abort_if_no_info && do_check())
DBUG_RETURN(error);
=== modified file 'sql/rpl_rli_file.cc'
--- a/sql/rpl_rli_file.cc 2009-04-02 16:14:14 +0000
+++ b/sql/rpl_rli_file.cc 2009-06-29 10:44:27 +0000
@@ -42,9 +42,15 @@ Relay_log_info_file::Relay_log_info_file
int Relay_log_info_file::do_check()
{
char fname[FN_REFLEN+128];
+
+ DBUG_ENTER("Relay_log_info_file::do_check");
+
+ if (DBUG_EVALUATE_IF("Relay_log_info_file::do_check_fault_injection", 1, 0))
+ DBUG_RETURN(1);
+
fn_format(fname, info_fname, mysql_data_home, "", 4+32);
- return (access(fname,F_OK));
+ DBUG_RETURN(access(fname,F_OK));
}
int Relay_log_info_file::do_init_info()
@@ -55,6 +61,9 @@ int Relay_log_info_file::do_init_info()
DBUG_ENTER("Relay_log_info_file::do_init_info");
DBUG_ASSERT(!no_storage); // Don't init if there is no storage
+ if (DBUG_EVALUATE_IF("Relay_log_info_file::do_init_info_fault_injection", 1, 0))
+ DBUG_RETURN(1);
+
fn_format(fname, info_fname, mysql_data_home, "", 4+32);
/* if file does not exist */
=== modified file 'sql/slave.cc'
--- a/sql/slave.cc 2009-06-25 23:28:42 +0000
+++ b/sql/slave.cc 2009-06-29 10:44:27 +0000
@@ -364,6 +364,9 @@ int init_info(Master_info* mi, bool abor
DBUG_ENTER("init_info");
DBUG_ASSERT(mi != NULL && mi->rli != NULL);
+
+ if (DBUG_EVALUATE_IF("init_info_fault_injection", 1, 0))
+ DBUG_RETURN(1);
/*
We need a mutex while we are changing master info parameters to
@@ -375,7 +378,7 @@ int init_info(Master_info* mi, bool abor
/*
This takes care of the startup dependency between the master_info
and relay_info. If a user wants to start just the SLAVE_IO Thread
- but the SLAVE_SQL is not properly configure it.
+ but the SLAVE_SQL is not properly configured, we need to do so.
In the future, we should try to improve this by making the
init_info idempotent.
@@ -564,6 +567,9 @@ int terminate_slave_threads(Master_info*
{
DBUG_ENTER("terminate_slave_threads");
+ if (DBUG_EVALUATE_IF("terminate_slave_threads_fault_injection", 1, 0))
+ DBUG_RETURN(ER_SLAVE_NOT_RUNNING);
+
if (!mi->inited)
DBUG_RETURN(0); /* successfully do nothing */
int error,force_all = (thread_mask & SLAVE_FORCE_ALL);
@@ -636,6 +642,10 @@ terminate_slave_thread(THD *thd,
bool skip_lock)
{
DBUG_ENTER("terminate_slave_thread");
+
+ if (DBUG_EVALUATE_IF("terminate_slave_thread_fault_injection", 1, 0))
+ DBUG_RETURN(ER_SLAVE_NOT_RUNNING);
+
if (!skip_lock)
{
pthread_mutex_lock(term_lock);
@@ -715,6 +725,9 @@ int start_slave_thread(pthread_handler h
ulong start_id;
DBUG_ENTER("start_slave_thread");
+ if (DBUG_EVALUATE_IF("start_slave_thread_fault_injection", 1, 0))
+ DBUG_RETURN(ER_MASTER_INFO);
+
DBUG_ASSERT(mi->inited);
if (start_lock)
@@ -787,6 +800,9 @@ int start_slave_threads(bool need_slave_
int error=0;
DBUG_ENTER("start_slave_threads");
+ if (DBUG_EVALUATE_IF("start_slave_threads_fault_injection", 1, 0))
+ DBUG_RETURN(ER_MASTER_INFO);
+
if (need_slave_mutex)
{
lock_io = &mi->run_lock;
Attachment: [text/bzr-bundle]
| Thread |
|---|
| • bzr commit into mysql-pe branch (alfranio.correia:3409) WL#4856 | Alfranio Correia | 29 Jun |