Commit graph

181320 commits

Author SHA1 Message Date
Jan Lindström
0c20b247de Disable galera.query_cache test. 2019-01-04 21:22:41 +02:00
Jan Lindström
b6b15de85d Disable failing Galera test galera_query_cache. 2019-01-04 20:23:13 +02:00
Jan Lindström
3d8011b375
Merge pull request #929 from angeloudy/fix-broken-thing
Make mariabackup.sh compatible on FreeBSD
2019-01-04 14:47:56 +02:00
Marko Mäkelä
23e4446adc Fix a merge error in the parent commit
Fix an inadvertently inverted condition that caused
galera.galera_sst_mariabackup_table_options test failure.
2019-01-04 01:59:46 +02:00
Marko Mäkelä
b7392d142a Merge 10.1 into 10.2 2019-01-03 16:58:05 +02:00
Marko Mäkelä
7158edcba3 MDEV-18129 Backup fails for encrypted tables: mariabackup: Database page corruption detected at page 1
If an encrypted table is created during backup, then
mariabackup --backup could wrongly fail.

This caused a failure of the test mariabackup.huge_lsn once on buildbot.

This is due to the way how InnoDB creates .ibd files. It would first
write a dummy page 0 with no encryption information. Due to this,
xb_fil_cur_open() could wrongly interpret that the table is not encrypted.
Subsequently, page_is_corrupted() would compare the computed page
checksum to the wrong checksum. (There are both "before" and "after"
checksums for encrypted pages.)

To work around this problem, we introduce a Boolean option
--backup-encrypted that is enabled by default. With this option,
Mariabackup will assume that a nonzero key_version implies that the
page is encrypted. We need this option in order to be able to copy
encrypted tables from MariaDB 10.1 or 10.2, because unencrypted pages
that were originally created before MySQL 5.1.48 could contain nonzero
garbage in the fields that were repurposed for encryption.

Later, MDEV-18128 would clean up the way how .ibd files are created,
to remove the need for this option.

page_is_corrupted(): Add missing const qualifiers, and do not check
space->crypt_data unless --skip-backup-encrypted has been specified.

xb_fil_cur_read(): After a failed page read, output a page dump.
2019-01-03 16:46:38 +02:00
Sergei Golubchik
842402e4df Merge branch '10.1' into 10.2 2019-01-03 09:57:02 +01:00
Sergei Golubchik
3ba3f81ae0 Merge branch '10.0' into 10.1 2019-01-03 09:56:24 +01:00
Sergei Golubchik
2f368bb967 fix RHEL8 "ambiguous python shebang" build failures 2019-01-03 00:23:06 +01:00
Sergei Golubchik
cf8a564686 compilation warning on windows 2019-01-03 00:23:06 +01:00
Sergei Golubchik
1f9f72b13e fix debian builds for cosmic 2019-01-03 00:23:05 +01:00
Sergei Golubchik
b87eb04f77 Merge branch '5.5' into 10.0 2019-01-03 00:20:53 +01:00
Daniel Bartholomew
099186d09e bump the VERSION 2019-01-02 13:42:11 -05:00
Sergei Golubchik
884caeafba fix RHEL8 "ambiguous python shebang" build failures 2019-01-02 19:32:05 +01:00
Sergei Golubchik
32150d2513 compilation warning on Windows 2019-01-02 19:28:48 +01:00
Sergei Golubchik
2450fd67ed fix the test for 2019 2019-01-02 12:03:15 +01:00
Tao ZHOU
cb85803c45
Use absolute path for mariabackup binary 2019-01-02 15:40:55 +11:00
Sergei Golubchik
67240858b2 Merge branch '10.1' into 10.2 2018-12-30 18:30:29 +01:00
Sergei Golubchik
aeefd26ecb Merge branch '10.0' into 10.1 2018-12-29 23:44:45 +01:00
Marko Mäkelä
cf9070a8f7 Merge 10.1 into 10.2 2018-12-29 23:12:25 +02:00
Marko Mäkelä
50c9469be8 MDEV-18105 Mariabackup fails to copy encrypted InnoDB system tablespace if LSN>4G
This is a regression caused by
commit 8c43f96388
that was part of the MDEV-12112 fixes.

