Skip to content

Commit

Permalink
MDEV-10559: main.mysql_client_test_nonblock crashes in buildbot on 10.0
Browse files Browse the repository at this point in the history
fix for async operations
  • Loading branch information
sanja-byelkin committed Aug 16, 2016
1 parent df09d5e commit 05f61ba
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 5 deletions.
3 changes: 2 additions & 1 deletion sql-common/client.c
Expand Up @@ -3644,7 +3644,8 @@ CLI_MYSQL_REAL_CONNECT(MYSQL *mysql,const char *host, const char *user,
/* Free alloced memory */
end_server(mysql);
mysql_close_free(mysql);
if (!(client_flag & CLIENT_REMEMBER_OPTIONS))
if (!(client_flag & CLIENT_REMEMBER_OPTIONS) &&
!mysql->options.extension->async_context)
mysql_close_free_options(mysql);
}
DBUG_RETURN(0);
Expand Down
6 changes: 5 additions & 1 deletion sql-common/mysql_async.c
Expand Up @@ -455,7 +455,11 @@ MK_ASYNC_START_BODY(
parms.db= db;
parms.port= port;
parms.unix_socket= unix_socket;
parms.client_flags= client_flags;
/*
async wrapper enforce the CLIENT_REMEMBER_OPTIONS flag to be
functional (otherwise it can't operate)
*/
parms.client_flags= client_flags | CLIENT_REMEMBER_OPTIONS;
},
NULL,
r_ptr,
Expand Down
6 changes: 3 additions & 3 deletions tests/mysql_client_test.c
Expand Up @@ -18443,7 +18443,7 @@ static void test_bug58036()

if (mysql_real_connect(conn, opt_host, opt_user,
opt_password, opt_db ? opt_db : "test",
opt_port, opt_unix_socket, CLIENT_REMEMBER_OPTIONS))
opt_port, opt_unix_socket, 0))
{
if (!opt_silent)
printf("mysql_real_connect() succeeded (failure expected)\n");
Expand All @@ -18469,7 +18469,7 @@ static void test_bug58036()
mysql_options(conn, MYSQL_SET_CHARSET_NAME, "latin1");
if (!mysql_real_connect(conn, opt_host, opt_user,
opt_password, opt_db ? opt_db : "test",
opt_port, opt_unix_socket, CLIENT_REMEMBER_OPTIONS))
opt_port, opt_unix_socket, 0))
{
if (!opt_silent)
printf("mysql_real_connect() failed: %s (%d)\n",
Expand Down Expand Up @@ -19344,7 +19344,7 @@ static void test_big_packet()

if (!(mysql_real_connect(mysql_local, opt_host, opt_user,
opt_password, current_db, opt_port,
opt_unix_socket, CLIENT_REMEMBER_OPTIONS)))
opt_unix_socket, 0)))
{
mysql_close(mysql_local);
fprintf(stderr, "\n connection failed(%s)", mysql_error(mysql_local));
Expand Down

0 comments on commit 05f61ba

Please sign in to comment.