List:Commits« Previous MessageNext Message »
From:msvensson Date:October 23 2006 10:19am
Subject:bk commit into 5.0 tree (msvensson:1.2325)
View as plain text  
Below is the list of changes that have just been committed into a local
5.0 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-23 12:19:52+02:00, msvensson@neptunus.(none) +2 -0
  Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1-maint
  into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
  MERGE: 1.1616.2144.243

  mysql-test/mysql-test-run.pl@stripped, 2006-10-23 12:19:37+02:00, msvensson@neptunus.(none) +0 -0
    Auto merged
    MERGE: 1.8.9.65

  scripts/make_binary_distribution.sh@stripped, 2006-10-23 12:19:48+02:00, msvensson@neptunus.(none) +0 -1
    MERGE: 1.55.8.5

# 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:	neptunus.(none)
# Root:	/home/msvensson/mysql/mysql-5.0-maint/RESYNC

--- 1.135/mysql-test/mysql-test-run.pl	2006-10-23 12:19:57 +02:00
+++ 1.136/mysql-test/mysql-test-run.pl	2006-10-23 12:19:57 +02:00
@@ -1295,6 +1295,54 @@
 }
 
 
+sub executable_setup_im () {
+
+  # Look for instance manager binary - mysqlmanager
+  $exe_im=
+    mtr_exe_maybe_exists(
+      "$glob_basedir/server-tools/instance-manager/mysqlmanager",
+      "$glob_basedir/libexec/mysqlmanager");
+
+  return ($exe_im eq "");
+}
+
+sub executable_setup_ndb () {
+
+  # Look for ndb tols and binaries
+  my $ndb_path= mtr_file_exists("$glob_basedir/ndb",
+				"$glob_basedir/storage/ndb",
+				"$glob_basedir/bin");
+
+  $exe_ndbd=
+    mtr_exe_maybe_exists("$ndb_path/src/kernel/ndbd",
+			 "$ndb_path/ndbd");
+  $exe_ndb_mgm=
+    mtr_exe_maybe_exists("$ndb_path/src/mgmclient/ndb_mgm",
+			 "$ndb_path/ndb_mgm");
+  $exe_ndb_mgmd=
+    mtr_exe_maybe_exists("$ndb_path/src/mgmsrv/ndb_mgmd",
+			 "$ndb_path/ndb_mgmd");
+  $exe_ndb_waiter=
+    mtr_exe_maybe_exists("$ndb_path/tools/ndb_waiter",
+			 "$ndb_path/ndb_waiter");
+
+  # May not exist
+  $path_ndb_tools_dir= mtr_file_exists("$ndb_path/tools",
+				       "$ndb_path");
+  # May not exist
+  $path_ndb_examples_dir=
+    mtr_file_exists("$ndb_path/ndbapi-examples",
+		    "$ndb_path/examples");
+  # May not exist
+  $exe_ndb_example=
+    mtr_file_exists("$path_ndb_examples_dir/ndbapi_simple/ndbapi_simple");
+
+  return ( $exe_ndbd eq "" or
+	   $exe_ndb_mgm eq "" or
+	   $exe_ndb_mgmd eq "" or
+	   $exe_ndb_waiter eq "");
+}
+
 sub executable_setup () {
 
   #
@@ -1333,20 +1381,6 @@
 			      "$glob_basedir/extra/release/perror",
 			      "$glob_basedir/extra/debug/perror");
 
-
-  if ( ! $opt_skip_im )
-  {
-    # Look for instance manager binary - mysqlmanager
-    $exe_im=
-      mtr_exe_exists(
-		     "$glob_basedir/server-tools/instance-manager/mysqlmanager",
-		     "$glob_basedir/libexec/mysqlmanager");
-  }
-  else
-  {
-    $exe_im= "not_available";
-  }
-
   # Look for the client binaries
   $exe_mysqlcheck=     mtr_exe_exists("$path_client_bindir/mysqlcheck");
   $exe_mysqldump=      mtr_exe_exists("$path_client_bindir/mysqldump");
@@ -1368,35 +1402,25 @@
 			"$path_client_bindir/mysql_fix_privilege_tables");
   }
 