page_is_corrupted(): Never interpret page_no=0 as encrypted.
2018-12-29 22:59:20 +02:00
Eugene Kosov
802ce9672f MDEV-18041 Database corruption after renaming a prefix-indexed column
This is a regression after MDEV-13671.

The bug is related to key part prefix lengths wich are stored in SYS_FIELDS.
Storage format is not obvious and was handled incorrectly which led to data
dictionary corruption.

SYS_FIELDS.POS actually contains prefix length too in case if any key part
has prefix length.

innobase_rename_column_try(): fixed prefixes handling

Tests for prefixed indexes added too.

Closes #1063
2018-12-29 22:57:05 +02:00
Marko Mäkelä
0b73b96f9d Merge 10.1 into 10.2 2018-12-29 11:05:26 +02:00
Marko Mäkelä
68143c8905 MDEV-17470: Fix the test for --embedded 2018-12-29 10:57:26 +02:00
Vladislav Vaintroub
ed66acb291 Silence LeakSanitizer by default in mariabackup, so that phanthom "leaks"
would not hide more interesting information, like invalid memory accesses.


some "leaks" are expected
- partly this is due to weird options parsing, that runs twice, and
does not free memory after the first run.
- also we do not mind to exit()  whenever it makes sense, without full
cleanup.
2018-12-29 02:06:19 +01:00
Marko Mäkelä
33caaba5c8 Merge 10.1 into 10.2 2018-12-28 17:40:38 +02:00
Eugene Kosov
c5a5eaa9a9 MDEV-17470 Orphan temporary files after interrupted ALTER cause InnoDB: Operating system error number 17 and eventual fatal error 71
Orphan #sql* tables may remain after ALTER TABLE
was interrupted by timeout or KILL or client disconnect.

This is a regression caused by MDEV-16515.

Similar to temporary tables (MDEV-16647), we had better ignore the
KILL when dropping the original table in the final part of ALTER TABLE.

Closes #1020
2018-12-28 17:05:48 +02:00
Marko Mäkelä
b74eb5a5fe row_drop_table_for_mysql(): Correct a parameter to innobase_format_name()
This fixes a regression that was introduced in MySQL 5.6.6
in an error handling code path, in the following change:

commit 024f363d6b5f09b20d1bba411af55be95c7398d3
Author: kevin.lewis@oracle.com <>
Date:   Fri Jun 15 09:01:42 2012 -0500

    Bug #14169459 INNODB; DROP TABLE DOES NOT DELETE THE IBD FILE
    FOR A TEMPORARY TABLE.
