diff options
author | Oleksandr Byelkin <sanja@mariadb.com> | 2016-08-16 21:23:57 +0200 |
---|---|---|
committer | Oleksandr Byelkin <sanja@mariadb.com> | 2016-08-16 21:23:57 +0200 |
commit | 05f61ba46046ca835071a73b9255e787dcce9255 (patch) | |
tree | eee5377759fd35c8f432771ea0636315945e5b57 | |
parent | df09d5e724af93fea096fd841fad9e93d2615ad5 (diff) | |
download | mariadb-git-05f61ba46046ca835071a73b9255e787dcce9255.tar.gz |
MDEV-10559: main.mysql_client_test_nonblock crashes in buildbot on 10.0
fix for async operations
-rw-r--r-- | sql-common/client.c | 3 | ||||
-rw-r--r-- | sql-common/mysql_async.c | 6 | ||||
-rw-r--r-- | tests/mysql_client_test.c | 6 |
3 files changed, 10 insertions, 5 deletions
diff --git a/sql-common/client.c b/sql-common/client.c index 184d7983a00..78c5426367c 100644 --- a/sql-common/client.c +++ b/sql-common/client.c @@ -3644,7 +3644,8 @@ error: /* 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); diff --git a/sql-common/mysql_async.c b/sql-common/mysql_async.c index 80b4f390641..decf48e0e69 100644 --- a/sql-common/mysql_async.c +++ b/sql-common/mysql_async.c @@ -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, diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c index 640ba298556..2acec60166e 100644 --- a/tests/mysql_client_test.c +++ b/tests/mysql_client_test.c @@ -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"); @@ -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", @@ -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)); |