- 20 Dec, 2018 2 commits
-
-
Marko Mäkelä authored
Ensure that the 'auxiliary transactions' that are there for flushing the incomplete undo log of the to-be-recovered DDL transactions are actually making modifications.
-
Daniel Bartholomew authored
-
- 18 Dec, 2018 8 commits
-
-
Oleksandr Byelkin authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Starting with commit 6b698715 the encrypted page checksum is only computed with crc32. Encrypted data pages that were written earlier can contain other checksums, but new ones will only contain crc32. Because of this, it does not make sense to implement strict checks of innodb_checksum_algorithm for other than strict_crc32. fil_space_verify_crypt_checksum(): Treat strict_innodb as innodb and strict_none as none. That is, allow a match from any of the algorithms none, innodb, crc32. (This is how it worked before the second MDEV-12112 fix.) Thanks to Thirunarayanan Balathandayuthapani for pointing this out.
-
Jan Lindström authored
DEV-17786: Add mariabackup test case for galera_sst_xtrabackup-v2_data_dir
-
Marko Mäkelä authored
-
- 17 Dec, 2018 10 commits
-
-
Marko Mäkelä authored
fil_space_verify_crypt_checksum(): Compute the bug-compatible variant of the CRC-32C checksum if the correct one does not match.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
fil_space_verify_crypt_checksum(): Add a dummy return statement in case memory is corrupted and innodb_checksum_algorithm has an invalid value.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
The initial fix only covered a part of Mariabackup. This fix hardens InnoDB and XtraDB in a similar way, in order to reduce the probability of mistaking a corrupted encrypted page for a valid unencrypted one. This is based on work by Thirunarayanan Balathandayuthapani. fil_space_verify_crypt_checksum(): Assert that key_version!=0. Let the callers guarantee that. Now that we have this assertion, we also know that buf_page_is_zeroes() cannot hold. Also, remove all diagnostic output and related parameters, and let the relevant callers emit such messages. Last but not least, validate the post-encryption checksum according to the innodb_checksum_algorithm (only accepting one checksum for the strict variants), and no longer try to validate the page as if it was unencrypted. buf_page_is_zeroes(): Move to the compilation unit of the only callers, and declare static. xb_fil_cur_read(), buf_page_check_corrupt(): Add a condition before calling fil_space_verify_crypt_checksum(). This is a non-functional change. buf_dblwr_process(): Validate the page only as encrypted or unencrypted, but not both.
-
Jan Lindström authored
MDEV-17848: Galera test failure on galera_sst_xtrabackup-v2[_data_dir]
-
Marko Mäkelä authored
A static analysis tool suggested that in the function row_merge_read_clustered_index(), ut_free(nonnull) could be invoked twice for nonnull!=NULL. While a manual review of the code disproved this, it should not hurt to clean up the code so that the static analysis tool will not complain. index_tuple_info_t::insert(), row_mtuple_cmp(): Remove the parameter mtr_committed, which duplicated !mtr->is_active(). row_merge_read_clustered_index(): Initialize row_heap = NULL. Remove a duplicated call mem_heap_empty(row_heap) that was inadvertently added in commit cb1e76e4. Replace a "goto func_exit" with "break", to get consistent error handling for both failures to create or write a temporary file. end_of_index: Assign row_heap=NULL and nonnull=NULL to prevent double freeing. func_exit: Check for row_heap!=NULL before invoking mem_heap_free(). Closes #959
-
Jan Lindström authored
Remove provider defaults check from 'galera_defaults' MTR test
-
Jan Lindström authored
Problem is that if you use bundled yassl AES_CTR is not supported. There is a way to detect that but as we really want to keep this test enabled did not add skip for missing support. Changed method to AES_CBC as there is no need to use AES_CTR.
-
Jan Lindström authored
Add check that file key management plugin is found.
-
- 16 Dec, 2018 3 commits
-
-
Varun Gupta authored
While calculating distinct with the function remove_dup_with_compare, we don't have rnd_end calls when we have completed the scan over the temporary table. Added ha_rnd_end calls when we are done with the scan of the table.
-
Alexey Botchkov authored
galera_prepared_statement test fixed.
-
Alexey Botchkov authored
connect.xml2 test result fixed.
-
- 15 Dec, 2018 2 commits
-
-
Alexey Botchkov authored
The error message modified. Then the TABLE_SHARE::error_table_name() implementation taken from 10.3, to be used as a name of the table in this message.
-
Alexander Barkov authored
-
- 14 Dec, 2018 15 commits
-
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
ported privilege checking from xtrabackup. Now, mariabackup would terminate early if either RELOAD or PROCESS privilege is not held, not at the very end of backup The behavior can be disabled with nre setting --check-privileges=0. Also , --no-lock does not need all of these privileges, since it skips FTWRL and SHOW ENGINE STATUS INNODB.
-
Varun Gupta authored
main.partition_explicit_prune
-
Alexey Yurchenko authored
From time to time Galera adds new parameters or changes defaults to existing ones. Every time this happens galera_defaults test needs a fix (and a commit) because it insists on checking these defaults. This is making life hard because any Galera update may require a fix to MariaDB code even though it is totally unrelated and defeats the whole idea of a provider living its own life. This commit removes checking for provider defaults to avoid false positive failures on MariaDB side.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Internal transactions may not have trx->mysql_thd. But at the same time, trx->duplicates should only hold if REPLACE or INSERT...ON DUPLICATE KEY UPDATE was executed from SQL. The flag feels misplaced. A more appropriate place for it would be row_prebuilt_t or similar.
-
Marko Mäkelä authored
After validating the post-encryption checksum on an encrypted page, Mariabackup should decrypt the page and validate the pre-encryption checksum as well. This should reduce the probability of accepting invalid pages as valid ones. This is a backport and refactoring of a patch that was originally written by Thirunarayanan Balathandayuthapani for the 10.2 branch.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Innochecksum was being built as if WITH_INNODB_BUG_ENDIAN_CRC32:BOOL=OFF had been specified. Also, clean up tests: innodb.innochecksum: Useless; superceded by innodb_zip.innochecksum. innodb.innodb_zip_innochecksum: Remove; duplicated innodb_zip.innochecksum. innodb.innodb_zip_innochecksum2: Remove; duplicated innodb_zip.innochecksum_2. innodb.innodb_zip_innochecksum3: Remove; duplicated innodb_zip.innochecksum_3. No test case was added. I tested manually by adding debug instrumentation to both innochecksum and buf_page_is_checksum_valid_crc32() to make innochecksum write the buggy crc32, and to get warnings for falling back to the buggy checksum. Automating this would require that tests be adjusted depending on the build options.
-
Oleksandr Byelkin authored
Allow array binding for DELETE, test it.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
This is basically re-applying 8fe34dd4. Assertions about ROW_FORMAT not changing during instant ALTER TABLE can fail if the MariaDB and InnoDB data dictionaries get out of sync, for example if innodb_default_row_format is used instead of specifying ROW_FORMAT in the CREATE TABLE statement. In this case, ALTER_OPTIONS would not necessarily be set. We would create the ctx->instant_table with a ROW_FORMAT based on altered_table. When applying it to the ctx->old_table, we will preserve the original ROW_FORMAT.
-
Marko Mäkelä authored
The test innodb.instant_alter_crash is exercising crash recovery for instant ALTER operations. Unfortunately, for some reason the redo log was not being flushed as expected (to be analyzed in MDEV-18009) and this error was not detected earlier. btr_cur_trim_alter_metadata(): New function for the special case of rolling back an ALTER TABLE operation such that the table will remain in the MDEV-15562 format (not rolling back to the MDEV-11369 format). In this case, we must restore the old number of columns from the old metadata BLOB page.
-