From: Bjorn Munch Date: September 20 2010 9:23am Subject: bzr push into mysql-5.1-mtr branch (bjorn.munch:2930 to 2932) Bug#55426 List-Archive: http://lists.mysql.com/commits/118577 X-Bug: 55426 Message-Id: <201009200923.o8K9N9Xk029325@khepri15.norway.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1651923464==" --===============1651923464== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline 2932 Bjorn Munch 2010-09-20 Bug #55426 mysqltest crashes when trying to unlock not acquired mutex Follow-up: don't call pthread_join() on Windows This change only valid for 5.1 modified: client/mysqltest.cc 2931 Bjorn Munch 2010-09-15 Bug #56753 mtr silently ignores junk after backticks When stepping backward to end of `` expression, check for illegal chars modified: client/mysqltest.cc mysql-test/include/setup_fake_relay_log.inc mysql-test/r/mysqltest.result mysql-test/suite/rpl/t/rpl_row_tbl_metadata.test mysql-test/t/mysqltest.test 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 === modified file 'client/mysqltest.cc' --- a/client/mysqltest.cc 2010-09-14 12:04:37 +0000 +++ b/client/mysqltest.cc 2010-09-20 09:21:27 +0000 @@ -763,7 +763,10 @@ static void wait_query_thread_end(struct } if (con->has_thread) { +#ifndef __WIN__ + /* May hang on Windows, but the problem it solves is not seen there */ pthread_join(con->tid, NULL); +#endif con->has_thread= FALSE; } } @@ -2181,8 +2184,14 @@ void var_query_set(VAR *var, const char DBUG_ENTER("var_query_set"); LINT_INIT(res); + /* Only white space or ) allowed past ending ` */ while (end > query && *end != '`') + { + if (*end && (*end != ' ' && *end != '\t' && *end != '\n' && *end != ')')) + die("Spurious text after `query` expression"); --end; + } + if (query == end) die("Syntax error in query, missing '`'"); ++query; === modified file 'mysql-test/include/setup_fake_relay_log.inc' --- a/mysql-test/include/setup_fake_relay_log.inc 2010-02-02 15:16:47 +0000 +++ b/mysql-test/include/setup_fake_relay_log.inc 2010-09-15 12:56:22 +0000 @@ -72,7 +72,7 @@ copy_file $fake_relay_log $_fake_relay_l if (`SELECT LENGTH(@@secure_file_priv) > 0`) { - -- let $_file_priv_dir= `SELECT @@secure_file_priv`; + -- let $_file_priv_dir= `SELECT @@secure_file_priv` -- let $_suffix= `SELECT UUID()` -- let $_tmp_file= $_file_priv_dir/fake-index.$_suffix === modified file 'mysql-test/r/mysqltest.result' --- a/mysql-test/r/mysqltest.result 2010-08-10 10:13:58 +0000 +++ b/mysql-test/r/mysqltest.result 2010-09-15 12:56:22 +0000 @@ -177,6 +177,9 @@ mysqltest: At line 1: End of line junk d " mysqltest: At line 1: Extra delimiter ";" found mysqltest: At line 1: Extra delimiter ";" found +mysqltest: At line 1: Spurious text after `query` expression +mysqltest: At line 1: Spurious text after `query` expression +mysqltest: At line 2: Spurious text after `query` expression mysqltest: At line 1: Missing argument(s) to 'error' mysqltest: At line 1: Missing argument(s) to 'error' mysqltest: At line 1: The sqlstate definition must start with an uppercase S === modified file 'mysql-test/suite/rpl/t/rpl_row_tbl_metadata.test' --- a/mysql-test/suite/rpl/t/rpl_row_tbl_metadata.test 2010-01-14 10:49:40 +0000 +++ b/mysql-test/suite/rpl/t/rpl_row_tbl_metadata.test 2010-09-15 12:56:22 +0000 @@ -205,7 +205,7 @@ DROP TABLE `t1`; -- echo === Using mysqlbinlog to detect failure. Before the patch mysqlbinlog would find a corrupted event, thence would fail. --- let $MYSQLD_DATADIR= `SELECT @@datadir`; +-- let $MYSQLD_DATADIR= `SELECT @@datadir` -- exec $MYSQL_BINLOG $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug42749.binlog -- remove_file $MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug42749.binlog @@ -330,7 +330,7 @@ while($ntables) -- echo ### assertion: check that binlog is not corrupt. Using mysqlbinlog to -- echo ### detect failure. Before the patch mysqlbinlog would find -- echo ### a corrupted event, thence would fail. --- let $MYSQLD_DATADIR= `SELECT @@datadir`; +-- let $MYSQLD_DATADIR= `SELECT @@datadir` -- exec $MYSQL_BINLOG -v --hex $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug50018.binlog ## clean up === modified file 'mysql-test/t/mysqltest.test' --- a/mysql-test/t/mysqltest.test 2010-08-10 10:13:58 +0000 +++ b/mysql-test/t/mysqltest.test 2010-09-15 12:56:22 +0000 @@ -494,6 +494,23 @@ remove_file $MYSQLTEST_VARDIR/tmp/mysqlt --error 1 --exec echo "--disable_query_log;" | $MYSQL_TEST 2>&1 +# +# Extra text after `` +# +--error 1 +-- exec echo "let \$x= \`select 1\` BOO ;" | $MYSQL_TEST 2>&1 +--error 1 +-- exec echo "--let \$x= \`select 1\`;" | $MYSQL_TEST 2>&1 +--write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql +# Missing ; in next line should be detected and cause failure +let $x= `select 1` +let $x= 2; +echo $x; +EOF +--error 1 +--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1 +remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql; + # Allow trailing # comment --sleep 1 # Wait for insert delayed to be executed. --===============1651923464== 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/backtick-51/ # testament_sha1: 8dddbf965810552d086523d739c737fcfe017547 # timestamp: 2010-09-20 11:23:09 +0200 # base_revision_id: bjorn.munch@stripped\ # 56w52t6vqpdy12kd # # Begin bundle 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 1sS17tB2BxNDZsC8kGByD/Yu5IpwoSFYez70 --===============1651923464==--