Commit graph

174554 commits

Author SHA1 Message Date
Sergei Golubchik
078e510e0a Merge branch 'merge/merge-tokudb-5.6' into 10.0 2016-09-27 19:03:11 +02:00
Sergei Golubchik
2e914acb78 Merge branch 'merge/merge-perfschema-5.6' into 10.0 2016-09-27 19:00:08 +02:00
Sergei Golubchik
bb8b658954 Merge branch 'merge/merge-xtradb-5.6' into 10.0 2016-09-27 18:58:57 +02:00
Sergei Golubchik
3629f62d29 Merge branch 'merge/merge-innodb-5.6' into 10.0 2016-09-27 18:05:06 +02:00
Sergei Golubchik
93ab3093cb 5.6.32-78.1 2016-09-27 18:00:59 +02:00
Sergei Golubchik
e312e2e636 5.6.32-78.1 2016-09-27 17:59:58 +02:00
Sergei Golubchik
e3124a8cd7 5.6.33 2016-09-27 17:57:28 +02:00
Sergei Golubchik
094f140c9a 5.6.33 2016-09-27 17:56:00 +02:00
Vicențiu Ciorbaru
0e472236ce Make sure to recompile the feedback plugin for EMBEDDED
On OS X with clang 7.3.0 running any test as embedded crashes. As
libfeedback was not compiled with embedded, we had 2 notions of THD,
with different number of members. When calling inline functions defined in
sql_class.h, the functions were defined for 1 THD but called on an
object that is different. This resulted in erroneous data being returned
and shortly after, a crash within the alloc_query() function.

Recompile the feedback plugin for the embedded server specifically to
not have such symbol conflicts.
2016-09-27 17:38:47 +02:00
Vladislav Vaintroub
b38d3c3d8a MDEV-10907 MTR and server writes can interleave in the error log
Ensure atomic appends to the error log by using CreateFile with
FILE_APPEND_DATA flag to open error log file (both MTR and server)
2016-09-27 12:34:15 +00:00
Oleksandr Byelkin
e226276950 MDEV-10777: Server crashed due to query_cache_info plugin
Possible fix. Make the pluging more safe.
2016-09-27 14:11:37 +02:00
Vladislav Vaintroub
3f5aedccca MDEV-10847 Bring AWS KMS encryption plugin up-to-date with released SDK
- Library path's are different now
- New dependency on Linux libuuid
- Add calls for SDK Initialization/shutdown
- Also add request_timeout parameter, default SDK HTTPs timeout appears
to be too short in my tests
2016-09-27 11:18:24 +00:00
Vladislav Vaintroub
f1aefd9d75 MDEV-10823 Certain unicode characters in hostname prevent mysqld from starting
Server uses gethostname() for the default base name for pid/log files.
If a character is not representable in current ANSI encoding, gethostname
replaces it with question mark. Thus, generated log file name would also
contain a question mark. However, Windows forbids certain characters in
filenames, among them '?'.

This is described in MSDN article https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx
At attempts to create the file via freopen() fails, thus server would not
be able to start.

The fix is to verify hostname and fall back to  "mysql", if
invalid characters are found.
2016-09-27 10:54:01 +00:00
Sergei Golubchik
77ce4ead81 Merge branch '5.5' into 10.0 2016-09-27 09:21:19 +02:00
Jan Lindström
661d08c36c MDEV-10887: innodb.innodb_stats_fetch_nonexistent fails in buildbot on Windows
Problem was that test innodb.innodb_stats_fetch_corrupted will post
a error InnoDB: Error: Table "mysql"."innodb_index_stats" not found
to a error log and test ignores that message. However, following tests
might see this error also and they might not ignore this error.
Force a server restart after innodb.innodb_stats_fetch_corrupted
to get clean log.
2016-09-27 07:54:27 +03:00
Jan Lindström
452e849522 MDEV-10886: encryption.innodb-bad-key-change fails (crashes) in buildbot
Problem was that NULL-pointer was accessed inside a macro when
page read from tablespace is encrypted but decrypt fails because
of incorrect key file.

