From d4d4ba9a9f49a6abc9cd00924e1e33bfd2278b87 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 30 Oct 2007 15:39:50 +0300 Subject: [PATCH] Fix failing init_connect.test (5.1-runtime). sql/sql_connect.cc: Fix failing init_connect.test (5.1-runtime). Add comments for the unjustified use of thd->is_slave_error. --- sql/sql_connect.cc | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/sql/sql_connect.cc b/sql/sql_connect.cc index afd97c27a55..c4367b2a8fb 100644 --- a/sql/sql_connect.cc +++ b/sql/sql_connect.cc @@ -1030,7 +1030,17 @@ static void prepare_new_connection_state(THD* thd) if (sys_init_connect.value_length && !(sctx->master_access & SUPER_ACL)) { execute_init_command(thd, &sys_init_connect, &LOCK_sys_init_connect); - if (thd->net.report_error) + /* + execute_init_command calls net_send_error. + If there was an error during execution of the init statements, + the error at this moment is present in thd->net.last_error and also + thd->is_slave_error and thd->net.report_error are set. + net_send_error sends the contents of thd->net.last_error and + clears thd->net.report_error. It doesn't, however, clean + thd->is_slave_error or thd->net.last_error. Here we make use of this + fact. + */ + if (thd->is_slave_error) { thd->killed= THD::KILL_CONNECTION; sql_print_warning(ER(ER_NEW_ABORTING_CONNECTION),