From: Bjorn Munch Date: September 14 2010 12:53pm Subject: bzr push into mysql-5.1-mtr branch (bjorn.munch:2928 to 2930) Bug#55426 Bug#55546 List-Archive: http://lists.mysql.com/commits/118211 X-Bug: 55426,55546 Message-Id: <201009141254.o8ECs0tw021766@khepri15.norway.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1062139088==" --===============1062139088== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline 2930 Bjorn Munch 2010-09-14 Bug #55426 mysqltest crashes when trying to unlock not acquired mutex Bug #55546 mysqltest fails to create a new thread on HPUX Missing call to pthread_join(), in embedded mode This independently solves both problems, see 55426 for details. Addendum: cannot test against a pthread_t, adds boolean flag instead modified: client/mysqltest.cc 2929 Bjorn Munch 2010-09-10 Bug #56647 Valgrind warnings for memory leak in mysqltest.cc Moved an init_dynamic_string() from before to after potential die() modified: client/mysqltest.cc 2928 Bjorn Munch 2010-08-31 Bug #56383 provide option to restart mysqld after each mtr test Added --force-restart modified: mysql-test/mysql-test-run.pl === modified file 'client/mysqltest.cc' --- a/client/mysqltest.cc 2010-08-30 09:26:40 +0000 +++ b/client/mysqltest.cc 2010-09-14 12:04:37 +0000 @@ -242,7 +242,9 @@ struct st_connection int cur_query_len; pthread_mutex_t mutex; pthread_cond_t cond; + pthread_t tid; int query_done; + my_bool has_thread; #endif /*EMBEDDED_LIBRARY*/ }; @@ -733,8 +735,6 @@ pthread_handler_t send_one_query(void *a static int do_send_query(struct st_connection *cn, const char *q, int q_len, int flags) { - pthread_t tid; - if (flags & QUERY_REAP_FLAG) return mysql_send_query(&cn->mysql, q, q_len); @@ -745,9 +745,10 @@ static int do_send_query(struct st_conne cn->cur_query= q; cn->cur_query_len= q_len; cn->query_done= 0; - if (pthread_create(&tid, &cn_thd_attrib, send_one_query, (void*)cn)) + if (pthread_create(&cn->tid, &cn_thd_attrib, send_one_query, (void*)cn)) die("Cannot start new thread for query"); + cn->has_thread= TRUE; return 0; } @@ -760,6 +761,11 @@ static void wait_query_thread_end(struct pthread_cond_wait(&con->cond, &con->mutex); pthread_mutex_unlock(&con->mutex); } + if (con->has_thread) + { + pthread_join(con->tid, NULL); + con->has_thread= FALSE; + } } #else /*EMBEDDED_LIBRARY*/ @@ -5187,6 +5193,7 @@ void do_connect(struct st_command *comma #ifdef EMBEDDED_LIBRARY con_slot->query_done= 1; + con_slot->has_thread= FALSE; #endif if (!mysql_init(&con_slot->mysql)) die("Failed on mysql_init()"); @@ -7309,11 +7316,10 @@ void run_query(struct st_connection *cn, (flags & QUERY_REAP_FLAG)); DBUG_ENTER("run_query"); - init_dynamic_string(&ds_warnings, NULL, 0, 256); - if (cn->pending && (flags & QUERY_SEND_FLAG)) die ("Cannot run query on connection between send and reap"); + init_dynamic_string(&ds_warnings, NULL, 0, 256); /* Evaluate query if this is an eval command */ --===============1062139088== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/bjorn.munch@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: bjorn.munch@stripped # target_branch: file:///home/bm136801/my/valgreap-51/ # testament_sha1: 04e98a21ae1ff673089cf26e5c70b59fbb162ffa # timestamp: 2010-09-14 14:54:00 +0200 # base_revision_id: bjorn.munch@stripped\ # n3nqi74m9dwtp34s # # Begin bundle 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 --===============1062139088==--