summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Some debug codebb-10.2-MDEV-21681-page-LSN-doesnt-match-cbVlad Lesin2020-04-084-6/+101
|
* MDEV-15270 Mariabackup should not try to use doublewrite buffermariadb-10.2.13Marko Mäkelä2018-02-128-23/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When Mariabackup gets a bad read of the first page of the system tablespace file, it would inappropriately try to apply the doublewrite buffer and write changes back to the data file (to the source file)! This is very wrong and must be prevented. The correct action would be to retry reading the system tablespace as well as any other files whose first page was read incorrectly. Fixing this was not attempted. xb_load_tablespaces(): Shorten a bogus message to be more relevant. The message can be displayed by --backup or --prepare. xtrabackup_backup_func(), os_file_write_func(): Add a missing space to a message. Datafile::restore_from_doublewrite(): Do not even attempt the operation in Mariabackup. recv_init_crash_recovery_spaces(): Do not attempt to restore the doublewrite buffer in Mariabackup (--prepare or --export), because all pages should have been copied correctly in --backup already, and because --backup should ignore the doublewrite buffer. SysTablespace::read_lsn_and_check_flags(): Do not attempt to initialize the doublewrite buffer in Mariabackup. innodb_make_page_dirty(): Correct the bounds check. Datafile::read_first_page(): Correct the name of the parameter.
* MDEV-13869 MariaDB slow startMarko Mäkelä2018-02-125-10/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When code from MySQL 5.7.9 was merged to MariaDB 10.2.2 in commit 2e814d4702d71a04388386a9f591d14a35980bfe an assignment validate=true was inadvertently added to the function dict_check_sys_tables(). This causes InnoDB to open every single .ibd file on startup, even when no crash recovery was needed. Simply removing the assignment would make some tests fail. We do the best to retain almost the same level of inconsistency detection. In the test innodb.table_flags, access to one of the tables will not be blocked despite inconsistent flags. dict_check_sys_tables(): Remove the problematic assignment, and skip validation in normal startup. dict_load_table_one(): If the .ibd file cannot be opened, mark the table as corrupted and unreadable. fil_node_open_file(): Validate FSP_SPACE_FLAGS with the expected flags. If reading the tablespace fails, invalidate node->handle instead of letting it remain stale. This bug was caught by a fil_validate() assertion failure. fsp_flags_try_adjust(): If the tablespace file is invalid, do nothing.
* Updated list of unstable tests for 10.2.13Elena Stepanova2018-02-121-87/+149
|
* Merge branch '10.1' into 10.2Sergei Golubchik2018-02-1120-95/+528
|\
| * MDEV-14611 ALTER TABLE EXCHANGE PARTITION does not work properly when used ↵Alexey Botchkov2018-02-104-2/+336
| | | | | | | | | | | | | | | | with DATA DIRECTORY. When table is renamed, the InnoDB's dictionary cache didn't change the ib_table->data_dir_path accordingly. Now it's set to NULL.
| * After-merge fixes for "sys_vars.sysvars_innodb '32bit,xtradb'" test results.Alexander Barkov2018-02-101-1/+1
| |
| * Merge remote-tracking branch 'origin/10.0' into 10.1Alexander Barkov2018-02-105-2/+76
| |\
| | * MDEV-15262 Wrong results for SELECT..WHERE ↵Alexander Barkov2018-02-093-0/+74
| | | | | | | | | | | | non_indexed_datetime_column=indexed_time_column
| | * Update wrong xtradb versionVicențiu Ciorbaru2018-02-081-1/+1
| | | | | | | | | | | | The update was lost during merge.
| * | MDEV-14508: encryption.innodb-compressed-blob failed in buildbot, assertion ↵Jan Lindström2018-02-092-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in btr0cur.cc line 1398 Before that line there is call to buf_page_get_gen that could return block = NULL when decrypting a page fails. However, we should set error to be != DB_SUCCESS also. In error log there was error about decompression but in that code there is one case where error is not set correctly.
| * | MDEV-14868 MariaDB server crashes after using ROLLBACK TO when ↵Sergei Golubchik2018-02-082-12/+76
| | | | | | | | | | | | | | | | | | encrypt_tmp_files=ON add a test that restores the data from a binlog
| * | MDEV-14868 MariaDB server crashes after using ROLLBACK TO when ↵Sergei Golubchik2018-02-083-3/+9
| | | | | | | | | | | | | | | | | | | | | encrypt_tmp_files=ON Fix reinit_io_cache(WRITE_CACHE) with non-zero seek_offset. Run encryption.tempfiles with and without binlog checksums.
| * | fix encryption.tempfiles to check that encrypt_tmp_files is ONSergei Golubchik2018-02-083-0/+6
| | |
| * | MDEV-14427: encryption.innodb-bad-key-change failed in buildbotJan Lindström2018-02-082-74/+16
| | | | | | | | | | | | | | | Timing problem as sometimes table is marked as encrypted but sometimes we are not sure and table is just marked missing.
* | | Removed compiler warningsMonty2018-02-101-9/+9
| | |
* | | TokuDB didn't compile with valgrindMonty2018-02-101-0/+5
| | | | | | | | | | | | | | | | | | | | | TokuDB uses USE_VALGRIND while MariaDB uses HAVE_valgrind Fixed by defining USE_VALGRIND in TokuDB if HAVE_valgrind is used
* | | MDEV-13508 ALTER TABLE that renames columns and CHECK constraintsMonty2018-02-109-10/+133
| | | | | | | | | | | | | | | | | | Fixed by adding Item::rename_fields_processor Signed-off-by: Monty <monty@mariadb.org>
* | | Merge branch 'bb-10.2-mariarocks' into 10.2Sergei Petrunia2018-02-095-2/+695
|\ \ \
| * \ \ Merge pull request #595 from MariaDB/add_myrocks_gotbackupOtto Kekäläinen2018-02-084-2/+9
| |\ \ \ | | | | | | | | | | Add myrocks hotbackup
| | * | | debian/control Include myrocks_hotbackup into mariadb-plugin-rocksdbadd_myrocks_gotbackupVicentiu Ciorbaru2018-02-073-1/+3
| | | | |
| | * | | Add myrocks_hotbackup part of rocksdb plugin in cmakeVicentiu Ciorbaru2018-02-071-0/+2
| | | | |
| | * | | Fix rocksdb compiler version identification with GCCVicentiu Ciorbaru2018-02-071-1/+4
| |/ / / | | | | | | | | | | | | | | | | GCC 7 with only dumpversion flag returns the major version only. dumpfullversion flag makes it work with both new and old gcc.
| * | | Adjust myrocks_hotbackup to work with MariaDB.Sergei Petrunia2018-01-251-1/+1
| | | |
| * | | Import myrocks_hotbackup from the upstreamSergei Petrunia2018-01-251-0/+686
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - They have it in scripts/myrocks_hotbackup, so we don't get it during merges. this will be fixed - OTOH the testsuite is already being merged into storage/rocksdb/mysql-test/rocksdb (but isn't run due to using many upstream-only features)
* | | | Add back (and clean up) the test innodb_zip.prefix_index_liftedlimitMarko Mäkelä2018-02-092-0/+2753
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This MySQL 5.5 test innodb_zip.innodb_prefix_index_lifted was renamed in MySQL 5.7. In commit 2e814d4702d71a04388386a9f591d14a35980bfe the test was inadvertently removed, instead of being renamed. The absence of this test caused a regression in MariaDB 10.2: MDEV-15257 Invalid CREATE INDEX fails to report error correctly
* | | | MDEV-14238 Bogus assertion on row_get_rec_trx_id()Marko Mäkelä2018-02-091-3/+4
| | | | | | | | | | | | | | | | | | | | page_zip_write_rec(): Do not attempt to access a non-existing DB_TRX_ID column when writing a record to a non-leaf page.
* | | | Corrected the patch for mdev-15119 that caused a failure forIgor Babaev2018-02-084-13/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | cte_nonrecursive.test with --embedded. This also fixed some problems for embedded CTEs. Adjusted test results accordingly.
* | | | add mdev-504 to unstable tests, to fix appveyorVladislav Vaintroub2018-02-081-0/+1
| | | |
* | | | rocksdb : Disable the constantly failing bloomfilter test, until MDEV-14562 ↵Vladislav Vaintroub2018-02-081-0/+1
| | | | | | | | | | | | | | | | is fixed
* | | | MDEV-14407 Assertion failure during rollbackMarko Mäkelä2018-02-086-27/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rollback attempted to dereference DB_ROLL_PTR=0, which cannot possibly be a valid undo log pointer. A safe canonical value would be roll_ptr_t(1) << ROLL_PTR_INSERT_FLAG_POS which is what was chosen in MDEV-12288. This bug was reproduced in 10.3 only. Potentially, the problem could have been introduced by MDEV-11415, which suppresses undo logging for ALGORITHM=COPY operations. In those operations, we should actually have written the safe value of DB_ROLL_PTR instead of writing 0. However, the test in commit 5421e3aee7b44c3c400c5dc82b8af00436790ab0 demonstrates that access to the rebuilt table by earlier-started transactions should actually have been refused with ER_TABLE_DEF_CHANGED. btr_cur_ins_lock_and_undo(): When undo logging is disabled, use the safe value of DB_ROLL_PTR. btr_cur_optimistic_insert(): Validate the DB_TRX_ID,DB_ROLL_PTR before inserting into a clustered index leaf page. ins_node_t::sys_buf[]: Replaces row_id_buf and trx_id_buf and some heap usage. row_ins_alloc_sys_fields(): Initialize ins_node_t::sys_buf[]. trx_undo_page_report_modify(): Assert that the DB_ROLL_PTR is not 0. trx_undo_get_undo_rec_low(): Assert that the roll_ptr is valid before trying to dereference it. dict_index_t::is_primary(): Check if the index is the primary key.
* | | | Merge 10.1 into 10.2Marko Mäkelä2018-02-0813-20/+119
|\ \ \ \ | | |/ / | |/| |
| * | | Merge 10.0 into 10.1Marko Mäkelä2018-02-0813-13/+114
| |\ \ \ | | | |/ | | |/|
| | * | Make the test innodb.recovery_shutdown more robustMarko Mäkelä2018-02-082-2/+6
| | | | | | | | | | | | | | | | | | | | Before killing the server, we have to FLUSH TABLES in order to prevent the corruption of any MyISAM system tables.
| | * | MDEV-15249 Crash in MVCC read after IMPORT TABLESPACEMarko Mäkelä2018-02-088-10/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PageConverter::adjust_cluster_record(): Instead of writing the invalid value DB_ROLL_PTR=0, write a value that indicates a fresh insert, that is, prevents the DB_ROLL_PTR from being dereferenced in any circumstances. It can be argued that IMPORT TABLESPACE should actually update the dict_index_t::trx_id to prevent older transactions from accessing the table, similar to what I did on table rebuild in MySQL 5.6.6 in https://github.com/mysql/mysql-server/commit/03f81a55f221095d397c375afe8a10c8038da339
| | * | MDEV-15230: column_json breaks cyrillic in 10.1.31Oleksandr Byelkin2018-02-073-1/+20
| | | | | | | | | | | | | | | | Use unsigned comparison.
| * | | bump the VERSIONDaniel Bartholomew2018-02-061-1/+1
| | | |
* | | | Disabled galera_ist_progress at it always fails in 10.2Monty2018-02-072-2/+6
| | | |
* | | | Merge remote-tracking branch 'connect/10.2' into 10.2Vicențiu Ciorbaru2018-02-070-0/+0
|\ \ \ \
| * | | | - Fix MDEV-9844, MDEV-10179, MDEV-14214Olivier Bertrand2018-01-033-30/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is done by removing the tbl table type THREAD option that causes a multiple of sporadic bugs. This may be temporary depending on whether a real fix is found. modified: storage/connect/mysql-test/connect/disabled.def modified: storage/connect/tabtbl.cpp modified: storage/connect/tabtbl.h
* | | | | Update Connector/CVicențiu Ciorbaru2018-02-071-0/+0
| | | | |
* | | | | MDEV-14567: CRYPTO_set_mem_functions fails in FIPS modeDaniel Black2018-02-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the CRYPTO_set_mem_functions fails just return success from check_openssl_compatibility. The only case where CRYPTO_set_mem_functions fails is the allow_customize==0 (aka FIPS mode). The check_openssl_compatibility isn't able to complete unless this function returns success. ref: https://github.com/openssl/openssl/blob/OpenSSL_1_1_0g/crypto/mem.c#L34
* | | | | MDEV-15199 Referential integrity broken in ON DELETE CASCADEMarko Mäkelä2018-02-0713-509/+281
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MDEV-14222 Unnecessary 'cascade' memory allocation for every updated row when there is no FOREIGN KEY This reverts the MySQL 5.7.2 change https://github.com/mysql/mysql-server/commit/377774689bf6a16af74182753fe950d514c2c6dd which introduced these problems. MariaDB 10.2.2 inherited these problems in commit 2e814d4702d71a04388386a9f591d14a35980bfe. The FOREIGN KEY CASCADE and SET NULL operations implemented as procedural recursion are consuming more than 8 kilobytes of stack (9 stack frames) per iteration in a non-debug GNU/Linux AMD64 build. This is why we need to limit the maximum recursion depth to 15 steps instead of the 255 that it used to be in MySQL 5.7 and MariaDB 10.2. A corresponding change was made in MySQL 5.7.21 in https://github.com/mysql/mysql-server/commit/7b26dc98a624d5cdf79cd5eee455cb03e3bccb5a
* | | | | InnoDB UPDATE cleanupMarko Mäkelä2018-02-071-7/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | row_upd_store_v_row(): Declare static row_upd_clust_rec_by_insert(), row_upd_del_mark_clust_rec(): Pass the parameter 'foreign' only #ifdef WITH_WSREP
* | | | | MDEV-15219 FOREIGN KEY CASCADE or SET NULL operations will not resume after ↵Marko Mäkelä2018-02-073-3/+517
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | lock wait This corruption was introduced in MDEV-13331. It would have been caught by the MySQL 5.7 test innodb.update-cascade which MariaDB was missing until now. row_ins_check_foreign_constraint(): Never replace err == DB_LOCK_WAIT with other values than DB_LOCK_WAIT_TIMEOUT.
* | | | | Remove useless debug instrumentation row_print_geometry_dataMarko Mäkelä2018-02-075-114/+14
| | | | |
* | | | | Remove useless codeMarko Mäkelä2018-02-071-21/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | srv_mbr_print(): Remove. Geometry fields are already being output in raw form, and we do not need bogus MBR output for non-spatial indexes.
* | | | | Foreign key code cleanupMarko Mäkelä2018-02-071-99/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | row_ins_cascade_calc_update_vec(): Remove the output parameter fts_col_affected, and instead return whether any fulltext index is affected by the cascade operation. row_ins_foreign_check_on_constraint(): Narrow the scope of some variables. ib_dec_in_dtor: Remove.
* | | | | Fixed mdev-15162 Query with CTE hangs if assignment operator (:=) is usedIgor Babaev2018-02-063-1/+30
| | | | | | | | | | | | | | | | | | | | | | | | | If setting user variable was used in the specification of a recursive CTE then Item_func_set_user_var::fix_fields() went into an infinite loop.
* | | | | Fixed mdev-15119 CTE, referencing another CTE, that is declared after,Igor Babaev2018-02-063-11/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | does not return error Corrected the code of st_select_lex::find_table_def_in_with_clauses() for a proper identification of CTE references used in embedded CTEs.