List:Commits« Previous MessageNext Message »
From:Bjorn Munch Date:November 9 2010 1:04pm
Subject:bzr push into mysql-trunk-bugfixing branch (bjorn.munch:3339 to 3341)
View as plain text  
 3341 Bjorn Munch	2010-11-09 [merge]
      mtr: ignore SERVER_UUID change in check-testcase

    modified:
      mysql-test/include/mtr_check.sql
 3340 Bjorn Munch	2010-11-09 [merge]
      merge from trunk-mtr

    added:
      mysql-test/suite/binlog/t/binlog_index-master.opt
      mysql-test/suite/rpl/t/rpl_bug33931-master.opt
      mysql-test/suite/rpl/t/rpl_current_user-master.opt
      mysql-test/suite/rpl/t/rpl_heartbeat-master.opt
      mysql-test/suite/rpl/t/rpl_ip_mix-master.opt
      mysql-test/suite/rpl/t/rpl_ip_mix2-master.opt
      mysql-test/suite/rpl/t/rpl_slave_load_tmpdir_not_exist-master.opt
    modified:
      mysql-test/include/mtr_warnings.sql
      mysql-test/lib/mtr_cases.pm
      mysql-test/mysql-test-run.pl
      mysql-test/suite/binlog/t/binlog_stm_binlog-master.opt
      mysql-test/suite/binlog/t/binlog_stm_do_db-master.opt
      mysql-test/suite/rpl/r/rpl000017.result
      mysql-test/suite/rpl/r/rpl_ignore_table.result
      mysql-test/suite/rpl/r/rpl_slave_status.result
      mysql-test/suite/rpl/t/rpl000017.test
      mysql-test/suite/rpl/t/rpl_cross_version-master.opt
      mysql-test/suite/rpl/t/rpl_ignore_table.test
      mysql-test/suite/rpl/t/rpl_loaddata_symlink-master.sh
      mysql-test/suite/rpl/t/rpl_loaddata_symlink-slave.sh
      mysql-test/suite/rpl/t/rpl_semi_sync-master.opt
      mysql-test/suite/rpl/t/rpl_slave_status.test
      mysql-test/suite/rpl/t/rpl_sync.test
      mysql-test/suite/rpl/t/rpl_temporary_errors-slave.opt
      mysql-test/t/key_cache-master.opt
      mysql-test/t/mysqlbinlog-master.opt
      mysql-test/t/union.test
 3339 Horst.Hunger	2010-11-09 [merge]
      null merge to trunk-bugfixing.

=== modified file 'mysql-test/include/mtr_check.sql'
--- a/mysql-test/include/mtr_check.sql	2010-07-02 17:25:26 +0000
+++ b/mysql-test/include/mtr_check.sql	2010-11-09 13:02:13 +0000
@@ -57,9 +57,10 @@ BEGIN
   CALL check_testcase_perfschema();
 
   -- Dump all global variables except those
-  -- that are supposed to change
+  -- that are supposed to or might change
   SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
-    WHERE variable_name != 'timestamp' ORDER BY VARIABLE_NAME;
+    WHERE variable_name != 'timestamp' AND
+          variable_name != 'SERVER_UUID' ORDER BY VARIABLE_NAME;
 
   -- Dump all databases, there should be none
   -- except those that was created during bootstrap

=== modified file 'mysql-test/include/mtr_warnings.sql'
--- a/mysql-test/include/mtr_warnings.sql	2010-10-14 10:12:00 +0000
+++ b/mysql-test/include/mtr_warnings.sql	2010-11-09 12:14:03 +0000
@@ -241,6 +241,9 @@ INSERT INTO global_suppressions VALUES
   */
  ("Found lock of type 6 that is write and read locked"),
 
+ /* After BUG#57840, we may restart master w/o restarting slave */
+ ("The master.s UUID has changed, although this should not happen"),
+
  ("THE_LAST_SUPPRESSION")||
 
 

