Skip to content

Commit

Permalink
MDEV-20185: Windows: Use of uninitialized value $bpath in string eq
Browse files Browse the repository at this point in the history
The execution of mtr in the Windows environment fails due to
the fact that the new code from MDEV-18565 does not take into
account the need to add the ".exe" extension to the names of
executable files when searching for pre-requisites that are
needed to run SST scripts (especially when using mariabackup)
and when searching paths to some other Galera utilities.
This patch fixes this flaw.

Also adding paths to the PATH environment variable is now
done with the correct delimiter character.
  • Loading branch information
sysprg committed Aug 19, 2019
1 parent ff6d307 commit 12e3ac0
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 16 deletions.
33 changes: 22 additions & 11 deletions mysql-test/mysql-test-run.pl
Original file line number Diff line number Diff line change
Expand Up @@ -440,26 +440,36 @@ ()
# ADD scripts to $PATH to that wsrep_sst_* can be found
my ($spath) = grep { -f "$_/wsrep_sst_rsync"; } "$bindir/scripts", $path_client_bindir;
mtr_error("No SST scripts") unless $spath;
$ENV{PATH}="$spath:$ENV{PATH}";
my $separator= (IS_WINDOWS) ? ';' : ':';
$ENV{PATH}="$spath$separator$ENV{PATH}";

# ADD mysql client library path to path so that wsrep_notify_cmd can find mysql
# client for loading the tables. (Don't assume each machine has mysql install)
my ($cpath) = grep { -f "$_/mysql"; } "$bindir/scripts", $path_client_bindir;
mtr_error("No scritps") unless $cpath;
$ENV{PATH}="$cpath:$ENV{PATH}" unless $cpath eq $spath;
$ENV{PATH}="$cpath$separator$ENV{PATH}" unless $cpath eq $spath;

# ADD my_print_defaults script path to path so that SST scripts can find it
my ($epath) = grep { -f "$_/my_print_defaults"; } "$bindir/extra", $path_client_bindir;
my $my_print_defaults_exe=
mtr_exe_maybe_exists(
"$bindir/extra/my_print_defaults",
"$path_client_bindir/my_print_defaults");
my $epath= "";
if ($my_print_defaults_exe ne "") {
$epath= dirname($my_print_defaults_exe);
}
mtr_error("No my_print_defaults") unless $epath;
$ENV{PATH}="$epath:$ENV{PATH}" unless ($epath eq $spath) or
($epath eq $cpath);
$ENV{PATH}="$epath$separator$ENV{PATH}" unless ($epath eq $spath) or
($epath eq $cpath);

$extra_path= $epath;

if (which("socat")) {
$ENV{MTR_GALERA_TFMT}="socat";
} elsif (which("nc")) {
$ENV{MTR_GALERA_TFMT}="nc";
if (!IS_WINDOWS) {
if (which("socat")) {
$ENV{MTR_GALERA_TFMT}="socat";
} elsif (which("nc")) {
$ENV{MTR_GALERA_TFMT}="nc";
}
}

# Check whether WSREP_PROVIDER environment variable is set.
Expand Down Expand Up @@ -506,8 +516,9 @@ ()
"$bindir/extra/mariabackup$opt_vs_config/mariabackup",
"$path_client_bindir/mariabackup");
if ($mariabackup_exe ne "") {
my ($bpath) = grep { -f "$_/mariabackup"; } "$bindir/extra/mariabackup$opt_vs_config", $path_client_bindir;
$ENV{PATH}="$bpath:$ENV{PATH}" unless $bpath eq $extra_path;
my $bpath= dirname($mariabackup_exe);
my $separator= (IS_WINDOWS) ? ';' : ':';
$ENV{PATH}="$bpath$separator$ENV{PATH}" unless $bpath eq $extra_path;

$mariabackup_path= $bpath;

Expand Down
10 changes: 5 additions & 5 deletions mysql-test/suite.pm
Original file line number Diff line number Diff line change
Expand Up @@ -62,17 +62,17 @@ sub skip_combinations {
$skip{'include/have_mariabackup.inc'} = 'Need mariabackup'
unless ::have_mariabackup();

$skip{'include/have_mariabackup.inc'} = 'Need ss'
unless ::which("ss");
$skip{'include/have_mariabackup.inc'} = 'Need socket statistics utility'
unless IS_WINDOWS || ::which("ss");

$skip{'include/have_mariabackup.inc'} = 'Need socat or nc'
unless $ENV{MTR_GALERA_TFMT};
unless IS_WINDOWS || $ENV{MTR_GALERA_TFMT};

$skip{'include/have_xtrabackup.inc'} = 'Need innobackupex'
unless ::which(innobackupex);
unless IS_WINDOWS || ::which("innobackupex");

$skip{'include/have_xtrabackup.inc'} = 'Need socat or nc'
unless $ENV{MTR_GALERA_TFMT};
unless IS_WINDOWS || $ENV{MTR_GALERA_TFMT};

$skip{'include/have_garbd.inc'} = 'Need garbd'
unless ::have_garbd();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

--source include/big_test.inc
--source include/galera_cluster.inc
--source include/have_innodb.inc
--source include/have_xtrabackup.inc

--source suite/galera/include/galera_st_kill_slave.inc
Expand Down

0 comments on commit 12e3ac0

Please sign in to comment.