List:Commits« Previous MessageNext Message »
From:msvensson Date:October 18 2006 4:45pm
Subject:bk commit into 5.1 tree (msvensson:1.2317)
View as plain text  
Below is the list of changes that have just been committed into a local
5.1 repository of msvensson. When msvensson does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet@stripped, 2006-10-18 18:45:00+02:00, msvensson@shellback.(none) +9 -0
  Merge shellback.(none):/home/msvensson/mysql/mysql-5.0-maint
  into  shellback.(none):/home/msvensson/mysql/mysql-5.1-maint
  MERGE: 1.1810.2078.65

  mysql-test/lib/mtr_cases.pl@stripped, 2006-10-18 18:44:44+02:00, msvensson@shellback.(none) +1 -1
    Auto merged
    MERGE: 1.12.1.16

  mysql-test/lib/mtr_process.pl@stripped, 2006-10-18 18:44:44+02:00, msvensson@shellback.(none) +0 -0
    Auto merged
    MERGE: 1.25.2.14

  mysql-test/lib/mtr_report.pl@stripped, 2006-10-18 18:44:44+02:00, msvensson@shellback.(none) +0 -0
    Auto merged
    MERGE: 1.21.1.8

  mysql-test/lib/mtr_timer.pl@stripped, 2006-10-18 18:44:44+02:00, msvensson@shellback.(none) +0 -0
    Auto merged
    MERGE: 1.7.1.4

  mysql-test/mysql-test-run.pl@stripped, 2006-10-18 18:44:53+02:00, msvensson@shellback.(none) +6 -13
    MERGE: 1.30.1.104

  mysql-test/r/ps.result@stripped, 2006-10-18 18:44:44+02:00, msvensson@shellback.(none) +0 -17
    Auto merged
    MERGE: 1.56.1.21

  mysql-test/t/ps.test@stripped, 2006-10-18 18:44:44+02:00, msvensson@shellback.(none) +0 -14
    Auto merged
    MERGE: 1.56.1.19

  sql/sql_parse.cc@stripped, 2006-10-18 18:44:44+02:00, msvensson@shellback.(none) +0 -0
    Auto merged
    MERGE: 1.426.1.160

  sql/sql_prepare.cc@stripped, 2006-10-18 18:44:44+02:00, msvensson@shellback.(none) +0 -0
    Auto merged
    MERGE: 1.142.1.42

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	msvensson
# Host:	shellback.(none)
# Root:	/home/msvensson/mysql/mysql-5.1-maint/RESYNC

