From e62283b900ac54c3f9a159e1f7ec872cff6a00f3 Mon Sep 17 00:00:00 2001 From: "nick@nick.leippe.com" <> Date: Thu, 30 May 2002 17:31:25 -0700 Subject: [PATCH] Fixed bug: load table from master w/empty master would hang. Now it properly returns error. Added respective test case. --- mysql-test/r/rpl_empty_master_crash.result | 12 ++++++++++++ mysql-test/t/rpl_empty_master_crash.test | 7 +++++++ sql/repl_failsafe.cc | 3 +++ 3 files changed, 22 insertions(+) create mode 100644 mysql-test/r/rpl_empty_master_crash.result create mode 100644 mysql-test/t/rpl_empty_master_crash.test diff --git a/mysql-test/r/rpl_empty_master_crash.result b/mysql-test/r/rpl_empty_master_crash.result new file mode 100644 index 00000000000..6ae5d15031b --- /dev/null +++ b/mysql-test/r/rpl_empty_master_crash.result @@ -0,0 +1,12 @@ +slave stop; +reset master; +reset slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +slave start; +use test; +drop table if exists t1; +show slave status; +Master_Host Master_User Master_Port Connect_retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter Exec_master_log_pos Relay_log_space + 0 0 0 0 No No 0 0 0 0 +load table t1 from master; +Error in fetch_master_table diff --git a/mysql-test/t/rpl_empty_master_crash.test b/mysql-test/t/rpl_empty_master_crash.test new file mode 100644 index 00000000000..158b59169ee --- /dev/null +++ b/mysql-test/t/rpl_empty_master_crash.test @@ -0,0 +1,7 @@ +source include/master-slave.inc; +connection master; +use test; +drop table if exists t1; +show slave status; +--error 1218 +load table t1 from master; diff --git a/sql/repl_failsafe.cc b/sql/repl_failsafe.cc index 257418d1682..fab1491fc2b 100644 --- a/sql/repl_failsafe.cc +++ b/sql/repl_failsafe.cc @@ -608,6 +608,9 @@ int show_slave_hosts(THD* thd) int connect_to_master(THD *thd, MYSQL* mysql, MASTER_INFO* mi) { + if (!mi->host || !*mi->host) /* empty host */ + return 1; + if (!mc_mysql_connect(mysql, mi->host, mi->user, mi->password, 0, mi->port, 0, 0)) {