-  if ( ! $opt_skip_ndbcluster)
+
+  if ( ! $opt_skip_ndbcluster and executable_setup_ndb())
   {
-    # Look for ndb tols and binaries
-    my $ndb_path= mtr_path_exists("$glob_basedir/ndb",
-				  "$glob_basedir/storage/ndb",
-				  "$glob_basedir/bin");
-
-    $path_ndb_tools_dir= mtr_path_exists("$ndb_path/tools",
-					 "$ndb_path");
-    $exe_ndb_mgm=
-      mtr_exe_exists("$ndb_path/src/mgmclient/ndb_mgm",
-		     "$ndb_path/ndb_mgm");
-    $exe_ndb_mgmd=
-      mtr_exe_exists("$ndb_path/src/mgmsrv/ndb_mgmd",
-		     "$ndb_path/ndb_mgmd");
-    $exe_ndb_waiter=
-      mtr_exe_exists("$ndb_path/tools/ndb_waiter",
-		     "$ndb_path/ndb_waiter");
-    $exe_ndbd=
-      mtr_exe_exists("$ndb_path/src/kernel/ndbd",
-		     "$ndb_path/ndbd");
-
-    # May not exist
-    $path_ndb_examples_dir=
-      mtr_file_exists("$ndb_path/ndbapi-examples",
-		      "$ndb_path/examples");
-    # May not exist
-    $exe_ndb_example=
-      mtr_file_exists("$path_ndb_examples_dir/ndbapi_simple/ndbapi_simple");
+    mtr_warning("Could not find all required ndb binaries, " .
+		"all ndb tests will fail, use --skip-ndbcluster to " .
+		"skip testing it.");
+
+    foreach my $cluster (@{$clusters})
+    {
+      $cluster->{"executable_setup_failed"}= 1;
+    }
+  }
+
+  if ( ! $opt_skip_im and executable_setup_im())
+  {
+    mtr_warning("Could not find all required instance manager binaries, " .
+		"all im tests will fail, use --skip-im to " .
+		"continue without instance manager");
+    $instance_manager->{"executable_setup_failed"}= 1;
   }
 
   # Look for the udf_example library
@@ -1424,7 +1448,8 @@
   if ( $glob_use_embedded_server )
   {
     $exe_mysql_client_test=
-      mtr_exe_maybe_exists("$glob_basedir/libmysqld/examples/mysql_client_test_embedded");
+      mtr_exe_maybe_exists(
+        "$glob_basedir/libmysqld/examples/mysql_client_test_embedded");
   }
   else
   {
@@ -1567,19 +1592,28 @@
   # ----------------------------------------------------
   # Setup env for IM
   # ----------------------------------------------------
-  $ENV{'IM_EXE'}=             $exe_im;
-  $ENV{'IM_PATH_PID'}=        $instance_manager->{path_pid};
-  $ENV{'IM_PATH_ANGEL_PID'}=  $instance_manager->{path_angel_pid};
-  $ENV{'IM_PORT'}=            $instance_manager->{port};
-  $ENV{'IM_DEFAULTS_PATH'}=   $instance_manager->{defaults_file};
-  $ENV{'IM_PASSWORD_PATH'}=   $instance_manager->{password_file};
-
-  $ENV{'IM_MYSQLD1_SOCK'}=    $instance_manager->{instances}->[0]->{path_sock};
-  $ENV{'IM_MYSQLD1_PORT'}=    $instance_manager->{instances}->[0]->{port};
-  $ENV{'IM_MYSQLD1_PATH_PID'}=$instance_manager->{instances}->[0]->{path_pid};
-  $ENV{'IM_MYSQLD2_SOCK'}=    $instance_manager->{instances}->[1]->{path_sock};
-  $ENV{'IM_MYSQLD2_PORT'}=    $instance_manager->{instances}->[1]->{port};
-  $ENV{'IM_MYSQLD2_PATH_PID'}=$instance_manager->{instances}->[1]->{path_pid};
+  if ( ! $opt_skip_im )
+  {
+    $ENV{'IM_EXE'}=             $exe_im;
+    $ENV{'IM_PATH_PID'}=        $instance_manager->{path_pid};
+    $ENV{'IM_PATH_ANGEL_PID'}=  $instance_manager->{path_angel_pid};
+    $ENV{'IM_PORT'}=            $instance_manager->{port};
+    $ENV{'IM_DEFAULTS_PATH'}=   $instance_manager->{defaults_file};
+    $ENV{'IM_PASSWORD_PATH'}=   $instance_manager->{password_file};
+
+    $ENV{'IM_MYSQLD1_SOCK'}=
+      $instance_manager->{instances}->[0]->{path_sock};
+    $ENV{'IM_MYSQLD1_PORT'}=
+      $instance_manager->{instances}->[0]->{port};
+    $ENV{'IM_MYSQLD1_PATH_PID'}=
+      $instance_manager->{instances}->[0]->{path_pid};
+    $ENV{'IM_MYSQLD2_SOCK'}=
+      $instance_manager->{instances}->[1]->{path_sock};
+    $ENV{'IM_MYSQLD2_PORT'}=
+      $instance_manager->{instances}->[1]->{port};
+    $ENV{'IM_MYSQLD2_PATH_PID'}=
+      $instance_manager->{instances}->[1]->{path_pid};
+  }
 
   # ----------------------------------------------------
   # Setup env so childs can execute mysqlcheck
@@ -1834,6 +1868,11 @@
 
     if ( ! -d $opt_vardir )
     {
+      if ( -l $opt_vardir and ! -d readlink($opt_vardir) )
+      {
+	mtr_report("Removing $opt_vardir symlink without destination");
+	unlink($opt_vardir);
+      }
       # The "var" dir does not exist already
       # the processes that mtr_kill_leftovers start will write
       # their log files to var/log so it should be created
@@ -2037,14 +2076,6 @@
     $opt_skip_ndbcluster_slave= 1;
     return;
   }
-  elsif ( -e "$glob_basedir/bin" && ! -f "$glob_basedir/bin/ndbd")
-  {
-    # Binary dist with a mysqld that supports ndb, but no ndbd found
-    mtr_report("Skipping ndbcluster, can't fint binaries");
-    $opt_skip_ndbcluster= 1;
-    $opt_skip_ndbcluster_slave= 1;
-    return;
-  }
   $glob_ndbcluster_supported= 1;
   mtr_report("Using ndbcluster when necessary, mysqld supports it");
 
@@ -2475,7 +2506,8 @@
 
   my $cluster_started_ok= 1; # Assume it can be started
 
-  if ($opt_skip_ndbcluster || $glob_use_running_ndbcluster)
+  if ($opt_skip_ndbcluster || $glob_use_running_ndbcluster ||
+      $clusters->[0]->{executable_setup_failed})
   {
     # Don't install master cluster
   }
@@ -2486,7 +2518,8 @@
   }
 
   if ($max_slave_num == 0 ||
-      $opt_skip_ndbcluster_slave || $glob_use_running_ndbcluster_slave)
+      $opt_skip_ndbcluster_slave || $glob_use_running_ndbcluster_slave ||
+      $clusters->[1]->{executable_setup_failed})
   {
     # Don't install slave cluster
   }