2018-12-28 12:28:16 +02:00
Sergei Petrunia
734029fa79 Fix a trivial (and harmless) merge error 2018-12-26 00:00:49 +03:00
Daniel Bartholomew
835f49d9ce bump the VERSION 2018-12-24 09:22:55 -05:00
Rakshit Kumar
9ad1663f78 Grammatical errors of README-wsrep fixed. (#915)
Docs grammar fixed
2018-12-22 13:34:50 +04:00
Vladislav Vaintroub
975f4a1295 Add forgotten .opt file. 2018-12-21 19:45:30 +01:00
Elena Stepanova
b82df71174 Updated list of unstable tests for 10.2.20 2018-12-21 18:59:11 +02:00
Elena Stepanova
242fedf595 Follow-up for MDEV-14576 - updated test result 2018-12-21 18:58:23 +02:00
Vladislav Vaintroub
773479f5b3 Add test for partial backup for partitioned table. 2018-12-21 16:04:16 +01:00
Sergei Golubchik
2cf30866d7 MDEV-14576 Include full name of object in message about incorrect value for column
update engines/ suites

followup for c4ab352b67
2018-12-21 13:31:18 +01:00
Sergei Golubchik
37b1b065f4 TokuDB: generate tokudb.cnf unconditionally
it's listed in MYSQL_ADD_PLUGIN() declaration,
so it must always exist, jemalloc or not.
2018-12-21 11:38:42 +01:00
Marko Mäkelä
c5bb6024a7 MDEV-18039 Assertion failed in btr_node_ptr_max_size for VARCHAR(0)
btr_node_ptr_max_size(): Do not reserve extra space for indexed VARCHAR(0)
columns.
2018-12-21 12:12:57 +02:00
Eugene Kosov
0dafcf529c cleanup os_event 2018-12-21 10:16:03 +02:00
Eugene Kosov
ed166f53fa MDEV-18043 data race in os_event
os_event::is_set(): protect os_event::m_set with os_event::mutex
2018-12-21 10:16:03 +02:00
Marko Mäkelä
b7a9563b21 Merge 10.1 into 10.2 2018-12-21 09:43:35 +02:00
Marko Mäkelä
40a094e4a8 Relax a too tight suppression
When using a wrong key, all encrypted pages will look corrupted,
and occasionally the test may access other pages than
the clustered index root page.
2018-12-21 09:40:36 +02:00
Alexander Barkov
e631ea4a7c MDEV-17738 Server crashes in Item::delete_self on closing connection after unsuccessful PS
Also fixes:
MDEV-17741 Assertion `thd->Item_change_list::is_empty()' failed in mysql_parse after unsuccessful PS

The problem was introduced by:
  commit f033fbd9f2
  Changed the test case for MDEV-15571

It was later fixed, but in 10.3 only:

  commit ce2cf855bf
  MDEV-16043 Assertion thd->Item_change_list::is_empty() failed in mysql_parse
  upon SELECT from a view reading from a versioned table

This patch is a backport of ce2cf855bf to 10.2
2018-12-21 09:41:23 +04:00
Vladislav Vaintroub
9f4a4cb401 Cleanup recent mariabackup validation patches.
- Refactor code to isolate page validation in page_is_corrupted() function.

- Introduce --extended-validation parameter(default OFF) for mariabackup
--backup to enable decryption of encrypted uncompressed pages during
backup.

- mariabackup would still always check checksum on encrypted data,
it is needed to detect  partially written pages.
2018-12-20 14:31:18 +01:00
Marko Mäkelä
ed36fc353f MDEV-18025: Detect corrupted innodb_page_compression=zlib pages
In MDEV-13103, I made a mistake in the error handling of
page_compressed=1 decryption when the default
innodb_compression_algorithm=zlib is used.
Due to this mistake, with certain versions of zlib,
MariaDB would fail to detect a corrupted page.

The problem was uncovered by the following tests:
mariabackup.unencrypted_page_compressed
mariabackup.encrypted_page_compressed
2018-12-20 13:33:09 +02:00
Sergei Golubchik
dc2856ad60 Merge branch 'connect/10.2' into 10.2 2018-12-20 09:40:49 +01:00
Sergei Golubchik
8634f7e528 Merge branch '5.5' into 10.0 2018-12-20 09:15:01 +01:00
Sergei Golubchik
8ede9b3ae5 MDEV-17975 Assertion ! is_set()' or !is_set() || (m_status == DA_OK_BULK && is_bulk_op())' failed upon REVOKE under LOCK TABLE
open_grant_tables() returns -1/0/1, where -1 is an error, while 1 is not.
Don't store it's return value in bool
2018-12-20 08:39:54 +01:00
Sergei Golubchik
cb4c2a98b5 always link C/C with external (to C/C) zlib
it'll be either system zlib.so or bundled with the server (but still
external to C/C) zlib.a
2018-12-20 08:06:55 +01:00
Sergei Golubchik
24763451fe update C/C to v3.0.8 2018-12-20 08:06:55 +01:00