4054 magnus.blaudd@stripped 2012-11-13 [merge]
Merge
modified:
mysql-test/lib/mtr_cases.pm
mysql-test/mysql-test-run.pl
4053 Vasil Dimov 2012-11-12
This is a backport of "WL#5674 InnoDB: report all deadlocks (Bug#1784)"
from MySQL 5.6 into MySQL 5.5
Will close Bug#14515889 BACKPORT OF INNODB DEADLOCK LOGGING TO 5.5
The original implementation is in
vasil.dimov@stripped
Approved by: Jimmy (rb:1535)
added:
mysql-test/suite/sys_vars/r/innodb_print_all_deadlocks_basic.result
mysql-test/suite/sys_vars/t/innodb_print_all_deadlocks_basic.test
modified:
storage/innobase/handler/ha_innodb.cc
storage/innobase/include/srv0srv.h
storage/innobase/lock/lock0lock.c
storage/innobase/srv/srv0srv.c
=== modified file 'mysql-test/lib/mtr_cases.pm'
--- a/mysql-test/lib/mtr_cases.pm 2012-10-24 15:06:43 +0000
+++ b/mysql-test/lib/mtr_cases.pm 2012-11-04 21:11:34 +0000
@@ -963,18 +963,11 @@ sub collect_one_test_case {
if ( $tinfo->{'ndb_test'} )
{
# This is a NDB test
- if ( $::opt_skip_ndbcluster == 2 )
+ if ( $::ndbcluster_enabled == 0)
{
- # Ndb is not supported, skip it
+ # ndbcluster is disabled
$tinfo->{'skip'}= 1;
- $tinfo->{'comment'}= "No ndbcluster support or ndb tests not enabled";
- return $tinfo;
- }
- elsif ( $::opt_skip_ndbcluster )
- {
- # All ndb test's should be skipped
- $tinfo->{'skip'}= 1;
- $tinfo->{'comment'}= "No ndbcluster tests(--skip-ndbcluster)";
+ $tinfo->{'comment'}= "ndbcluster disabled";
return $tinfo;
}
}
=== modified file 'mysql-test/mysql-test-run.pl'
--- a/mysql-test/mysql-test-run.pl 2012-10-24 15:06:43 +0000
+++ b/mysql-test/mysql-test-run.pl 2012-11-04 21:17:17 +0000
@@ -310,8 +310,9 @@ sub check_timeout ($) { return testcase_
our $opt_warnings= 1;
-our $opt_include_ndbcluster= 0;
-our $opt_skip_ndbcluster= 1;
+our $ndbcluster_enabled= 0;
+my $opt_include_ndbcluster= 0;
+my $opt_skip_ndbcluster= 0;
my $exe_ndbd;
my $exe_ndbmtd;
@@ -365,26 +366,6 @@ sub main {
if (!$opt_suites) {
$opt_suites= $DEFAULT_SUITES;
-
- # Check for any extra suites to enable based on the path name
- my %extra_suites=
- (
- "mysql-5.1-new-ndb" => "ndb_team",
- "mysql-5.1-new-ndb-merge" => "ndb_team",
- "mysql-5.1-telco-6.2" => "ndb_team",
- "mysql-5.1-telco-6.2-merge" => "ndb_team",
- "mysql-5.1-telco-6.3" => "ndb_team",
- "mysql-6.0-ndb" => "ndb_team",
- );
-
- foreach my $dir ( reverse splitdir($basedir) ) {
- my $extra_suite= $extra_suites{$dir};
- if (defined $extra_suite) {
- mtr_report("Found extra suite: $extra_suite");
- $opt_suites= "$extra_suite,$opt_suites";
- last;
- }
- }
}
mtr_report("Using suites: $opt_suites") unless @opt_cases;
@@ -408,7 +389,6 @@ sub main {
unshift(@$tests, $tinfo);
}
- print "vardir: $opt_vardir\n";
initialize_servers();
#######################################################################
@@ -1070,7 +1050,7 @@ sub command_line_setup {
# Control what test suites or cases to run
'force' => \$opt_force,
'with-ndbcluster-only' => \&collect_option,
- 'include-ndbcluster' => \$opt_include_ndbcluster,
+ 'ndb|include-ndbcluster' => \$opt_include_ndbcluster,
'skip-ndbcluster|skip-ndb' => \$opt_skip_ndbcluster,
'suite|suites=s' => \$opt_suites,
'skip-rpl' => \&collect_option,
@@ -1519,7 +1499,6 @@ sub command_line_setup {
}
$ENV{'PATH'}= "$ENV{'PATH'}".$separator.$lib_mysqld;
}
- $opt_skip_ndbcluster= 1; # Turn off use of NDB cluster
$opt_skip_ssl= 1; # Turn off use of SSL
# Turn off use of bin log
@@ -1999,7 +1978,7 @@ sub executable_setup () {
$exe_mysql_embedded= mtr_exe_maybe_exists("$basedir/libmysqld/examples/mysql_embedded");
- if ( ! $opt_skip_ndbcluster )
+ if ( $ndbcluster_enabled )
{
# Look for single threaded NDB
$exe_ndbd=
@@ -2270,7 +2249,7 @@ sub environment_setup {
# --------------------------------------------------------------------------
# Add the path where libndbclient can be found
# --------------------------------------------------------------------------
- if ( !$opt_skip_ndbcluster )
+ if ( $ndbcluster_enabled )
{
push(@ld_library_paths, "$basedir/storage/ndb/src/.libs");
}
@@ -2358,7 +2337,7 @@ sub environment_setup {
# ----------------------------------------------------
# Setup env for NDB
# ----------------------------------------------------
- if ( ! $opt_skip_ndbcluster )
+ if ( $ndbcluster_enabled )
{
$ENV{'NDB_MGM'}=
my_find_bin($bindir,
@@ -2753,37 +2732,87 @@ sub vs_config_dirs ($$) {
sub check_ndbcluster_support ($) {
my $mysqld_variables= shift;
- # Check if this is MySQL Cluster, ie. mysql version string ends
- # with -ndb-Y.Y.Y[-status]
- if ( defined $mysql_version_extra &&
- $mysql_version_extra =~ /^-ndb-/ )
+ my $ndbcluster_supported = 0;
+ if ($mysqld_variables{'ndb-connectstring'})
{
- mtr_report(" - MySQL Cluster");
- # Enable ndb engine and add more test suites
- $opt_include_ndbcluster = 1;
- $DEFAULT_SUITES.=",ndb";
+ $ndbcluster_supported = 1;
}
- if ($opt_include_ndbcluster)
+ if ($opt_skip_ndbcluster && $opt_include_ndbcluster)
{
- $opt_skip_ndbcluster= 0;
+ # User is ambivalent. Theoretically the arg which was
+ # given last on command line should win, but that order is
+ # unknown at this time.
+ mtr_error("Ambigous command, both --include-ndbcluster " .
+ " and --skip-ndbcluster was specified");
}
- if ($opt_skip_ndbcluster)
+ # Check if this is MySQL Cluster, ie. mysql version string ends
+ # with -ndb-Y.Y.Y[-status]
+ if ( defined $mysql_version_extra &&
+ $mysql_version_extra =~ /-ndb-([0-9]*)\.([0-9]*)\.([0-9]*)/ )
{
- mtr_report(" - skipping ndbcluster");
- return;
- }
+ # MySQL Cluster tree
+ mtr_report(" - MySQL Cluster detected");
- if ( ! $mysqld_variables{'ndb-connectstring'} )
- {
- mtr_report(" - skipping ndbcluster, mysqld not compiled with ndbcluster");
- $opt_skip_ndbcluster= 2;
- return;
+ if ($opt_skip_ndbcluster)
+ {
+ mtr_report(" - skipping ndbcluster(--skip-ndbcluster)");
+ return;
+ }
+
+ if (!$ndbcluster_supported)
+ {
+ # MySQL Cluster tree, but mysqld was not compiled with
+ # ndbcluster -> fail unless --skip-ndbcluster was used
+ mtr_error("This is MySQL Cluster but mysqld does not " .
+ "support ndbcluster. Use --skip-ndbcluster to " .
+ "force mtr to run without it.");
+ }
+
+ # mysqld was compiled with ndbcluster -> auto enable
}
+ else
+ {
+ # Not a MySQL Cluster tree
+ if (!$ndbcluster_supported)
+ {
+ if ($opt_include_ndbcluster)
+ {
+ mtr_error("Could not detect ndbcluster support ".
+ "requested with --include-ndbcluster");
+ }
+
+ # Silently skip, mysqld was compiled without ndbcluster
+ # which is the default case
+ return;
+ }
+
+ if ($opt_skip_ndbcluster)
+ {
+ # Compiled with ndbcluster but ndbcluster skipped
+ mtr_report(" - skipping ndbcluster(--skip-ndbcluster)");
+ return;
+ }
- mtr_report(" - using ndbcluster when necessary, mysqld supports it");
+ # Not a MySQL Cluster tree, enable ndbcluster
+ # if --include-ndbcluster was used
+ if ($opt_include_ndbcluster)
+ {
+ # enable ndbcluster
+ }
+ else
+ {
+ mtr_report(" - skipping ndbcluster(disabled by default)");
+ return;
+ }
+ }
+
+ mtr_report(" - enabling ndbcluster");
+ $ndbcluster_enabled= 1;
+ # Add MySQL Cluster test suites
+ $DEFAULT_SUITES.=",ndb,ndb_binlog,rpl_ndb,ndb_rpl,ndb_memcache";
return;
}
No bundle (reason: useless for push emails).
| Thread |
|---|
| • bzr push into mysql-5.5 branch (magnus.blaudd:4053 to 4054) | magnus.blaudd | 14 Nov |