manual up-merge of Bug#11755281
This commit is contained in:
commit
ed1ba992c1
@ -20,6 +20,8 @@ hex(a)
|
|||||||
616263
|
616263
|
||||||
set GLOBAL init_connect="adsfsdfsdfs";
|
set GLOBAL init_connect="adsfsdfsdfs";
|
||||||
select @a;
|
select @a;
|
||||||
|
ERROR 08S01: Aborted connection to db: 'test' user: 'user_1' host: 'localhost' (init_connect command failed)
|
||||||
|
select @a;
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
drop table t1;
|
drop table t1;
|
||||||
End of 4.1 tests
|
End of 4.1 tests
|
||||||
|
@ -36,6 +36,14 @@ connection con0;
|
|||||||
set GLOBAL init_connect="adsfsdfsdfs";
|
set GLOBAL init_connect="adsfsdfsdfs";
|
||||||
connect (con5,localhost,user_1,,);
|
connect (con5,localhost,user_1,,);
|
||||||
connection con5;
|
connection con5;
|
||||||
|
# BUG#11755281/47032: ERROR 2006 / ERROR 2013 INSTEAD OF PROPER ERROR MESSAGE
|
||||||
|
# We now throw a proper error message here:
|
||||||
|
--replace_regex /connection .* to/connection to/
|
||||||
|
--error ER_NEW_ABORTING_CONNECTION
|
||||||
|
select @a;
|
||||||
|
# We got disconnected after receiving the above error message; any further
|
||||||
|
# requests should fail with a notice that no one's listening to us.
|
||||||
|
# --error CR_SERVER_GONE_ERROR,CR_SERVER_LOST
|
||||||
--error 2013,2006
|
--error 2013,2006
|
||||||
select @a;
|
select @a;
|
||||||
connection con0;
|
connection con0;
|
||||||
|
@ -668,13 +668,38 @@ void prepare_new_connection_state(THD* thd)
|
|||||||
execute_init_command(thd, &opt_init_connect, &LOCK_sys_init_connect);
|
execute_init_command(thd, &opt_init_connect, &LOCK_sys_init_connect);
|
||||||
if (thd->is_error())
|
if (thd->is_error())
|
||||||
{
|
{
|
||||||
thd->killed= THD::KILL_CONNECTION;
|
ulong packet_length;
|
||||||
|
NET *net= &thd->net;
|
||||||
|
|
||||||
sql_print_warning(ER(ER_NEW_ABORTING_CONNECTION),
|
sql_print_warning(ER(ER_NEW_ABORTING_CONNECTION),
|
||||||
thd->thread_id,(thd->db ? thd->db : "unconnected"),
|
thd->thread_id,
|
||||||
|
thd->db ? thd->db : "unconnected",
|
||||||
sctx->user ? sctx->user : "unauthenticated",
|
sctx->user ? sctx->user : "unauthenticated",
|
||||||
sctx->host_or_ip, "init_connect command failed");
|
sctx->host_or_ip, "init_connect command failed");
|
||||||
sql_print_warning("%s", thd->stmt_da->message());
|
sql_print_warning("%s", thd->stmt_da->message());
|
||||||
|
|
||||||
|
thd->lex->current_select= 0;
|
||||||
|
my_net_set_read_timeout(net, thd->variables.net_wait_timeout);
|
||||||
|
thd->clear_error();
|
||||||
|
net_new_transaction(net);
|
||||||
|
packet_length= my_net_read(net);
|
||||||
|
/*
|
||||||
|
If my_net_read() failed, my_error() has been already called,
|
||||||
|
and the main Diagnostics Area contains an error condition.
|
||||||
|
*/
|
||||||
|
if (packet_length != packet_error)
|
||||||
|
my_error(ER_NEW_ABORTING_CONNECTION, MYF(0),
|
||||||
|
thd->thread_id,
|
||||||
|
thd->db ? thd->db : "unconnected",
|
||||||
|
sctx->user ? sctx->user : "unauthenticated",
|
||||||
|
sctx->host_or_ip, "init_connect command failed");
|
||||||
|
|
||||||
|
thd->server_status&= ~SERVER_STATUS_CLEAR_SET;
|
||||||
|
thd->protocol->end_statement();
|
||||||
|
thd->killed = THD::KILL_CONNECTION;
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
thd->proc_info=0;
|
thd->proc_info=0;
|
||||||
thd->set_time();
|
thd->set_time();
|
||||||
thd->init_for_queries();
|
thd->init_for_queries();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user