--- 1.44/mysql-test/lib/mtr_cases.pl	2006-10-18 18:45:07 +02:00
+++ 1.45/mysql-test/lib/mtr_cases.pl	2006-10-18 18:45:07 +02:00
@@ -59,7 +59,9 @@
 
   if ( @::opt_cases )
   {
-    foreach my $tname ( @::opt_cases ) { # Run in specified order, no sort
+    foreach my $tname ( @::opt_cases )
+    {
+      # Run in specified order, no sort
       my $elem= undef;
       my $component_id= undef;
 
@@ -85,7 +87,7 @@
 
       # If target component is known, check that the specified test case
       # exists.
-      # 
+      #
       # Otherwise, try to guess the target component.
 
       if ( $component_id )
@@ -127,7 +129,8 @@
   }
   else
   {
-    foreach my $elem ( sort readdir(TESTDIR) ) {
+    foreach my $elem ( sort readdir(TESTDIR) )
+    {
       my $component_id= undef;
       my $tname= undef;
 
@@ -144,7 +147,9 @@
         next;
       }
 
-      next if $::opt_do_test and ! defined mtr_match_prefix($elem,$::opt_do_test);
+      # Skip tests that does not match the --do-test= filter
+      next if $::opt_do_test and
+	! defined mtr_match_prefix($elem,$::opt_do_test);
 
       collect_one_test_case($testdir,$resdir,$tname,$elem,$cases,\%disabled,
         $component_id);
@@ -152,7 +157,7 @@
     closedir TESTDIR;
   }
 
-  # Reorder the test cases in an order that wil make them faster to run
+  # Reorder the test cases in an order that will make them faster to run
   if ( $::opt_reorder )
   {
 
@@ -306,40 +311,6 @@
     $tinfo->{'slave_num'}= 1;
   }
 
-  if ( $::opt_with_ndbcluster or defined mtr_match_substring($tname,"ndb") )
-  {
-    # This is an ndb test or all tests should be run with ndb cluster started
-    $tinfo->{'ndb_test'}= 1;
-    if ( ! $::opt_ndbcluster_supported )
-    {
-      # Ndb is not supported, skip them
-      $tinfo->{'skip'}= 1;
-      $tinfo->{'comment'}= "No ndbcluster support";
-      return;
-    }
-    elsif ( $::opt_skip_ndbcluster )
-    {
-      # All ndb test's should be skipped
-      $tinfo->{'skip'}= 1;
-      $tinfo->{'comment'}= "No ndbcluster tests(--skip-ndbcluster)";
-      return;
-    }
-  }
-  else
-  {
-    # This is not a ndb test
-    $tinfo->{'ndb_test'}= 0;
-    if ( $::opt_with_ndbcluster_only )
-    {
-      # Only the ndb test should be run, all other should be skipped
-      $tinfo->{'skip'}= 1;
-      $tinfo->{'comment'}= "Only ndbcluster tests(--with-ndbcluster-only)";
-      return;
-    }
-  }
-
-  # FIXME what about embedded_server + ndbcluster, skip ?!
-
   my $master_opt_file= "$testdir/$tname-master.opt";
   my $slave_opt_file=  "$testdir/$tname-slave.opt";
   my $slave_mi_file=   "$testdir/$tname.slave-mi";
@@ -550,6 +521,37 @@
       $tinfo->{'comment'}= "Test need debug binaries";
       return;
     }
+
+    if ( $tinfo->{'ndb_test'} )
+    {
+      # This is a NDB test
+      if ( ! $::glob_ndbcluster_supported )
+      {
+	# Ndb is not supported, skip it
+	$tinfo->{'skip'}= 1;
+	$tinfo->{'comment'}= "No ndbcluster support";
+	return;
+      }
+      elsif ( $::opt_skip_ndbcluster )
+      {
+	# All ndb test's should be skipped
+	$tinfo->{'skip'}= 1;
+	$tinfo->{'comment'}= "No ndbcluster tests(--skip-ndbcluster)";
+	return;
+      }
+    }
+    else
+    {
+      # This is not a ndb test
+      if ( $::opt_with_ndbcluster_only )
+      {
+	# Only the ndb test should be run, all other should be skipped
+	$tinfo->{'skip'}= 1;
+	$tinfo->{'comment'}= "Only ndbcluster tests(--with-ndbcluster-only)";
+	return;
+      }
+    }
+
   }
 }
 
@@ -563,6 +565,7 @@
  ["include/have_binlog_format_statement.inc", "binlog_format", "stmt"],
  ["include/big_test.inc", "big_test", 1],
  ["include/have_debug.inc", "need_debug", 1],
+ ["include/have_ndb.inc", "ndb_test", 1],
  ["include/have_ndb_extra.inc", "ndb_extra", 1],
  ["require_manager", "require_manager", 1],
 );

--- 1.57/mysql-test/lib/mtr_process.pl	2006-10-18 18:45:07 +02:00
+++ 1.58/mysql-test/lib/mtr_process.pl	2006-10-18 18:45:07 +02:00
@@ -8,7 +8,6 @@
 use Errno;
 use strict;
 
-#use POSIX ":sys_wait_h";
 use POSIX 'WNOHANG';
 
 sub mtr_run ($$$$$$;$);