@@ -2760,6 +2793,16 @@
       last if ($opt_skip_ndbcluster_slave and
 	       $cluster->{'name'} eq 'Slave');
 
+      # If test needs this cluster, check binaries was found ok
+      if ( $cluster->{'executable_setup_failed'} )
+      {
+	mtr_report_test_name($tinfo);
+	$tinfo->{comment}=
+	  "Failed to find cluster binaries";
+	mtr_report_test_failed($tinfo);
+	return 1;
+      }
+
       # If test needs this cluster, check it was installed ok
       if ( !$cluster->{'installed_ok'} )
       {
@@ -2769,6 +2812,20 @@
 	mtr_report_test_failed($tinfo);
 	return 1;
       }
+
+    }
+  }
+
+  if ( $tinfo->{'component_id'} eq 'im' )
+  {
+      # If test needs im, check binaries was found ok
+    if ( $instance_manager->{'executable_setup_failed'} )
+    {
+      mtr_report_test_name($tinfo);
+      $tinfo->{comment}=
+	"Failed to find MySQL manager binaries";
+      mtr_report_test_failed($tinfo);
+      return 1;
     }
   }
 
@@ -2880,6 +2937,13 @@
 sub run_testcase ($) {
   my $tinfo=  shift;
 
+  # -------------------------------------------------------
+  # Init variables that can change between each test case
+  # -------------------------------------------------------
+
+  $ENV{'TZ'}= $tinfo->{'timezone'};
+  mtr_verbose("Starting server with timezone: $tinfo->{'timezone'}");
+
   my $master_restart= run_testcase_need_master_restart($tinfo);
   my $slave_restart= run_testcase_need_slave_restart($tinfo);
 
@@ -3409,6 +3473,9 @@
   my $type= $mysqld->{'type'};
   my $idx= $mysqld->{'idx'};
 
+  mtr_error("Internal error: mysqld should never be started for embedded")
+    if $glob_use_embedded_server;
+
   if ( $type eq 'master' )
   {
     $exe= $exe_master_mysqld;
@@ -3848,12 +3915,6 @@
 sub run_testcase_start_servers($) {
   my $tinfo= shift;
   my $tname= $tinfo->{'name'};
-
-  # -------------------------------------------------------
-  # Init variables that can change between server starts
-  # -------------------------------------------------------
-  $ENV{'TZ'}= $tinfo->{'timezone'};
-  mtr_verbose("Starting server with timezone: $tinfo->{'timezone'}");
 
   if ( $tinfo->{'component_id'} eq 'mysqld' )
   {
Thread
bk commit into 5.0 tree (msvensson:1.2325)msvensson23 Oct