=== modified file 'mysql-test/lib/mtr_cases.pm'
--- a/mysql-test/lib/mtr_cases.pm	2010-10-05 14:35:03 +0000
+++ b/mysql-test/lib/mtr_cases.pm	2010-11-09 13:02:13 +0000
@@ -177,8 +177,6 @@ sub collect_test_cases ($$$$) {
   if ( $opt_reorder && !$quick_collect)
   {
     # Reorder the test cases in an order that will make them faster to run
-    my %sort_criteria;
-
     # Make a mapping of test name to a string that represents how that test
     # should be sorted among the other tests.  Put the most important criterion
     # first, then a sub-criterion, then sub-sub-criterion, etc.
@@ -190,24 +188,31 @@ sub collect_test_cases ($$$$) {
       # Append the criteria for sorting, in order of importance.
       #
       push(@criteria, "ndb=" . ($tinfo->{'ndb_test'} ? "A" : "B"));
+      push(@criteria, $tinfo->{template_path});
       # Group test with equal options together.
       # Ending with "~" makes empty sort later than filled
       my $opts= $tinfo->{'master_opt'} ? $tinfo->{'master_opt'} : [];
       push(@criteria, join("!", sort @{$opts}) . "~");
+      # Add slave opts if any
+      if ($tinfo->{'slave_opt'})
+      {
+	push(@criteria, join("!", sort @{$tinfo->{'slave_opt'}}));
+      }
+      # This sorts tests with force-restart *before* identical tests
+      push(@criteria, $tinfo->{force_restart} ? "force-restart" : "no-restart");
 
-      $sort_criteria{$tinfo->{name}} = join(" ", @criteria);
+      $tinfo->{criteria}= join(" ", @criteria);
     }
 
-    @$cases = sort {
-      $sort_criteria{$a->{'name'}} . $a->{'name'} cmp
-	$sort_criteria{$b->{'name'}} . $b->{'name'}; } @$cases;
+    @$cases = sort {$a->{criteria} cmp $b->{criteria}; } @$cases;
 
     # For debugging the sort-order
     # foreach my $tinfo (@$cases)
     # {
-    #   print("$sort_criteria{$tinfo->{'name'}} -> \t$tinfo->{'name'}\n");
+    #   my $tname= $tinfo->{name} . ' ' . $tinfo->{combination};
+    #   my $crit= $tinfo->{criteria};
+    #   print("$tname\n\t$crit\n");
     # }
-
   }
 
   if (defined $print_testcases){

=== modified file 'mysql-test/mysql-test-run.pl'
--- a/mysql-test/mysql-test-run.pl	2010-11-05 15:12:46 +0000
+++ b/mysql-test/mysql-test-run.pl	2010-11-09 13:02:13 +0000
@@ -704,22 +704,40 @@ sub run_test_server ($$$) {
 	    next;
 	  }
 
-	  # Prefer same configuration, or just use next if --noreorder
-	  if (!$opt_reorder or (defined $result and
-	      $result->{template_path} eq $t->{template_path}))
-	  {
-	    #mtr_report("Test uses same config => good match");
-	    # Test uses same config => good match
-	    $next= splice(@$tests, $i, 1);
-	    last;
-	  }
-
 	  # Second best choice is the first that does not fulfill
 	  # any of the above conditions
 	  if (!defined $second_best){
 	    #mtr_report("Setting second_best to $i");
 	    $second_best= $i;
 	  }
+
+	  # Smart allocation of next test within this thread.
+
+	  if ($opt_reorder and $opt_parallel > 1 and defined $result)
+	  {
+	    my $wid= $result->{worker};
+	    # Reserved for other thread, try next
+	    next if (defined $t->{reserved} and $t->{reserved} != $wid);
+	    if (! defined $t->{reserved})
+	    {
+	      # Force-restart not relevant when comparing *next* test
+	      $t->{criteria} =~ s/force-restart$/no-restart/;
+	      my $criteria= $t->{criteria};
+	      # Reserve similar tests for this worker, but not too many
+	      my $maxres= (@$tests - $i) / $opt_parallel + 1;
+	      for (my $j= $i+1; $j <= $i + $maxres; $j++)
+	      {
+		my $tt= $tests->[$j];
+		last unless defined $tt;
+		last if $tt->{criteria} ne $criteria;
+		$tt->{reserved}= $wid;
+	      }
+	    }
+	  }
+
+	  # At this point we have found next suitable test
+	  $next= splice(@$tests, $i, 1);
+	  last;
 	}
 
 	# Use second best choice if no other test has been found
@@ -728,10 +746,12 @@ sub run_test_server ($$$) {
 	  mtr_error("Internal error, second best too large($second_best)")
 	    if $second_best >  $#$tests;
 	  $next= splice(@$tests, $second_best, 1);
+	  delete $next->{reserved};
 	}
 
 	if ($next) {
-	  #$next->print_test();
+	  # We don't need this any more
+	  delete $next->{criteria};
 	  $next->write_test($sock, 'TESTCASE');
 	  $running{$next->key()}= $next;
 	  $num_ndb_tests++ if ($next->{ndb_test});
@@ -816,6 +836,11 @@ sub run_worker ($) {
       delete($test->{'comment'});
       delete($test->{'logfile'});
 
+      # A sanity check. Should this happen often we need to look at it.
+      if (defined $test->{reserved} && $test->{reserved} != $thread_num) {
+	my $tres= $test->{reserved};
+	mtr_warning("Test reserved for w$tres picked up by w$thread_num");
+      }
       $test->{worker} = $thread_num if $opt_parallel > 1;
 
       run_testcase($test);
@@ -894,7 +919,7 @@ sub command_line_setup {
              'ssl|with-openssl'         => \$opt_ssl,
              'skip-ssl'                 => \$opt_skip_ssl,
              'compress'                 => \$opt_compress,
-             'vs-config'                => \$opt_vs_config,
+             'vs-config=s'              => \$opt_vs_config,
 
 	     # Max number of parallel threads to use
 	     'parallel=s'               => \$opt_parallel,
@@ -4741,17 +4766,6 @@ sub server_need_restart {
     }
   }
 
-  # Temporary re-enable the "always restart slave" hack
-  # this should be removed asap, but will require that each rpl
-  # testcase cleanup better after itself - ie. stop and reset
-  # replication
-  # Use the "#!use-slave-opt" marker to detect that this is a "slave"
-  # server
-  if ( $server->option("#!use-slave-opt") ){
-    mtr_verbose_restart($server, "Always restart slave(s)");
-    return 1;
-  }
-
   my $is_mysqld= grep ($server eq $_, mysqlds());
   if ($is_mysqld)
   {

=== added file 'mysql-test/suite/binlog/t/binlog_index-master.opt'
--- a/mysql-test/suite/binlog/t/binlog_index-master.opt	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/binlog/t/binlog_index-master.opt	2010-11-05 14:26:38 +0000
@@ -0,0 +1 @@
+--force-restart

=== modified file 'mysql-test/suite/binlog/t/binlog_stm_binlog-master.opt'
--- a/mysql-test/suite/binlog/t/binlog_stm_binlog-master.opt	2010-06-17 20:51:35 +0000
+++ b/mysql-test/suite/binlog/t/binlog_stm_binlog-master.opt	2010-11-05 14:36:00 +0000
@@ -1 +1,2 @@
 --max_binlog_size=4096 --default-storage-engine=MyISAM
+--force-restart

=== modified file 'mysql-test/suite/binlog/t/binlog_stm_do_db-master.opt'
--- a/mysql-test/suite/binlog/t/binlog_stm_do_db-master.opt	2009-09-24 14:52:52 +0000
+++ b/mysql-test/suite/binlog/t/binlog_stm_do_db-master.opt	2010-11-05 14:26:38 +0000
@@ -1 +1,2 @@
 --binlog-do-db=b42829
+--force-restart

=== modified file 'mysql-test/suite/rpl/r/rpl000017.result'
--- a/mysql-test/suite/rpl/r/rpl000017.result	2009-11-04 12:28:20 +0000
+++ b/mysql-test/suite/rpl/r/rpl000017.result	2010-11-06 18:21:12 +0000
@@ -13,3 +13,4 @@ n
 24
 drop table t1;
 delete from mysql.user where user="replicate";
+call mtr.force_restart();

=== modified file 'mysql-test/suite/rpl/r/rpl_ignore_table.result'
--- a/mysql-test/suite/rpl/r/rpl_ignore_table.result	2010-08-09 08:32:50 +0000
+++ b/mysql-test/suite/rpl/r/rpl_ignore_table.result	2010-11-09 13:02:13 +0000
@@ -142,3 +142,4 @@ HEX(word)
 SELECT * FROM tmptbl504451f4258$1;
 ERROR 42S02: Table 'test.tmptbl504451f4258$1' doesn't exist
 DROP TABLE t5;
+call mtr.force_restart();

=== modified file 'mysql-test/suite/rpl/r/rpl_slave_status.result'
--- a/mysql-test/suite/rpl/r/rpl_slave_status.result	2008-07-10 16:09:39 +0000
+++ b/mysql-test/suite/rpl/r/rpl_slave_status.result	2010-11-06 18:21:12 +0000
@@ -33,3 +33,4 @@ Slave_IO_Running = No (should be No)
 DROP TABLE t1;
 [on master]
 DROP TABLE t1;
+call mtr.force_restart();

=== modified file 'mysql-test/suite/rpl/t/rpl000017.test'
--- a/mysql-test/suite/rpl/t/rpl000017.test	2009-11-04 12:28:20 +0000
+++ b/mysql-test/suite/rpl/t/rpl000017.test	2010-11-06 18:21:12 +0000
@@ -31,4 +31,6 @@ drop table t1;
 delete from mysql.user where user="replicate";
 sync_slave_with_master;
 
+call mtr.force_restart();
+
 # End of 4.1 tests

=== added file 'mysql-test/suite/rpl/t/rpl_bug33931-master.opt'
--- a/mysql-test/suite/rpl/t/rpl_bug33931-master.opt	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/t/rpl_bug33931-master.opt	2010-11-06 18:21:12 +0000
@@ -0,0 +1 @@
+--force-restart

=== modified file 'mysql-test/suite/rpl/t/rpl_cross_version-master.opt'
--- a/mysql-test/suite/rpl/t/rpl_cross_version-master.opt	2010-02-12 04:12:43 +0000
+++ b/mysql-test/suite/rpl/t/rpl_cross_version-master.opt	2010-11-05 14:36:00 +0000
@@ -1 +1,2 @@
 --replicate-same-server-id --relay-log=slave-relay-bin
+--force-restart

=== added file 'mysql-test/suite/rpl/t/rpl_current_user-master.opt'
--- a/mysql-test/suite/rpl/t/rpl_current_user-master.opt	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/t/rpl_current_user-master.opt	2010-11-05 14:26:38 +0000
@@ -0,0 +1 @@
+--force-restart

=== added file 'mysql-test/suite/rpl/t/rpl_heartbeat-master.opt'
--- a/mysql-test/suite/rpl/t/rpl_heartbeat-master.opt	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/t/rpl_heartbeat-master.opt	2010-11-06 18:21:12 +0000
@@ -0,0 +1 @@
+--force-restart

=== modified file 'mysql-test/suite/rpl/t/rpl_ignore_table.test'
--- a/mysql-test/suite/rpl/t/rpl_ignore_table.test	2008-11-13 19:19:00 +0000
+++ b/mysql-test/suite/rpl/t/rpl_ignore_table.test	2010-11-05 14:26:38 +0000
@@ -174,3 +174,5 @@ SELECT * FROM tmptbl504451f4258$1;
 connection master;
 DROP TABLE t5;
 sync_slave_with_master;
+
+call mtr.force_restart();

=== added file 'mysql-test/suite/rpl/t/rpl_ip_mix-master.opt'
--- a/mysql-test/suite/rpl/t/rpl_ip_mix-master.opt	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/t/rpl_ip_mix-master.opt	2010-11-06 18:21:12 +0000
@@ -0,0 +1 @@
+--force-restart

=== added file 'mysql-test/suite/rpl/t/rpl_ip_mix2-master.opt'
--- a/mysql-test/suite/rpl/t/rpl_ip_mix2-master.opt	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/t/rpl_ip_mix2-master.opt	2010-11-06 18:21:12 +0000
@@ -0,0 +1 @@
+--force-restart

=== modified file 'mysql-test/suite/rpl/t/rpl_loaddata_symlink-master.sh'
--- a/mysql-test/suite/rpl/t/rpl_loaddata_symlink-master.sh	2009-11-28 04:43:16 +0000
+++ b/mysql-test/suite/rpl/t/rpl_loaddata_symlink-master.sh	2010-11-05 14:26:38 +0000
@@ -1 +1,2 @@
+rm -f $MYSQLTEST_VARDIR/std_data_master_link
 ln -s $MYSQLTEST_VARDIR/std_data $MYSQLTEST_VARDIR/std_data_master_link

=== modified file 'mysql-test/suite/rpl/t/rpl_loaddata_symlink-slave.sh'
--- a/mysql-test/suite/rpl/t/rpl_loaddata_symlink-slave.sh	2009-11-28 04:43:16 +0000
+++ b/mysql-test/suite/rpl/t/rpl_loaddata_symlink-slave.sh	2010-11-05 14:26:38 +0000
@@ -1 +1,2 @@
+rm -f $MYSQLTEST_VARDIR/std_data_slave_link
 ln -s $MYSQLTEST_VARDIR/std_data $MYSQLTEST_VARDIR/std_data_slave_link

=== modified file 'mysql-test/suite/rpl/t/rpl_semi_sync-master.opt'
--- a/mysql-test/suite/rpl/t/rpl_semi_sync-master.opt	2009-09-30 08:09:31 +0000
+++ b/mysql-test/suite/rpl/t/rpl_semi_sync-master.opt	2010-11-06 18:21:12 +0000
@@ -1 +1,2 @@
 $SEMISYNC_PLUGIN_OPT
+--force-restart

=== added file 'mysql-test/suite/rpl/t/rpl_slave_load_tmpdir_not_exist-master.opt'
--- a/mysql-test/suite/rpl/t/rpl_slave_load_tmpdir_not_exist-master.opt	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/t/rpl_slave_load_tmpdir_not_exist-master.opt	2010-11-05 14:26:38 +0000
@@ -0,0 +1 @@
+--force-restart

=== modified file 'mysql-test/suite/rpl/t/rpl_slave_status.test'
--- a/mysql-test/suite/rpl/t/rpl_slave_status.test	2009-10-02 09:24:21 +0000
+++ b/mysql-test/suite/rpl/t/rpl_slave_status.test	2010-11-06 18:21:12 +0000
@@ -68,3 +68,4 @@ DROP TABLE t1;
 --echo [on master]
 connection master;
 DROP TABLE t1;
+call mtr.force_restart();

=== modified file 'mysql-test/suite/rpl/t/rpl_sync.test'
--- a/mysql-test/suite/rpl/t/rpl_sync.test	2010-02-15 12:14:18 +0000
+++ b/mysql-test/suite/rpl/t/rpl_sync.test	2010-11-07 10:47:16 +0000
@@ -150,3 +150,4 @@ source include/diff_tables.inc;
 --echo =====Clean up=======;
 connection master;
 drop table t1;
+--remove_file $MYSQLD_SLAVE_DATADIR/master.backup

=== modified file 'mysql-test/suite/rpl/t/rpl_temporary_errors-slave.opt'
--- a/mysql-test/suite/rpl/t/rpl_temporary_errors-slave.opt	2007-10-20 18:16:12 +0000
+++ b/mysql-test/suite/rpl/t/rpl_temporary_errors-slave.opt	2010-11-06 18:21:12 +0000
@@ -1,3 +1,2 @@
 --loose-debug="+d,all_errors_are_temporary_errors" --slave-transaction-retries=2
-
-
+--force-restart

=== modified file 'mysql-test/t/key_cache-master.opt'
--- a/mysql-test/t/key_cache-master.opt	2003-07-06 16:09:57 +0000
+++ b/mysql-test/t/key_cache-master.opt	2010-11-05 14:26:38 +0000
@@ -1 +1,2 @@
 --key_buffer_size=2M --small.key_buffer_size=256K --small.key_buffer_size=128K
+--force-restart

=== modified file 'mysql-test/t/mysqlbinlog-master.opt'
--- a/mysql-test/t/mysqlbinlog-master.opt	2003-09-24 19:25:58 +0000
+++ b/mysql-test/t/mysqlbinlog-master.opt	2010-11-05 14:26:38 +0000
@@ -1 +1,2 @@
 --max-binlog-size=4096
+--force-restart

=== modified file 'mysql-test/t/union.test'
--- a/mysql-test/t/union.test	2010-08-18 09:35:41 +0000
+++ b/mysql-test/t/union.test	2010-11-06 18:21:12 +0000
@@ -1062,7 +1062,7 @@ SELECT ( SELECT a UNION SELECT a ) INTO
 SELECT ( SELECT a UNION SELECT a ) INTO DUMPFILE 'union.out.file4' FROM t1;
 
 DROP TABLE t1;
-
+remove_files_wildcard $MYSQLTEST_VARDIR/mysqld.1/data/test union.out.fil*;
 
 --echo # 
 --echo # Bug #49734: Crash on EXPLAIN EXTENDED UNION ... ORDER BY 

No bundle (reason: useless for push emails).
Thread
bzr push into mysql-trunk-bugfixing branch (bjorn.munch:3339 to 3341) Bjorn Munch9 Nov