@@ -1088,7 +1087,6 @@
 
 sub mtr_exit ($) {
   my $code= shift;
-#  cluck("Called mtr_exit()");
   mtr_timer_stop_all($::glob_timers);
   local $SIG{HUP} = 'IGNORE';
   # ToDo: Signalling -$$ will only work if we are the process group

--- 1.38/mysql-test/lib/mtr_report.pl	2006-10-18 18:45:07 +02:00
+++ 1.39/mysql-test/lib/mtr_report.pl	2006-10-18 18:45:07 +02:00
@@ -130,16 +130,11 @@
   my $tinfo= shift;
 
   $tinfo->{'result'}= 'MTR_RES_FAILED';
-  if ( $tinfo->{'timeout'} )
+  if ( defined $tinfo->{'timeout'} )
   {
     print "[ fail ]  timeout\n";
     return;
   }
-  elsif ( $tinfo->{'ndb_test'} and $::cluster->[0]->{'installed_ok'} eq "NO")
-  {
-    print "[ fail ]  ndbcluster start failure\n";
-    return;
-  }
   else
   {
     print "[ fail ]\n";
@@ -208,8 +203,9 @@
   else
   {
     my $ratio=  $tot_passed * 100 / $tot_tests;
-    printf "Failed $tot_failed/$tot_tests tests, " .
-      "%.2f\% were successful.\n\n", $ratio;
+    print "Failed $tot_failed/$tot_tests tests, ";
+    printf("%.2f", $ratio);
+    print "\% were successful.\n\n";
     print
       "The log files in var/log may give you some hint\n",
       "of what went wrong.\n",

--- 1.11/mysql-test/lib/mtr_timer.pl	2006-10-18 18:45:07 +02:00
+++ 1.12/mysql-test/lib/mtr_timer.pl	2006-10-18 18:45:07 +02:00
@@ -4,23 +4,19 @@
 # and is part of the translation of the Bourne shell script with the
 # same name.
 
-use Carp qw(cluck);
 use Socket;
 use Errno;
 use strict;
 
-#use POSIX ":sys_wait_h";
-use POSIX 'WNOHANG';
-
 sub mtr_init_timers ();
 sub mtr_timer_start($$$);
 sub mtr_timer_stop($$);
 sub mtr_timer_stop_all($);
-sub mtr_timer_waitpid($$$);
+
 
 ##############################################################################
 #
-#  Initiate a structure shared by all timers
+#  Initiate the structure shared by all timers
 #
 ##############################################################################
 
@@ -35,17 +31,19 @@
 #  Start, stop and poll a timer
 #
 #  As alarm() isn't portable to Windows, we use separate processes to
-#  implement timers. That is why there is a mtr_timer_waitpid(), as this
-#  is where we catch a timeout.
+#  implement timers.
 #
 ##############################################################################
 
 sub mtr_timer_start($$$) {
   my ($timers,$name,$duration)= @_;
 
+  mtr_verbose("mtr_timer_start: $name, $duration");
+
   if ( exists $timers->{'timers'}->{$name} )
   {
     # We have an old running timer, kill it
+    mtr_verbose("There is an old timer running");
     mtr_timer_stop($timers,$name);
   }
 
@@ -57,7 +55,7 @@
     {
       if ( $! == $!{EAGAIN} )           # See "perldoc Errno"
       {
-        mtr_debug("Got EAGAIN from fork(), sleep 1 second and redo");
+        mtr_warning("Got EAGAIN from fork(), sleep 1 second and redo");
         sleep(1);
         redo FORK;
       }
@@ -70,6 +68,7 @@
     if ( $tpid )
     {
       # Parent, record the information
+      mtr_verbose("timer parent, record info($name, $tpid, $duration)");
       $timers->{'timers'}->{$name}->{'pid'}= $tpid;
       $timers->{'timers'}->{$name}->{'duration'}= $duration;
       $timers->{'pids'}->{$tpid}= $name;
@@ -85,6 +84,7 @@
       $SIG{INT}= 'DEFAULT';
 
       $0= "mtr_timer(timers,$name,$duration)";
+      mtr_verbose("timer child $name, sleep $duration");
       sleep($duration);
       exit(0);
     }
@@ -95,9 +95,12 @@
 sub mtr_timer_stop ($$) {
   my ($timers,$name)= @_;
 
+  mtr_verbose("mtr_timer_stop: $name");
+
   if ( exists $timers->{'timers'}->{$name} )
   {
     my $tpid= $timers->{'timers'}->{$name}->{'pid'};
+    mtr_verbose("Stopping timer with pid $tpid");
 
     # FIXME as Cygwin reuses pids fast, maybe check that is
     # the expected process somehow?!
@@ -114,7 +117,7 @@
   }
   else
   {
-    mtr_debug("Asked to stop timer \"$name\" not started");
+    mtr_error("Asked to stop timer \"$name\" not started");
     return 0;
   }
 }
@@ -136,10 +139,8 @@
 
   return "" unless exists $timers->{'pids'}->{$pid};
 
-  # We got a timeout
-  my $name= $timers->{'pids'}->{$pid};
-  mtr_timer_stop($timers, $timers->{'timers'}->{$name});
-  return $name;
+  # We got a timeout, return the name ot the timer
+  return $timers->{'pids'}->{$pid};
 }
 
 1;

--- 1.200/mysql-test/mysql-test-run.pl	2006-10-18 18:45:07 +02:00
+++ 1.201/mysql-test/mysql-test-run.pl	2006-10-18 18:45:07 +02:00
@@ -65,6 +65,7 @@
 use IO::Socket::INET;
 use Data::Dumper;
 use strict;
+use warnings;
 use diagnostics;
 
 our $glob_win32_perl=  ($^O eq "MSWin32"); # ActiveState Win32 Perl
@@ -277,7 +278,7 @@
 our $opt_skip_ndbcluster_slave= 0;
 our $opt_with_ndbcluster= 0;
 our $opt_with_ndbcluster_only= 0;
-our $opt_ndbcluster_supported= 0;
+our $glob_ndbcluster_supported= 0;
 our $opt_ndb_extra_test= 0;
 our $opt_skip_master_binlog= 0;
 our $opt_skip_slave_binlog= 0;
@@ -391,6 +392,8 @@
     my ($need_ndbcluster,$need_im);
     foreach my $test (@$tests)
     {
+      next if $test->{skip};
+
       $need_ndbcluster||= $test->{ndb_test};
       $need_im||= $test->{component_id} eq 'im';
 
@@ -570,10 +573,10 @@
              'compress'                 => \$opt_compress,
              'bench'                    => \$opt_bench,
              'small-bench'              => \$opt_small_bench,
+             'with-ndbcluster'          => \$opt_with_ndbcluster,
 
              # Control what test suites or cases to run
              'force'                    => \$opt_force,
-             'with-ndbcluster'          => \$opt_with_ndbcluster,
              'with-ndbcluster-only'     => \$opt_with_ndbcluster_only,
              'skip-ndbcluster|skip-ndb' => \$opt_skip_ndbcluster,
              'skip-ndbcluster-slave|skip-ndb-slave'
@@ -844,9 +847,9 @@
   # --------------------------------------------------------------------------
   # Ndb cluster flags
   # --------------------------------------------------------------------------
-  if ( $opt_with_ndbcluster and $opt_skip_ndbcluster)
+  if ( $opt_with_ndbcluster and !$opt_bench)
   {
-    mtr_error("Can't specify both --with-ndbcluster and --skip-ndbcluster");
+    mtr_error("Can only use --with-ndbcluster togheter with --bench");
   }
 
   if ( $opt_ndbconnectstring )
@@ -1483,7 +1486,7 @@
  # --------------------------------------------------------------------------
   # Add the path where libndbclient can be found
   # --------------------------------------------------------------------------
-  if ( $opt_ndbcluster_supported )
+  if ( $glob_ndbcluster_supported )
   {
     push(@ld_library_paths,  "$glob_basedir/storage/ndb/src/.libs");
   }
@@ -1868,6 +1871,8 @@
 	rmtree(readlink($opt_vardir));
 	# Remove the entire "var" dir
 	rmtree("$opt_vardir/");
+	# Remove the "var" symlink
+	unlink($opt_vardir);
       }
       else
       {
@@ -2040,7 +2045,7 @@
     $opt_skip_ndbcluster_slave= 1;
     return;
   }
-  $opt_ndbcluster_supported= 1;
+  $glob_ndbcluster_supported= 1;
   mtr_report("Using ndbcluster when necessary, mysqld supports it");
 
   if ( $mysql_version_id < 50100 )
@@ -2057,11 +2062,6 @@
 sub ndbcluster_start_install ($) {
   my $cluster= shift;
 
-  if ( $opt_skip_ndbcluster or $glob_use_running_ndbcluster )
-  {
-    return 0;
-  }
-
   mtr_report("Installing $cluster->{'name'} Cluster");
 
   mkdir($cluster->{'data_dir'});
@@ -2475,11 +2475,24 @@
 
   my $cluster_started_ok= 1; # Assume it can be started
 
-  if (ndbcluster_start_install($clusters->[0]) ||
-      ($max_slave_num && !$opt_skip_ndbcluster_slave &&
-       ndbcluster_start_install($clusters->[1])))
+  if ($opt_skip_ndbcluster || $glob_use_running_ndbcluster)
+  {
+    # Don't install master cluster
+  }
+  elsif (ndbcluster_start_install($clusters->[0]))
+  {
+    mtr_warning("Failed to start install of $clusters->[0]->{name}");
+    $cluster_started_ok= 0;
+  }
+
+  if ($max_slave_num == 0 ||
+      $opt_skip_ndbcluster_slave || $glob_use_running_ndbcluster_slave)
+  {
+    # Don't install slave cluster
+  }
+  elsif (ndbcluster_start_install($clusters->[1]))
   {
-    mtr_warning("Failed to start install of cluster");
+    mtr_warning("Failed to start install of $clusters->[1]->{name}");
     $cluster_started_ok= 0;
   }
 
@@ -2512,9 +2525,6 @@
     }
   }
 
-  # Stop clusters...
-  stop_all_servers();
-
   return 0;
 }
 
@@ -2753,10 +2763,9 @@
       # If test needs this cluster, check it was installed ok
       if ( !$cluster->{'installed_ok'} )
       {
-	mtr_tofile($path_timefile,
-		   "Test marked as failed because $cluster->{'name'} " .
-		   "was not installed ok!");
 	mtr_report_test_name($tinfo);
+	$tinfo->{comment}=
+	  "Cluster $cluster->{'name'} was not installed ok";
 	mtr_report_test_failed($tinfo);
 	return 1;
       }
@@ -2879,10 +2888,8 @@
     # Can't restart a running server that may be in use
     if ( $glob_use_running_server )
     {
-      $tinfo->{'skip'}= 1;
-      $tinfo->{'comment'}= "Can't restart a running server";
-
       mtr_report_test_name($tinfo);
+      $tinfo->{comment}= "Can't restart a running server";
       mtr_report_test_skipped($tinfo);
       return;
     }
@@ -2906,6 +2913,7 @@
   # ----------------------------------------------------------------------
   if ( $opt_start_and_exit or $opt_start_dirty )
   {
+    mtr_timer_stop_all($glob_timers);
     mtr_report("\nServers started, exiting");
     exit(0);
   }
@@ -2932,16 +2940,16 @@
       $tinfo->{'timeout'}= 1;           # Mark as timeout
       report_failure_and_restart($tinfo);
     }
+    elsif ( $res == 1 )
+    {
+      # Test case failure reported by mysqltest
+      report_failure_and_restart($tinfo);
+    }
     else
     {
-      # Test case failed, if in control mysqltest returns 1
-      if ( $res != 1 )
-      {
-        mtr_tofile($path_timefile,
-                   "mysqltest returned unexpected code $res, " .
-                   "it has probably crashed");
-      }
-
+      # mysqltest failed, probably crashed
+      $tinfo->{comment}=
+	"mysqltest returned unexpected code $res, it has probably crashed";
       report_failure_and_restart($tinfo);
     }
 
@@ -3593,14 +3601,14 @@
     mtr_verbose("Restart master: Restart forced with --force-restart");
   }
   elsif ( ! $opt_skip_ndbcluster and
-	  $tinfo->{'ndb_test'} == 0 and
+	  !$tinfo->{'ndb_test'} and
 	  $clusters->[0]->{'pid'} != 0 )
   {
     $do_restart= 1;           # Restart without cluster
     mtr_verbose("Restart master: Test does not need cluster");
   }
   elsif ( ! $opt_skip_ndbcluster and
-	  $tinfo->{'ndb_test'} == 1 and
+	  $tinfo->{'ndb_test'} and
 	  $clusters->[0]->{'pid'} == 0 )
   {
     $do_restart= 1;           # Restart with cluster
@@ -4456,6 +4464,7 @@
   skip-ssl              Dont start server with support for ssl connections
   bench                 Run the benchmark suite
   small-bench           Run the benchmarks with --small-tests --small-tables
+  with-ndbcluster       Use cluster as default table type for benchmark
 
 Options to control directories to use
   benchdir=DIR          The directory where the benchmark suite is stored
@@ -4472,7 +4481,6 @@
 Options to control what test suites or cases to run
 
   force                 Continue to run the suite after failure
-  with-ndbcluster       Use cluster in all tests
   with-ndbcluster-only  Run only tests that include "ndb" in the filename
   skip-ndb[cluster]     Skip all tests that need cluster
   skip-ndb[cluster]-slave Skip all tests that need a slave cluster
Thread
bk commit into 5.1 tree (msvensson:1.2317)msvensson18 Oct