Commit graph

3652 commits

Author SHA1 Message Date
Elena Stepanova
d947d1bf6e Do not stop repeating a test even if some executions are skipped 2017-08-18 13:35:40 +03:00
Sergei Golubchik
9a5fe1f4ea Merge remote-tracking branch 'mysql/5.5' into 5.5 2017-07-18 14:59:10 +02:00
Sachin Setiya
9495e018fb MDEV-11718 Post-fix
A better way of finding mysqld
2017-05-12 11:09:27 +05:30
Oleksandr Byelkin
d185f1d68b Fix use of require in mysql-test-run.
The motivation for this is that Perl is moving towards not having
current directory ./ in @INC by default. This is causing
mysql-test-run.pl to fail in latest Debian Unstable:

  https://lists.debian.org/debian-devel-announce/2016/08/msg00013.html

However, we have `use "lib"`, there is no need for current directory
in @INC, except for a gross hack. In mtr_cases.pm, there is a
`require "mtr_misc.pl"`, which hides mtr_misc.pl away in mtr_cases
namespace. And things only work because mysql-test-run.pl loads it
with a different name, `require "lib/mtr_misc.pl"`! (Perl will
`require` only once for each unique filename).

Fix this by only using `require` in main program, and referencing
functions with :: scope from other namespaces. For multi-use in
different namespaces, proper `use` modules should be used.

Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
2017-04-19 14:30:52 +02:00
Shishir Jaiswal
788fb5bf67 Bug#25043674 - MYSQLACCESS SCRIPT LOADS AND EXECUTES CODE
FROM THE CURRENT DIRECTORY

DESCRIPTION
===========
When 'mysqlaccess' tool is run, it reads (and executes) the
content of its configuration file 'mysqlaccess.conf' from
the current directory. This is not a recommended behaviour
as someone with ill intentions can insert malicious
instructions into this file which could be executed
whenever this tool is run.

ANALYSIS
========
The configuration file is presently looked for, in the
following folders (in given order):
1. Current directory
2. SYSCONFDIR       //This gets expanded
3. /etc/

Owing to the reasons mentioned above, we should not permit
the file to be in the current directory. Since the other
two folders are assumed to be accessible only to authorized
people, the config file is safe to be read from there.

FIX
===
Modified the script so that it looks for the config file
now in the following two folders (in the given order):
1. SYSCONFDIR
2. /etc/

If it's absent from above locations but present in current
directory, an error is thrown asking the user to move the
file to one of the above locations and retry.

NOTE
====
The location paths and their precedence are not documented
for this tool. It needs to be noted as part of the
associated documentation.
2017-04-17 12:04:14 +05:30
Sergei Golubchik
663068c6ee Merge remote-tracking branch 'mysql/5.5' into 5.5 2017-04-11 10:18:04 -04:00
Sachin Setiya
32591b750f MDEV-11718 5.5 rpl and federated tests massively fail in buildbot with valgrind
Problem:- When MariaDB is compiled with jemalloc support, And we run mtr valgrind
test, valgrind interferes with libjemalloc and returns false errors.

Solution:- Run valgrind with --soname-synonyms=somalloc=libjemalloc* or
--soname-synonyms=somalloc=NONE depending on whether we are dynamically
linking or statically linking.

Signed-off-by: Sachin Setiya <sachin.setiya@mariadb.com>
2017-02-22 11:40:01 +05:30
Pavan Naik
6786caed62 BUG#25147154 : MTR TRIES TO COPY CONTENTS FROM /TMP/DATA
Description :
=============
When a MTR test run is started, it initializes the server and creates
the datadir under '$MYSQL_TEST_DIR/var'('/tmp/var' or '/dev/shm/var'
if --mem option is used) location and then copies it to the datadir
location of server(s).

If $parallel == 1, datadir location of the server is
'$MYSQL_TEST_DIR/var/data'. If $parallel > 1, datadir location of any
server is '$MYSQL_TEST_DIR/var/<thread_num>/data'.

This is the reason MTR searches for the initialized datadir in 2
locations('$opt_vardir' and '$opt_vardir/..') from the current vardir
location..

But this can cause few problems. If a directory with the name 'data'
already exists under '$MYSQL_TEST_DIR' and if the MTR run is started
with parallel value 1, then

1. copytree($install_db, '$opt_vardir/..') command will fail if the
user doesn't have the access permission to '$MYSQL_TEST_DIR/data'
directory.
2. Unnecessary contents from '$MYSQL_TEST_DIR/data' directory will be
copied to server datadir location and this might affect the server
startup.

