From 3c59ba32ab9cca29e01bd8dd2130af83ead8bde0 Mon Sep 17 00:00:00 2001 From: Guilhem Bichot Date: Mon, 16 Mar 2009 11:09:22 +0100 Subject: Fix for BUG#43001 ""maria.maria-no-logging fails sporadically on valgrind in PS mode" mysqltest was reading free-ed memory, which fooled the test's reconnection detection. client/mysqltest.cc: Fix for BUG#43001 ""maria.maria-no-logging fails sporadically on valgrind in PS mode" mysqltest was closing (=>free()ing) the "stmt" object before reading stmt->last_errno (and storing that into $mysql_errno). As wait_until_connected_again.inc tests the value of $mysql_errno to know if reconnection has been accomplished, it was fooled. --- client/mysqltest.cc | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/client/mysqltest.cc b/client/mysqltest.cc index aaed61ea827..9093dd80f7e 100644 --- a/client/mysqltest.cc +++ b/client/mysqltest.cc @@ -6859,14 +6859,6 @@ end: dynstr_free(&ds_execute_warnings); } - - /* Close the statement if - no reconnect, need new prepare */ - if (mysql->reconnect) - { - mysql_stmt_close(stmt); - cur_con->stmt= NULL; - } - /* We save the return code (mysql_stmt_errno(stmt)) from the last call sent to the server into the mysqltest builtin variable $mysql_errno. This @@ -6875,6 +6867,13 @@ end: var_set_errno(mysql_stmt_errno(stmt)); + /* Close the statement if reconnect, need new prepare */ + if (mysql->reconnect) + { + mysql_stmt_close(stmt); + cur_con->stmt= NULL; + } + DBUG_VOID_RETURN; } -- cgit v1.2.1