summaryrefslogtreecommitdiff
path: root/storage/innobase/include
Commit message (Collapse)AuthorAgeFilesLines
* Fix release build compile failure.Jan Lindström2015-09-141-9/+6
|
* MDEV-8772: Assertion failure in file ha_innodb.cc line 20027 when importing ↵Jan Lindström2015-09-141-1/+4
| | | | | | | page compressed and encrypted tablespace using incorrect keys Add error handling to decryp function when decrypt fails during import.
* MDEV-8769: Server crash at file btr0btr.ic line 122 when defragmenting ↵Jan Lindström2015-09-143-11/+17
| | | | | | | encrypted table using incorrect keys Add error handling when getting block from encrypted table and decryption fails.
* MDEV-8768: Server crash at file btr0btr.ic line 122 when checking encrypted ↵Jan Lindström2015-09-141-3/+3
| | | | | | | table using incorrect keys Add error handling to btr_validate_index when index root block can't be read because block decryption fails.
* MDEV-8764: Wrong error when encrypted table can't be decrypted.Jan Lindström2015-09-141-2/+2
| | | | | Add a new error message when table is encrypted but decryption fails. Use this new error message on InnoDB/XtraDB.
* MDEV-8774: Test innodb.innodb_bug53290 failures on buildbotJan Lindström2015-09-081-1/+1
| | | | | Problem was -O2 and __attribute__((nonnull)) when it should have been __attribute__((nonnull(1,2,3,4,5)))
* MDEV-8774: Test innodb.innodb_bug53290 failures on buildbotJan Lindström2015-09-081-1/+1
| | | | Fixed unsafe reference to null pointer.
* MDEV-8708: InnoDB temp file encryptionJan Lindström2015-09-083-4/+39
| | | | | | | | | Added encryption support for online alter table where InnoDB temporary files are used. Added similar support also for tables containing full text-indexes. Made sure that table remains encrypted during discard and import tablespace.
* MDEV-8588: Assertion failure in file ha_innodb.cc line 21140 if at least ↵Jan Lindström2015-09-0412-27/+87
| | | | | | | | | | | | | | | | one encrypted table exists and encryption service is not available Analysis: Problem was that in fil_read_first_page we do find that table has encryption information and that encryption service or used key_id is not available. But, then we just printed fatal error message that causes above assertion. Fix: When we open single table tablespace if it has encryption information (crypt_data) store this crypt data to the table structure. When we open a table and we find out that tablespace is not available, check has table a encryption information and from there is encryption service or used key_id is not available. If it is, add additional warning for SQL-layer.
* MDEV-8588: Assertion failure in file ha_innodb.cc line 21140 if at least one ↵Jan Lindström2015-09-042-2/+8
| | | | | | | | | | | | | | | | encrypted table exists and encryption service is not available Analysis: Problem was that in fil_read_first_page we do find that table has encryption information and that encryption service or used key_id is not available. But, then we just printed fatal error message that causes above assertion. Fix: When we open single table tablespace if it has encryption information (crypt_data) store this crypt data to the table structure. When we open a table and we find out that tablespace is not available, check has table a encryption information and from there is encryption service or used key_id is not available. If it is, add additional warning for SQL-layer.
* Merge branch '10.0' into 10.1Sergei Golubchik2015-09-037-33/+64
|\ | | | | | | | | referenced_by_foreign_key2(), needed for InnoDB to compile, was taken from 10.0-galera
| * Merge branch 'bb-10.0-jan' into 10.0Sergei Golubchik2015-08-053-2/+48
| |\ | | | | | | | | | 5.5 with our InnoDB changes
| | * Merge commit '96badb16afcf' into 10.0Jan Lindström2015-08-033-2/+48
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: client/mysql_upgrade.c mysql-test/r/func_misc.result mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result mysql-test/suite/innodb/r/innodb-fk.result mysql-test/t/subselect_sj_mat.test sql/item.cc sql/item_func.cc sql/log.cc sql/log_event.cc sql/rpl_utility.cc sql/slave.cc sql/sql_class.cc sql/sql_class.h sql/sql_select.cc storage/innobase/dict/dict0crea.c storage/innobase/dict/dict0dict.c storage/innobase/handler/ha_innodb.cc storage/xtradb/dict/dict0crea.c storage/xtradb/dict/dict0dict.c storage/xtradb/handler/ha_innodb.cc vio/viosslfactories.c
| | | * MDEV-6697: Improve foreign keys warnings/errorsJan Lindström2015-07-311-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is several different ways to incorrectly define foreign key constraint. In many cases earlier MariaDB versions the error messages produced by these cases are not very clear and helpful. This patch improves the warning messages produced by foreign key parsing.
| | | * MDEV-8524: Improve error messaging when there is duplicate key or foreign ↵Jan Lindström2015-07-311-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | key names Added better error message that will be printed when foreign key constraint name in create table is not unique in database.
| * | | Merge branch 'merge-innodb-5.6' into 10.0Sergei Golubchik2015-08-035-30/+15
| |\ \ \ | | |/ / | |/| | | | | | 5.6.26
| | * | 5.6.26Sergei Golubchik2015-08-034-29/+14
| | | |
* | | | Add lru evict count for the idle loop (innobase)Eric Herman2015-08-261-1/+2
| | | | | | | | | | | | | | | | | | | | port of work by dveeden: https://github.com/dveeden/mysql-server/commit/555ca34958a8ed191f34eeb2333e0d7c30e12fce
* | | | Add eviction count for table cache lru cleanup (innobase)Eric Herman2015-08-261-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a port of dveeden's work: https://github.com/dveeden/mysql-server/commit/e9d00e859e3854bf8f71873caa69c060e670350b (Mostly changes in linenumbers, a bit of whitespace fix-up.)
* | | | MDEV-8589: Non-default ENCRYPTION_KEY_ID is ignored upon reading a tableJan Lindström2015-08-144-13/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Analysis: Problem was that when a new tablespace is created a default encryption info is also created and stored to the tablespace. Later a new encryption information was created with correct key_id but that does not affect on IV. Fix: Push encryption mode and key_id to lower levels and create correct encryption info when a new tablespace is created. This fix does not contain test case because, currently incorrect encryption key causes page corruption and a lot of error messages to error log causing mtr to fail.
* | | | MDEV-8591: Database page corruption on disk or a failed space, Assertion ↵Jan Lindström2015-08-141-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | failure in file buf0buf.cc line 2856 on querying a table using wrong default encryption key Improved error messaging to show based on original page before encryption is page maybe encrypted or just corrupted.
* | | | MDEV-8410: Changing file-key-management to example-key-management causes ↵Jan Lindström2015-08-081-9/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | crash and no real error MDEV-8409: Changing file-key-management-encryption-algorithm causes crash and no real info why Analysis: Both bugs has two different error cases. Firstly, at startup when server reads latest checkpoint but requested key_version, key management plugin or encryption algorithm or method is not found leading corrupted log entry. Secondly, similarly when reading system tablespace if requested key_version, key management plugin or encryption algorithm or method is not found leading buffer pool page corruption. Fix: Firsly, when reading checkpoint at startup check if the log record may be encrypted and if we find that it could be encrypted, print error message and do not start server. Secondly, if page is buffer pool seems corrupted but we find out that there is crypt_info, print additional error message before asserting.
* | | | MDEV-8393: InnoDB: Assertion failure in file fil0crypt.cc line 2109Jan Lindström2015-06-291-0/+1
| | | | | | | | | | | | | | | | | | | | Crypt data was used when it was already freed. Delete crypt data more thorougly when freed.
* | | | Merge tag 'mariadb-10.0.20' into 10.1Sergei Golubchik2015-06-276-8/+45
|\ \ \ \ | |/ / /
| * | | Fix innochecksum build failure.Jan Lindström2015-06-161-0/+15
| | | |
| * | | Merge branch 'merge-innodb-5.6' into 10.0Sergei Golubchik2015-06-164-7/+29
| |\ \ \ | | |/ /
| | * | 5.6.25Sergei Golubchik2015-06-163-6/+28
| | | |
| * | | Merge pull request #74 from akopytov/MDEV-7658-10.0Jan Lindström2015-05-271-1/+1
| |\ \ \ | | | | | | | | | | Mdev 7658 10.0
| | * \ \ Merge branch 'MDEV-7658-5.5' into MDEV-7658-10.0Alexey Kopytov2015-05-261-1/+1
| | |\ \ \ | | | | |/ | | | |/|
| | | * | Fixes MDEV-7658: MDEV-7026 fix reintroduces MDEV-6615 on AArch64Alexey Kopytov2015-05-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is an addendum to the fix for MDEV-7026. The ARM memory model is similar to that of PowerPC and thus needs the same semantics with respect to memory barriers. That is, os_atomic_test_and_set_*_release() must be a store with a release barrier followed by a full barrier. Unlike x86 using __sync_lock_test_and_set() which is implemented as “exclusive load with acquire barriers + exclusive store” is insufficient in contexts where os_atomic_test_and_set_*_release() macros are used.
| | | * | Fixed a couple of compiler warnings.Sergey Vojtovich2014-12-191-1/+1
| | | | |
| | | * | mysql-5.5.41 mergeSergei Golubchik2014-12-193-2/+22
| | | |\ \
| | | | * | Bug#19904003 INNODB_LIMIT_OPTIMISTIC_INSERT_DEBUG=1 CAUSES INFINITE PAGE SPLITMarko Makela2014-10-301-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The debug configuration parameter innodb_optimistic_insert_debug which was introduced for testing corner cases in B-tree handling had a bug in it. The value 1 would trigger an infinite sequence of page splits. Fix: When the value 1 is specified, disable this debug feature. Approved by Yasufumi Kinoshita
| | | | * | Bug #19306524 FAILING ASSERTION WITH TEMP TABLE FOR A PROCEDURE CALLEDAnnamalai Gurusami2014-09-182-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | FROM A FUNCTION Scenario: In a stored procedure, CREATE TABLE statement is not allowed. But an exception is provided for CREATE TEMPORARY TABLE. We can create a temporary table in a stored procedure. Let there be two stored functions f1 and f2 and two stored procedures p1 and p2. Their properties are as follows: . stored function f1() calls stored procedure p1(). . stored function f2() calls stored procedure p2(). . stored procedure p1() creates temporary table t1. . stored procedure p2() does DML on t1. Consider the following situation: 1. Autocommit mode is on. 2. select f1() 3. select f2() Step 2: In this step, t1 would be created via p1(). A table level transaction lock would have been taken. The ::external_lock() would not have been called on this table. At the end of step 2, because of autocommit mode on, this table level lock will be released. Step 3: When we execute DML on table t1 via p2() we have two problems: Problem 1: The function ha_innobase::external_lock() would have been called but since it is a select query no table level locks would have been taken. Hence the following assert will fail: ut_ad(lock_table_has(thr_get_trx(thr), index->table, LOCK_IX)); Solution: The solution would be to identify this situation and take a table level lock and use the proper lock type prebuilt->select_lock_type = LOCK_X for DML operations. Problem 2: Another problem is that in step 3, ha_innobase::open() is never called on the table t1. Solution: The solution would be to identify this situation and call re-init the handler of table t1. rb#6429 approved by Krunal.
| | | * | | MDEV-7148 - Recurring: InnoDB: Failing assertion: !lock->recursiveSergey Vojtovich2014-12-011-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On PPC64 high-loaded server may crash due to assertion failure in InnoDB rwlocks code. This happened because load order between "recursive" and "writer_thread" wasn't properly enforced.
* | | | | | cleanup: remove unused function argumentSergei Golubchik2015-06-271-2/+0
| | | | | |
* | | | | | MDEV-8324 - MariaDB fails to build with performance schema disabledSergey Vojtovich2015-06-192-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Various fixes to let MariaDB compile with performance schema disabled.
* | | | | | MDEV-8156: Assertion failure in file log0crypt.cc line 220 on server restartJan Lindström2015-06-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of asserting print informative error message to error log and return failure from innodb_init causing the server to shutdown.
* | | | | | MDEV-8303; Dumping buffer pool noisy in the logs.Jan Lindström2015-06-181-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added new dynamic configuration variable innodb_buf_dump_status_frequency to configure how often buffer pool dump status is printed in the logs. A number between [0, 100] that tells how oftern buffer pool dump status in percentages should be printed. E.g. 10 means that buffer pool dump status is printed when every 10% of number of buffer pool pages are dumped. Default is 0 (only start and end status is printed).
* | | | | | MDEV-8272: Encryption performance: Reduce the number of unused memcpy'sJan Lindström2015-06-092-29/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Removed memcpy's on cases when page is not encrypted and make sure we use the correct buffer for reading/writing.
* | | | | | MDEV-8250: InnoDB: Page compressed tables are not compressed and ↵Jan Lindström2015-06-046-40/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | compressed+encrypted tables cause crash Analysis: Problem is that both encrypted tables and compressed tables use FIL header offset FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION to store required metadata. Furhermore, for only compressed tables currently code skips compression. Fixes: - Only encrypted pages store key_version to FIL header offset FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION, no need to fix - Only compressed pages store compression algorithm to FIL header offset FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION, no need to fix as they have different page type FIL_PAGE_PAGE_COMPRESSED - Compressed and encrypted pages now use a new page type FIL_PAGE_PAGE_COMPRESSED_ENCRYPTED and key_version is stored on FIL header offset FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION and compression method is stored after FIL header similar way as compressed size, so that first FIL_PAGE_COMPRESSED_SIZE is stored followed by FIL_PAGE_COMPRESSION_METHOD - Fix buf_page_encrypt_before_write function to really compress pages if compression is enabled - Fix buf_page_decrypt_after_read function to really decompress pages if compression is used - Small style fixes
* | | | | | just like tempfiles: use key id 2 for temp Aria tablesSergei Golubchik2015-06-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | introduce ENCRYPTION_KEY_SYSTEM_DATA and ENCRYPTION_KEY_TEMPORARY_DATA constants; use them everywhere.
* | | | | | remove few #ifdefs in innodb/xtradbSergei Golubchik2015-06-021-2/+2
| | | | | |
* | | | | | Merge tag 'mariadb-10.0.19' into 10.1Sergei Golubchik2015-06-012-5/+120
|\ \ \ \ \ \ | |/ / / / /
| * | | | | Merge branch 'Buggynours:10.0' into 10.0Sergei Golubchik2015-05-051-0/+1
| |\ \ \ \ \
| | * | | | | Add #include <ostream> in dict0mem.h and change iterator to const_iterator ↵Buggynours2015-03-031-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in dic0mem.cc This fix compiling error when compiled with Visual Studio 9 2008
| * | | | | | InnoDB-5.6.24Sergei Golubchik2015-05-052-5/+119
| |\ \ \ \ \ \ | | |_|/ / / / | |/| | | | / | | | |_|_|/ | | |/| | |
| | * | | | 5.6.24Sergei Golubchik2015-05-041-4/+118
| | | | | |
| | * | | | move to storage/innobaseSergei Golubchik2015-05-04227-0/+72797
| | / / /
* | | | | MDEV-8238: Tables with encryption=yes using file_key_management plugin are ↵Jan Lindström2015-05-271-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | not encrypted Analysis: Problem was that encryption was skipped. Fixed by making sure that tables with ENCRYPTED=YES are encrypted.