From: Bjorn Munch Date: November 27 2010 11:34am Subject: bzr commit into mysql-trunk-bugfixing branch (bjorn.munch:3401) List-Archive: http://lists.mysql.com/commits/125213 Message-Id: <201011271134.oARBYn1U003047@khepri15.norway.sun.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit #At file:///home/bm136801/my/merge-tr/ based on revid:wlad@stripped 3401 Bjorn Munch 2010-11-27 [merge] merge from trunk-mtr modified: client/mysqltest.cc mysql-test/extra/rpl_tests/rpl_change_master.test mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test mysql-test/extra/rpl_tests/rpl_implicit_commit_binlog.test mysql-test/include/restart_mysqld.inc mysql-test/lib/mtr_cases.pm mysql-test/mysql-test-run.pl mysql-test/r/mysqltest.result mysql-test/suite/binlog/t/binlog_max_extension.test mysql-test/suite/rpl/t/rpl_heartbeat_basic.test mysql-test/suite/rpl/t/rpl_migration_crash_safe.test mysql-test/suite/rpl/t/rpl_trigger.test mysql-test/t/mysqltest.test mysql-test/t/server_uuid_embedded.test === modified file 'client/mysqltest.cc' --- a/client/mysqltest.cc 2010-11-26 13:46:21 +0000 +++ b/client/mysqltest.cc 2010-11-27 11:34:31 +0000 @@ -5689,6 +5689,17 @@ void do_block(enum block_cmd cmd, struct while (my_isspace(charset_info, *curr_ptr)) curr_ptr++; + /* Strip off trailing white space */ + while (my_isspace(charset_info, expr_end[-1])) + expr_end--; + /* strip off ' or " around the string */ + if (*curr_ptr == '\'' || *curr_ptr == '"') + { + if (expr_end[-1] != *curr_ptr) + die("Unterminated string value"); + curr_ptr++; + expr_end--; + } VAR v2; var_init(&v2,0,0,0,0); eval_expr(&v2, curr_ptr, &expr_end); === modified file 'mysql-test/extra/rpl_tests/rpl_change_master.test' --- a/mysql-test/extra/rpl_tests/rpl_change_master.test 2010-11-25 11:20:16 +0000 +++ b/mysql-test/extra/rpl_tests/rpl_change_master.test 2010-11-27 11:34:31 +0000 @@ -207,16 +207,12 @@ if ($retry_count_before != $retry_count_ ## Server restart persisting test --echo ### stop slave server ---write_file $MYSQLTEST_VARDIR/tmp/mysqld.2.expect -wait -EOF +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.2.expect --shutdown_server 10 --source include/wait_until_disconnected.inc --echo ### start slave server ---append_file $MYSQLTEST_VARDIR/tmp/mysqld.2.expect -restart -EOF +--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.2.expect --enable_reconnect --source include/wait_until_connected_again.inc @@ -266,16 +262,12 @@ if (`SELECT $retry_count6 <> $retry_coun -- let $ignore_new_value= query_get_value(SHOW SLAVE STATUS, Replicate_Ignore_Server_Ids, 1) --echo ### stop slave server ---write_file $MYSQLTEST_VARDIR/tmp/mysqld.2.expect -wait -EOF +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.2.expect --shutdown_server 10 --source include/wait_until_disconnected.inc --echo ### start slave server ---append_file $MYSQLTEST_VARDIR/tmp/mysqld.2.expect -restart -EOF +--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.2.expect --enable_reconnect --source include/wait_until_connected_again.inc === modified file 'mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test' --- a/mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test 2010-10-21 13:25:40 +0000 +++ b/mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test 2010-11-26 13:39:15 +0000 @@ -53,9 +53,7 @@ source include/wait_for_slave_to_start.i connection master; # Write file to make mysql-test-run.pl expect the "crash", but don't start # it until it's told to ---write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect -wait -EOF +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect # Send shutdown to the connected server and give # it 10 seconds to die before zapping it @@ -85,9 +83,7 @@ source include/wait_for_slave_io_error.i eval set @@global.debug = "-d,$dbug_sync_point"; # Write file to make mysql-test-run.pl start up the server again ---append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect -restart -EOF +--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect connection master; # Turn on reconnect === modified file 'mysql-test/extra/rpl_tests/rpl_implicit_commit_binlog.test' --- a/mysql-test/extra/rpl_tests/rpl_implicit_commit_binlog.test 2010-11-17 10:23:22 +0000 +++ b/mysql-test/extra/rpl_tests/rpl_implicit_commit_binlog.test 2010-11-26 10:16:23 +0000 @@ -36,8 +36,8 @@ let $ddl_cases= 41; while ($ddl_cases >= 1) { --echo -b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- - let $in_temporary= "no"; - let $ok= "yes"; + let $in_temporary= no; + let $ok= yes; # # In SBR and MIXED modes, the commit event is usually the third event in the # binary log: @@ -91,7 +91,7 @@ while ($ddl_cases >= 1) { # This seems to be related to epochs. # We need to check this against an updated version or avoid it. - let $ok= "no"; + let $ok= no; let $commit_event_row_number= 6; } } @@ -356,7 +356,7 @@ while ($ddl_cases >= 1) if ($ddl_cases == 11) { let $cmd= CREATE TEMPORARY TABLE tt_xx (a int); - let $in_temporary= "yes"; + let $in_temporary= yes; # In SBR and MIXED modes, the DDL statement is written to the binary log but # does not commit the current transaction. # @@ -478,7 +478,7 @@ while ($ddl_cases >= 1) if ($ddl_cases == 8) { let $cmd= DROP TEMPORARY TABLE IF EXISTS new_tt_xx; - let $in_temporary= "yes"; + let $in_temporary= yes; # # In SBR and MIXED modes, the DDL statement is written to the binary log # but does not commit the current transaction: @@ -618,14 +618,14 @@ while ($ddl_cases >= 1) # commit. The flag in_temporary is used to avoid aborting the test in such # cases. Thus we force the commit. # - if ($in_temporary == "yes") + if ($in_temporary == yes) { --eval COMMIT } let $event_commit= query_get_value("SHOW BINLOG EVENTS FROM $first_binlog_position", Info, $commit_event_row_number); if (`SELECT SUBSTRING("$event_commit",1,6) != "COMMIT"`) { - if ($ok == "yes") + if ($ok == yes) { --echo it *does not* commit the current transaction. --echo $cmd === modified file 'mysql-test/include/restart_mysqld.inc' --- a/mysql-test/include/restart_mysqld.inc 2008-12-25 09:53:24 +0000 +++ b/mysql-test/include/restart_mysqld.inc 2010-11-26 12:59:39 +0000 @@ -1,18 +1,14 @@ # Write file to make mysql-test-run.pl expect the "crash", but don't start # it until it's told to ---write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect -wait -EOF +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect # Send shutdown to the connected server and give # it 10 seconds to die before zapping it shutdown_server 10; # Write file to make mysql-test-run.pl start up the server again ---append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect -restart -EOF +--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect # Turn on reconnect --enable_reconnect === modified file 'mysql-test/lib/mtr_cases.pm' --- a/mysql-test/lib/mtr_cases.pm 2010-11-19 10:38:08 +0000 +++ b/mysql-test/lib/mtr_cases.pm 2010-11-27 11:34:31 +0000 @@ -150,7 +150,7 @@ sub collect_test_cases ($$$$) { { last unless $opt_reorder; # test->{name} is always in suite.name format - if ( $test->{name} =~ /.*\.$tname/ ) + if ( $test->{name} =~ /^$sname.*\.$tname$/ ) { $found= 1; last; === modified file 'mysql-test/mysql-test-run.pl' --- a/mysql-test/mysql-test-run.pl 2010-11-19 10:38:08 +0000 +++ b/mysql-test/mysql-test-run.pl 2010-11-27 11:34:31 +0000 @@ -608,7 +608,10 @@ sub run_test_server ($$$) { if ( !$opt_force ) { # Test has failed, force is off push(@$completed, $result); - return $completed; + return $completed unless $result->{'dont_kill_server'}; + # Prevent kill of server, to get valgrind report + print $sock "BYE\n"; + next; } elsif ($opt_max_test_fail > 0 and $num_failed_test >= $opt_max_test_fail) { @@ -855,15 +858,16 @@ sub run_worker ($) { mtr_report("Server said BYE"); stop_all_servers($opt_shutdown_timeout); mark_time_used('restart'); + my $valgrind_reports= 0; if ($opt_valgrind_mysqld) { - valgrind_exit_reports(); + $valgrind_reports= valgrind_exit_reports(); } if ( $opt_gprof ) { gprof_collect (find_mysqld($basedir), keys %gprof_dirs); } mark_time_used('init'); print_times_used($server, $thread_num); - exit(0); + exit($valgrind_reports); } else { mtr_error("Could not understand server, '$line'"); @@ -3848,7 +3852,6 @@ sub run_testcase ($) { # ---------------------------------------------------- # Check if it was an expected crash # ---------------------------------------------------- - SRVDIED: my $check_crash = check_expected_crash_and_restart($proc); if ($check_crash) { @@ -3858,6 +3861,7 @@ sub run_testcase ($) { next; } + SRVDIED: # ---------------------------------------------------- # Stop the test case timer # ---------------------------------------------------- @@ -4388,7 +4392,12 @@ sub after_failure ($) { sub report_failure_and_restart ($) { my $tinfo= shift; - stop_all_servers(); + if ($opt_valgrind_mysqld && ($tinfo->{'warnings'} || $tinfo->{'timeout'})) { + # In these cases we may want valgrind report from normal termination + $tinfo->{'dont_kill_server'}= 1; + } + # Shotdown properly if not to be killed (for valgrind) + stop_all_servers($tinfo->{'dont_kill_server'} ? $opt_shutdown_timeout : 0); $tinfo->{'result'}= 'MTR_RES_FAILED'; @@ -5556,6 +5565,8 @@ sub valgrind_arguments { # sub valgrind_exit_reports() { + my $found_err= 0; + foreach my $log_file (keys %mysqld_logs) { my @culprits= (); @@ -5591,7 +5602,7 @@ sub valgrind_exit_reports() { next; } # This line marks the start of a valgrind report - $found_report= 1 if $line =~ /ERROR SUMMARY:/; + $found_report= 1 if $line =~ /^==\d+== .* SUMMARY:/; if ($found_report) { $line=~ s/^==\d+== //; @@ -5608,8 +5619,11 @@ sub valgrind_exit_reports() { mtr_print ("Valgrind report from $log_file after tests:\n", @culprits); mtr_print_line(); print ("$valgrind_rep\n"); + $found_err= 1; } } + + return $found_err; } # === modified file 'mysql-test/r/mysqltest.result' --- a/mysql-test/r/mysqltest.result 2010-11-18 17:03:16 +0000 +++ b/mysql-test/r/mysqltest.result 2010-11-26 10:16:23 +0000 @@ -423,7 +423,10 @@ while with string, only once hello == hello hello == hello hello != goodbye +'quoted' == ''quoted'' two words +'two words' +"two words" two words are two words right answer anything goes === modified file 'mysql-test/suite/binlog/t/binlog_max_extension.test' --- a/mysql-test/suite/binlog/t/binlog_max_extension.test 2009-11-22 03:59:48 +0000 +++ b/mysql-test/suite/binlog/t/binlog_max_extension.test 2010-11-26 13:30:22 +0000 @@ -38,9 +38,7 @@ RESET MASTER; ########## # 1. Stop master server --- write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect -wait -EOF +-- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect -- shutdown_server 10 -- source include/wait_until_disconnected.inc @@ -52,9 +50,7 @@ master-bin.2147483646 EOF # 3. Restart the server --- append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect -restart -EOF +-- exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect -- enable_reconnect -- source include/wait_until_connected_again.inc @@ -70,9 +66,7 @@ FLUSH LOGS; ############## # 1. Stop the server --- write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect -wait -EOF +-- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect -- shutdown_server 10 -- source include/wait_until_disconnected.inc @@ -85,8 +79,6 @@ EOF -- remove_file $MYSQLD_DATADIR/master-bin.2147483647 # 3. Restart the server --- append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect -restart -EOF +-- exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect -- enable_reconnect -- source include/wait_until_connected_again.inc === modified file 'mysql-test/suite/rpl/t/rpl_heartbeat_basic.test' --- a/mysql-test/suite/rpl/t/rpl_heartbeat_basic.test 2010-08-26 16:37:57 +0000 +++ b/mysql-test/suite/rpl/t/rpl_heartbeat_basic.test 2010-11-26 13:39:15 +0000 @@ -153,15 +153,11 @@ SET @@global.slave_net_timeout=50; --enable_warnings --replace_result $MASTER_MYPORT MASTER_PORT eval CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=$MASTER_MYPORT, MASTER_USER='root', MASTER_HEARTBEAT_PERIOD=30; ---write_file $MYSQLTEST_VARDIR/tmp/mysqld.2.expect -wait -EOF +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.2.expect --echo Reload slave --shutdown_server 10 --source include/wait_until_disconnected.inc ---append_file $MYSQLTEST_VARDIR/tmp/mysqld.2.expect -restart -EOF +--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.2.expect --enable_reconnect --source include/wait_until_connected_again.inc SHOW GLOBAL STATUS LIKE 'slave_heartbeat_period'; @@ -456,15 +452,11 @@ let $status_var_comparsion= >; --source include/wait_for_status_var.inc --echo Heartbeat event received --connection master ---write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect -wait -EOF +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect --echo Reload master --shutdown_server 10 --source include/wait_until_disconnected.inc ---append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect -restart -EOF +--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect --enable_reconnect --source include/wait_until_connected_again.inc --connection slave === modified file 'mysql-test/suite/rpl/t/rpl_migration_crash_safe.test' --- a/mysql-test/suite/rpl/t/rpl_migration_crash_safe.test 2010-11-02 17:58:52 +0000 +++ b/mysql-test/suite/rpl/t/rpl_migration_crash_safe.test 2010-11-27 11:34:31 +0000 @@ -67,9 +67,7 @@ INSERT INTO test VALUES (1), (2), (3); --connection slave --echo ### stop slave server ---append_file $MYSQLTEST_VARDIR/tmp/mysqld.2.expect -wait -EOF +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.2.expect --shutdown_server 10 --source include/wait_until_disconnected.inc @@ -98,9 +96,7 @@ file_exists $MYSQLD_DATADIR/relay-log.in --connection slave --echo ### stop slave server ---append_file $MYSQLTEST_VARDIR/tmp/mysqld.2.expect -wait -EOF +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.2.expect --shutdown_server 10 --source include/wait_until_disconnected.inc === modified file 'mysql-test/suite/rpl/t/rpl_trigger.test' --- a/mysql-test/suite/rpl/t/rpl_trigger.test 2010-04-29 11:20:36 +0000 +++ b/mysql-test/suite/rpl/t/rpl_trigger.test 2010-11-26 13:39:15 +0000 @@ -315,9 +315,7 @@ FLUSH LOGS; # Stop master server --echo --> Stop master server ---write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect -wait -EOF +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect --shutdown_server 10 --source include/wait_until_disconnected.inc # Replace binlog @@ -325,9 +323,7 @@ remove_file $MYSQLD_DATADIR/master-bin.0 copy_file $MYSQL_TEST_DIR/std_data/bug16266.000001 $MYSQLD_DATADIR/master-bin.000001; --echo --> Start master server ---append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect -restart -EOF +--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect --enable_reconnect --source include/wait_until_connected_again.inc let $binlog_version= query_get_value(SHOW BINLOG EVENTS, Info, 1); === modified file 'mysql-test/t/mysqltest.test' --- a/mysql-test/t/mysqltest.test 2010-11-18 17:03:16 +0000 +++ b/mysql-test/t/mysqltest.test 2010-11-26 10:16:23 +0000 @@ -1276,12 +1276,24 @@ if ($ifvar != goodbye) { echo hello != goodbye; } - +let $ifvar= 'quoted'; +if ($ifvar == ''quoted'') +{ + echo 'quoted' == ''quoted''; +} let $ifvar= two words; if ($ifvar == two words) { echo two words; } +if ($ifvar == 'two words') +{ + echo 'two words'; +} +if ($ifvar == "two words") +{ + echo "two words"; +} if ($ifvar == `SELECT 'two words'`) { echo two words are two words; === modified file 'mysql-test/t/server_uuid_embedded.test' --- a/mysql-test/t/server_uuid_embedded.test 2010-10-21 12:36:16 +0000 +++ b/mysql-test/t/server_uuid_embedded.test 2010-11-24 13:30:12 +0000 @@ -25,7 +25,8 @@ SET GLOBAL SERVER_UUID= UUID(); --echo # SERVER_UUID is not null --echo ----------------------------------------------------------------------------- --let $server_uuid= query_get_value(SELECT @@SERVER_UUID, @@SERVER_UUID, 1) -if (!$server_uuid) +# Cannot use !$server_uuid since it may begin with 0 +if ($server_uuid == '') { --echo server's UUID is null } No bundle (reason: revision is a merge).