Fix :
=====
Depending on the $parallel value decide whether the path for the
initialize datadir is "$opt_vardir"(i.e $parallel = 1) or
"$opt_vardir/.."(i.e $parallel > 1).

Reviewed-by: Deepa Dixit <deepa.dixit@oracle.com>
Reviewed-by: Srikanth B R <srikanth.b.r@oracle.com>
RB: 14773
2016-12-05 10:17:40 +05:30
Arun Kuruvila
ac143744a9 Bug#24707666: DEFAULT SETTING FOR SECURE-FILE-PRIV SHOULD BE
RESTRICTED IN ALL GA RELEASES

Back port of WL#6782 to 5.5 and 5.6. This also includes
back port of Bug#20771331, Bug#20741572 and Bug#20770671.
Bug#24695274 and Bug#24679907 are also handled along with
this.
2016-09-28 15:52:05 +05:30
Sergei Golubchik
03dec1aa49 MDEV-10350 "./mtr --report-features" doesn't work
removed
2016-08-03 20:53:04 +02:00
Vicențiu Ciorbaru
c7eef02953 Increase the number of default build thread ids possibilities
When running mysql-test-run without a parallel parameter, it might
be impossible to find a free port.
2016-06-16 22:02:45 +03:00
Daniel Black
cf721d23cc MDEV-9257: Increase limit on parallel workers in mysql-test-run
Signed-off-by: Daniel Black <daniel.black@au.ibm.com>
2016-06-14 19:17:29 +03:00
sayantan dutta
67be190c0b Follow up Fix: Bug #18145121 - DEPRECATED PERL SYNTAX IN MTR
(cherry picked from commit 3eb933e0eb55f962404a04741767177e12a9885f)

Conflicts:
	mysql-test/mysql-test-run.pl
2015-08-05 15:18:25 +05:30
Jan Lindström
7a9670218b MDEV-8474: InnoDB sets per-connection data unsafely
Analysis: At check_trx_exists function InnoDB allocates
a new trx if no trx is found from thd but this newly
allocated trx is not registered to thd. This is unsafe,
because nothing prevents InnoDB plugin from being uninstalled
while there's active transaction. This can cause crashes, hang
and any other odd behavior. It may also corrupt stack, as
functions pointers are not available after dlclose.

Fix: The fix is to use thd_set_ha_data() when
manipulating per-connection handler data. It does appropriate
plugin locking.
2015-07-21 12:12:58 +03:00
Daniel Black
574227c90c /run/shm is the general replacement for /dev/shm in newer distros 2015-04-27 21:15:23 +10:00
Mauritz Sundell
30c14893c7 Bug#20814396 PB2 IS SECRET ABOUT WHAT UNIT TESTS IT RUN
One can not see in PB2 test logs which unit tests have been run
and passed.

This patchs adds an option --unit-tests-report to mtr which
include the ctest report in mtr output.  It will also turn on unit
testing if not explicitly turned off with --no-unit-tests or
equivalent.

In manual runs one can always look in the ctest.log file in mtr
vardir.

--unit-tests are replaced with --unit-tests-report in files under
mysql-test/collections/ to activate report in PB2.
2015-04-17 14:51:46 +02:00
Elena Stepanova
34f37aa0c0 MDEV-7643 MTR creates nested links when tests are run with --mem
1) fix 5.5.42 vs 5.5.41 problem, nested links;
2) fix older MariaDB vs MySQL problem, var_auto_** dirs were not
   removed from the tmpfs location.
Both problems were caused by vardir being expanded to real path
too early, in two different places in the script code
2015-03-09 15:27:58 +02:00
Sergei Golubchik
5d0d6cb129 MDEV-7294 MTR does not use /dev/shm with a out-of-source build
mtr internally does the following:
1. $default_vardir=....
2. $opt_vardir=$default_vardir unless $opt_vardir;
3. $opt_vardir=realpath $opt_vardir unless IS_WINDOWS
4. if ($opt_vardir eq $default_vardir) { .... use /dev/shm ... }

thus we have to realpath $default_datadir too, otherwise
the comparison logic might be broken
2015-01-19 16:28:58 +01:00
Sergey Vojtovich
ca6b86f420 MDEV-7448 - mtr may leave stale mysqld
Let mtr handle SIGHUP the same way as SIGINT. This solves stale mysqld processes
left after broken/closed ssh connection.
2015-01-14 17:50:38 +04:00
Kristian Nielsen
00649525ee MDEV-7189: main.processlist fails sporadically in buildbot
The test case tried to trigger a DEBUG_SYNC point at the end of a SELECT
SLEEP(5) statement. It did this by using EXECUTE 2, intending to trigger first
at the end of SET DEBUG_SYNC, and second at the end of the SELECT SLEEP(5).