Removed unsafe macro using inlined function where used pointers
are checked.
2016-09-27 07:54:27 +03:00
Jan Lindström
4e2a0c34b0 MDEV-10888: encryption.filekeys_emptyfile fails in buildbot with valgrind
Problem was that length of the filekeys file was not checked and if
length is less than OpenSSL_prefix_len uninitialized memory was
accessed.
2016-09-27 07:54:27 +03:00
Sergei Golubchik
d61e5260fb MDEV-10441 Document the server_audit_loc_info variable
fix PLUGIN_VAR_NOSYSVAR | PLUGIN_VAR_NOCMDOPT plugin thdvars to work.
use that for server_audit_loc_info
2016-09-26 17:48:08 +02:00
Vladislav Vaintroub
c91fdb66db Windows , mtr : allow cdb to print core dumps also if --parallel > 1 2016-09-26 13:03:02 +02:00
Sergei Golubchik
8483659f4f report correct write error on log writes 2016-09-26 12:20:28 +02:00
Sergei Golubchik
f620da194b MDEV-10725 Server 10.1.17 fails to build using clang with c++11
my_offsetof() returns a difference of two pointers, it must use the
appropriate return type (my_ptrdiff_t, not size_t)
2016-09-26 12:20:28 +02:00
Alexey Botchkov
d30809a3cd MDEV-10832 Out of tree build: mysql_install_db to see all .sql files.
One line in mysql_install_db.sh was left unfixed.
2016-09-26 09:40:47 +04:00
Kristian Nielsen
9434431374 Fix free() after my_malloc() (should be my_free()).
Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
2016-09-24 13:50:42 +02:00
Jan Lindström
7d7b92c107 Disable encryption info and first page read info for every tablespace
on product builds.
2016-09-24 14:22:44 +03:00
Sergei Golubchik
677c44f0c3 MDEV-10775 System table in InnoDB format allowed in MariaDB could lead to crash
when opening a system table for a SELECT-like read, pretend
(for the sake of engines) it's SQLCOM_SELECT
2016-09-23 20:27:58 +02:00
Daniel Black
5d001d13c2 MDEV-10832 - Out of tree build: mysql_install_db to see all .sql files (#237)
* Out of tree build: mysql_install_db to see all .sql files

Since MDEV-7875 (da0991c6), not all sql source files are in the source
directory, maria_add_gis_sp_bootstrap.sql is in the build directory.

This corrects mysql_install_db{.sh} to be aware of the differing
locations.

Signed-off-by: Daniel Black <daniel.black@au.ibm.com>

* Out of tree build: scripts/mysql_install_db.pl.in

Signed-off-by: Daniel Black <daniel.black@au.ibm.com>
2016-09-23 11:28:38 +04:00
Jan Lindström
e136aa1ba7 Fix test failure. Need to mask more tablespace numbers as they
are not consistent on parallel mtr runs.
2016-09-23 09:11:11 +03:00
Jan Lindström
1d55cfce10 Do not use os_file_read() directly for reading first page of the
tablespace. Instead use fil_read() with syncronous setting.
Fix test failures and mask tablespace number as it could
change in concurrent mtr runs.
2016-09-22 21:47:27 +03:00
Jan Lindström
2bedc3978b MDEV-9931: InnoDB reads first page of every .ibd file at startup
Analysis: By design InnoDB was reading first page of every .ibd file
at startup to find out is tablespace encrypted or not. This is
because tablespace could have been encrypted always, not
encrypted newer or encrypted based on configuration and this
information can be find realible only from first page of .ibd file.

Fix: Do not read first page of every .ibd file at startup. Instead
whenever tablespace is first time accedded we will read the first
page to find necessary information about tablespace encryption
status.

TODO: Add support for SYS_TABLEOPTIONS where all table options
encryption information included will be stored.
2016-09-22 16:38:24 +03:00
Seamus Lee
e387bfafbb MDEV-10830 - Fix undefined database test error when running mysql_install_db (#234)
* Fix undefined database test error when running mysql_install_db

When using mariaDb in docker mode it can fail as it calls mysql_install_db but as we are going through a slightly different install process the test database has not been created, therefore we should fall back to the mysql database as per https://mariadb.com/kb/en/mariadb/mariadb-10112-mysql_install_db-aborts-on-unkown-file-test/

* Also fix mysql_install_db.pl.in
2016-09-22 13:14:40 +04:00
Sergey Vojtovich
e56a53920b MDEV-10315 - Online ALTER TABLE may get stuck in tdc_remove_table
There was race condition between online ALTER TABLE and statements performing
TABLE_SHARE release without marking it flushed (e.g. in case of table cache
overflow, SET @@global.table_open_cache, manager thread purging table cache).

The reason was missing mysql_cond_broadcast().
2016-09-22 10:21:12 +04:00
Alexander Barkov
9f837c6e1a MDEV-10864 Wrong result for WHERE .. (f2=COMPRESS('test') OR f2=COMPRESS('TEST')) 2016-09-22 10:03:12 +04:00
Alexander Barkov
7e4eb990ad MDEV-10425 Assertion `collation.derivation == DERIVATION_IMPLICIT' failed in Item_func_conv_charset::fix_length_and_dec()
MDEV-10850 Wrong result for WHERE .. (f2=TO_BASE64('test') OR f2=TO_BASE64('TEST'))

Problem N1: MDEV-10425
Item_func_{md5|sha|sha2}::fix_length_and_dec() changed args[0]->collation
to force binary comparison in args[0]->eq().
It was done to treat e.g. MD5('a') and MD5('A') as different values.
It is wrong for a Item_func_xxx to modify its arguments.
Item_func_conv_charset did not expect that and crashed on assert.

Problem N2: MDEV-10850
Item_func_to_base64, Item_func_password, Item_func_hex are also case sensitive
hash functions, but they did not compare their arguments as binary.

Solution:
- Removing the code changing args[0]->collation
- Introducing Item_str_ascii_checksum_func as a common parent
  for Item_func_{md5|sha|sha2|password|hex|to_base64}
  and overriding its eq() method to compare arguments binary.
2016-09-22 07:00:10 +04:00
Alexander Barkov
ec7e0b7b30 MDEV-10556 Assertion `0' failed in virtual void Item_sum_field::set_result_field(Field*) 2016-09-21 09:13:33 +04:00
Nirbhay Choubey
8b51bacfd6 MDEV-10735: Valgrind warnings around Galera SST
While copying the received state Id (uuid:seqno) to an uninitialized
buffer, it was not properly null-terminated.
2016-09-20 21:32:53 -04:00
Nirbhay Choubey
6eca463cae Fix typo in valgrind.supp 2016-09-20 15:17:57 -04:00
Vicențiu Ciorbaru
83d5b963bd Fix tokudb jemalloc linking
Linking tokudb with jemalloc privately causes problems on library
load/unload. To prevent dangling destructor pointers, link with the same
library as the server is using.
2016-09-20 12:37:35 +02:00
iangilfillan
fd0c114c5d Update contributors 2016-09-19 12:31:19 +04:00
Daniel Bartholomew
b3f7a8019d bump the VERSION 2016-09-13 11:12:54 -04:00
Vicențiu Ciorbaru
6e02d426d5 Fix compilation failure of TokuDB on BSD-like systems
mincore is defined differently in BSD mincore(void *, size_t, char *) vs
linux variant of: mincore(void *, size_t, unsigned char *).
Account for this difference in TokuDB.
2016-09-13 13:37:05 +02:00
Sergei Golubchik
0da39cacee fix BIGINT+MEDIUMINT type aggregation 2016-09-12 16:42:05 +02:00
Sergei Golubchik
347eeefbfc don't use my_copystat in the server
it was supposed to be used in command-line tools only.
Different fix for 4e5473862e:

Bug#24388746: PRIVILEGE ESCALATION AND RACE CONDITION USING CREATE TABLE
2016-09-12 16:42:05 +02:00
Sergei Golubchik
611dc0dcf4 missing element in prelocked_mode_name[] array
different fix for a63a250d40:

BUG#23509275 :DBUG_PRINT in THD::decide_logging_format prints incorrectly, access out-of-bound
2016-09-12 16:42:04 +02:00
Sergei Golubchik
a229091953 potential signedness issue
different fix for 07a33cdcef:

Bug #23296299 : HANDLE_FATAL_SIGNAL (SIG=11) IN MY_TOSORT_UTF32
2016-09-12 16:41:54 +02:00
Sergei Golubchik
7ae555c114 Merge branch 'mysql/5.5' into 5.5
80% reverted
2016-09-11 20:51:09 +02:00
Kristian Nielsen
b34d7fba31 Debian bug#837369 - test failures on hppa
ENOTEMPTY is 247 on hppa, not 39 like on Linux, according to this report:

  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=837369

So add another replacement for this to rpl.rpl_drop_db and
binlog.binlog_databasae tests (there were already a couple similar
replacements for other platforms).

Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
2016-09-11 11:18:27 +02:00
Kristian Nielsen
af3dc4825b Attempt to fix strange rpm dependency issue following prior patch 2016-09-10 20:42:20 +02:00
Kristian Nielsen
577f3c1dce 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>
2016-09-10 17:50:32 +02:00
Kristian Nielsen
bb2c1a52c6 Merge parallel replication async deadlock kill into 10.1 2016-09-09 11:53:50 +02:00
Alexander Barkov
de7f87708a MDEV-10702 Crash in SET STATEMENT FOR EXECUTE 2016-09-09 08:40:24 +04:00