However, in --ps-protocol mode, this does not work, because the SELECT is
executed in two steps (Prepare followed by Execute). Thus, the DEBUG_SYNC got
triggered too early, during the Prepare stage rather than Execute, and the
test case could race and information_schema.processlist see the thread in the
wrong state.

This patch fixes by changing the way the DEBUG_SYNC point is triggered. Now we
add a DBUG injection inside the code for SLEEP(5). This ensures that the
DEBUG_SYNC point is not activated until the SLEEP(5) is running, ensuring
that the following wait for completion will be effective.
2015-01-06 16:32:41 +01:00
Sergei Golubchik
a978bdda1e mysql-5.5.41 merge 2014-12-19 11:35:44 +01:00
Sergei Golubchik
cb8f837a3d MDEV-6975 Implement TLS protocol
change SSL methods to be SSLv23 (according to openssl manpage:
"A TLS/SSL connection established with these methods may understand
the SSLv2, SSLv3, TLSv1, TLSv1.1 and TLSv1.2 protocols") from
TLSv1 methods, that go back to the initial SSL implementation
in MySQL in 2001.

OpenSSL default ciphers are different if TLSv1.2 is enabled,
so tests need to take this into account.
2014-11-18 17:57:06 +01:00
Arun Kuruvila
349ac8c9b3 Bug #16581605: REPLACE.EXE UTILITY IS BROKEN IN 5.5
Description:- Replace, the string replacement utility fails
on the windows platform.

Analysis:- The utility takes files and multiple string
pairs as input. In the windows platform, the utility maps
the standard input incorrectly (Considers 0 as the fd for
standard input instead of 2048 on windows). Hence when the
input file is supplied to the utility due to the incorrect
mapping, a bad file descriptor error is generated causing
the utility to exit with an error.

Fix:- "my_fileno()" is used for getting the correct file
despscriptor for standard input.
2014-10-21 16:25:35 +05:30
Arun Kuruvila
38e582aa19 Bug #16581605: REPLACE.EXE UTILITY IS BROKEN IN 5.5
Description:- Replace, the string replacement utility fails
on the windows platform.

Analysis:- The utility takes files and multiple string
pairs as input. In the windows platform, the utility maps
the standard input incorrectly (Considers 0 as the fd for
standard input instead of 2048 on windows). Hence when the
input file is supplied to the utility due to the incorrect
mapping, a bad file descriptor error is generated causing
the utility to exit with an error.

Fix:- "my_fileno()" is used for getting the correct file
despscriptor for standard input.
2014-10-21 16:25:35 +05:30
Kristian Nielsen
5b99f4d330 Increase timeout for check-testcase and friends, in an attempt to cure some random buildbot test failures. 2014-10-28 12:45:39 +01:00
Sayantan Dutta
f44113583c Bug #18964545 - ADD MTR SUPPORT FOR DEBUGGING WITH LLDB revert 2014-09-26 11:50:07 +05:30
Sayantan Dutta
68ea0ea13b Bug #18964545 - ADD MTR SUPPORT FOR DEBUGGING WITH LLDB revert 2014-09-26 11:50:07 +05:30
Sayantan Dutta
4afd7e9ff2 Bug #18964545 ADD MTR SUPPORT FOR DEBUGGING WITH LLDB 2014-09-11 14:48:21 +05:30
Sayantan Dutta
3fef119dcd Bug #18964545 ADD MTR SUPPORT FOR DEBUGGING WITH LLDB 2014-09-11 14:48:21 +05:30
Sayantan Dutta
b1d88a21c2 Bug #19361317 - --MANUAL-GDB EFFECTIVELY TRUNCATES OPTION FILE ARGS AT FIRST SEMICOLON 2014-09-03 14:37:00 +05:30
Sayantan Dutta
e95e876400 Bug #19361317 - --MANUAL-GDB EFFECTIVELY TRUNCATES OPTION FILE ARGS AT FIRST SEMICOLON 2014-09-03 14:37:00 +05:30
Sayantan Dutta
863bcdfd89 Bug #19361402 - ADD --MANUAL-LLDB OPTION TO MYSQL-TEST-RUN.PL, contributed 2014-09-02 15:12:55 +05:30
Sayantan Dutta
9fb7de7b65 Bug #19361402 - ADD --MANUAL-LLDB OPTION TO MYSQL-TEST-RUN.PL, contributed 2014-09-02 15:12:55 +05:30
Sergei Golubchik
a53d794fa7 mtr: don't use --mysqld= options when issuing "mysqld --help"
(and don't append --user=root for --help now, when mysqld has a fix for that)
2014-04-13 14:58:55 +02:00
Sergei Golubchik
cb67dcb618 mysql-5.5.37 selective merge 2014-03-27 22:26:58 +01:00
sayantan dutta
6f027d9dfc Bug #17926328 - MTR SHOULD NOT WAIT FOR CHILDREN WHEN ABORTING TEST RUN ON WINDOWS 2014-02-25 18:42:14 +05:30
sayantan dutta
d18f67bbab Bug #17926328 - MTR SHOULD NOT WAIT FOR CHILDREN WHEN ABORTING TEST RUN ON WINDOWS 2014-02-25 18:42:14 +05:30
Sergei Golubchik
84651126c0 MySQL-5.5.36 merge
(without few incorrect bugfixes and with 1250 files where only a copyright year was changed)
2014-02-17 11:00:51 +01:00
sayantan dutta
cebe93dc5b Bug #18027288 - MTR SUITE ABORTS WHEN A CLIENT TRIES TO CONNECT SERVER WITH A WRONG PORT NUMBER 2014-02-11 17:15:50 +05:30
sayantan dutta
b0b08e76f3 Bug #18027288 - MTR SUITE ABORTS WHEN A CLIENT TRIES TO CONNECT SERVER WITH A WRONG PORT NUMBER 2014-02-11 17:15:50 +05:30
Pavan Naik
1c0122c5c1 BUG#16321920 : CREATE A SEPARATE INNODB_ZIP TEST SUITE
Fix :
-------	

Created separate suites called innodb_zip ans i_innodb_zip that contain all compression tests.

Running the new suites with following compression-related parameters :

* innodb_compression_level = {1/9}
* innodb_log_compressed_pages = {ON/OFF}
2013-11-29 15:13:47 +05:30
Pavan Naik
4f5a317153 BUG#16321920 : CREATE A SEPARATE INNODB_ZIP TEST SUITE
Fix :
-------	

Created separate suites called innodb_zip ans i_innodb_zip that contain all compression tests.

Running the new suites with following compression-related parameters :

* innodb_compression_level = {1/9}
* innodb_log_compressed_pages = {ON/OFF}
2013-11-29 15:13:47 +05:30
Sergei Golubchik
c2839e2cf2 mysql-test: allow suite.pm add its suite to the default list.
run tokudb suites by default.
mark big and slow tests tokudb.change_column_all_1000_1 and
tokudb.change_column_all_1000_10 test as --big
2013-11-27 21:58:36 +01:00
Alexander Barkov
09c6638b87 A clean-up for the previous commit (mtr mysql_tzinfo_to_sql_symlink) 2013-11-22 12:20:29 +04:00
Alexander Barkov
a082ea78c2 "mtr mysql_tzinfo_to_sql_symlink" failed in out-of-source builds with this error:
mysql-test-run: *** ERROR: Could not find any of
/mariadb-5.5.34/sql/mysql_tzinfo_to_sql
/mariadb-5.5.34/build/client/mysql_tzinfo_to_sql
Fixed the directory list to search mysql_tzinfo_to_sql binary in.
2013-11-22 11:52:19 +04:00
Alexander Barkov
d7463f8e59 Merge 5.3 -> 5.5 2013-11-13 19:16:35 +04:00
Alexander Barkov
e4608eb3c1 Merge 5.2 -> 5.3 2013-11-13 18:34:12 +04:00
Alexander Barkov
1bb3a0e3c8 Merge 5.1 -> 5.2 2013-11-13 18:28:40 +04:00
Alexander Barkov
f2cfcd91f5 MDEV-5226 mysql_tzinfo_to_sql errors with tzdata 2013f and above
Allow only one level of symlink recursion in mysql_tzdata_to_sql,
to avoid infinite loops.
2013-11-13 18:26:03 +04:00
Sergei Golubchik
e780bd9efa MDEV-4977 ./mysql-test/mysql-test-run.pl not identifying mariadb version
quote the path when using it in a regex - the path might contain wildcards (e.g. +)
2013-11-11 09:30:58 +01:00