summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add some extra logging to catch the case when page is written with wrong offset.bb-10.3.16-MDEV-21109-wrong-page-no-assertVlad Lesin2020-02-164-6/+39
|
* Updated list of unstable tests for 10.3.16 releasemariadb-10.3.16Elena Stepanova2019-06-151-96/+92
|
* Merge branch '10.2-release' into 10.3-releaseOleksandr Byelkin2019-06-141-1/+5
|\
| * MDEV-19633 ASAN use-after-poison in tree_insert() in main.func_gconcatSergei Golubchik2019-06-141-1/+5
| | | | | | | | | | when copying the TREE, take into account that init_tree can internally adjust tree->size_of_element
* | MDEV-16804 SYSTEM VERSIONING columns not showing as GENERATEDAleksey Midenkov2019-06-144-2/+156
| | | | | | | | Closes #830
* | Merge branch '10.2' into 10.3Oleksandr Byelkin2019-06-1483-2608/+2193
|\ \ | |/
| * Merge branch '10.1' into 10.2Oleksandr Byelkin2019-06-1336-208/+780
| |\
| | * Merge branch '5.5' into 10.1Oleksandr Byelkin2019-06-1236-204/+775
| | |\
| | | * MDEV-18479: Avoid COST_MULT(records, 1)Marko Mäkelä2019-06-111-5/+2
| | | |
| | | * MDEV-18479 Another complementIgor Babaev2019-06-102-16/+19
| | | | | | | | | | | | | | | | | | | | This patch complements the patch that fixes bug MDEV-18479. This patch takes care of possible overflow in JOIN::get_examined_rows().
| | | * MDEV-19580 Unrelated JOINs corrupt usage of 'WHERE function() IN (subquery)'Igor Babaev2019-06-099-19/+331
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Handling of top level conjuncts in WHERE whose used_tables() contained RAND_TABLE_BIT in the function make_join_select() was incorrect. As a result if such a conjunct referred to fields non of which belonged to the last joined table it was pushed twice. (This could be seen for a test case from subselect.test whose output was changed after this patch had been applied. In 10.1 when running EXPLAIN FORMAT=JSON for the query from this test case we clearly see that one of the conjuncts is pushed twice.) This fact by itself was not good. Besides, if such a conjunct was pushed to a table that was the result of materialization of a semi-join the query could return a wrong result set. In particular we could watch it for queries with semi-join subqueries whose left parts used stored functions without "deterministic' specifier.
| | | * MDEV-19491 update query stopped working after mariadb upgrade 10.2.23 -> 10.2.24Sergei Golubchik2019-06-019-97/+231
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | as well as MDEV-19500 Update with join stopped worked if there is a call to a procedure in a trigger MDEV-19521 Update Table Fails with Trigger and Stored Function MDEV-19497 Replication stops because table not found MDEV-19527 UPDATE + JOIN + TRIGGERS = table doesn't exists error Reimplement the fix for (5d510fdbf00) MDEV-18507 can't update temporary table when joined with table with triggers on read-only instead of calling open_tables() twice, put multi-update prepare code inside open_tables() loop. Add a test for a MDL backoff-and-retry loop inside open_tables() across multi-update prepare code.
| | | * cleanupSergei Golubchik2019-06-019-55/+30
| | | |
| | | * MDEV-13631 Make use of clang-formatEugene Kosov2019-05-302-0/+28
| | | | | | | | | | | | | | | | Add .clang-format files to a root directory and to storage/innobase
| | | * MDEV-18479 ComplementIgor Babaev2019-05-285-20/+29
| | | | | | | | | | | | | | | | | | | | | | | | This patch complements the patch that fixes bug MDEV-18479. This patch takes care of possible overflow when calculating the estimated number of rows in a materialized derived table / view.
| | | * MDEV-19588 Wrong results from query, using left join.Igor Babaev2019-05-284-1/+102
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This bug could happen when queries with nested outer joins were executed employing join buffers. At such an execution if the method JOIN_CACHE::join_records() is called when a join buffer has become full no 'first_unmatched' field should be cleaned up in the JOIN_TAB structure to which the join cache with this buffer is attached.
| * | | MDEV-19435 buf_fix_count > 0 for corrupted page when it exits the LRU listThirunarayanan Balathandayuthapani2019-06-139-48/+102
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: ========= One of the purge thread access the corrupted page and tries to remove from LRU list. In the mean time, other purge threads are waiting for same page in buf_wait_for_read(). Assertion(buf_fix_count == 0) fails for the purge thread which tries to remove the page from LRU list. Solution: ======== - Set the page id as FIL_NULL to indicate the page is corrupted before removing the block from LRU list. Acquire hash lock for the particular page id and wait for the other threads to release buf_fix_count for the block. - Added the error check for btr_cur_open() in row_search_on_row_ref().
| * | | Galera test cleanup.Jan Lindström2019-06-133-0/+16
| | | |
| * | | Clean up the test innodb.innodb-64k-crashMarko Mäkelä2019-06-122-391/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before killing the server, ensure that the incomplete state of the transaction will be made durable and will be applied and rolled back on recovery, so that each time, roughly the same amount of work will be done. Remove DML statements after the recovery, and execute CHECK TABLE instead.
| * | | Merge 10.1 into 10.2Marko Mäkelä2019-06-124-1456/+0
| |\ \ \ | | |/ /
| | * | MDEV-16111 encryption.innodb_lotoftables failed in buildbot with wrong resultMarko Mäkelä2019-06-124-1479/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove the test, because it easily fails with a result difference. Analysis by Thirunarayanan Balathandayuthapani: By default, innodb_encrypt_tables=0. 1) Test case creates 100 tables in innodb_encrypt_1. 2) creates another 100 unencrypted tables (encryption=off) in innodb_encrypt_2 3) creates another 100 encrypted tables (encryption=on) in innodb_encrypt_3 4) enabling innodb_encrypt_tables=1 and checking that only 100 encrypted tables exist. (already we have 100 in dictionary) 5) opening all tables again (no idea why) 6) After that, set innodb_encrypt_tables=0 and wait for 100 tables to be decrypted (already we have 100 unencrypted tables) 7) dropping all databases Sporadic failure happens because after step 4, it could encrypt the normal table too, because innodb_encryption_threads=4. This test was added in MDEV-9931, which was about InnoDB startup being slow due to all .ibd files being opened. There have been a number of later fixes to this problem. Currently the latest one is commit cad56fbabaea7b5dab0ccfbabb98d0a9c61f3dc3, in which some tests (in particular the test innodb.alter_kill) could fail if all InnoDB .ibd files are read during startup. That could make this test redundant. Let us remove the test, because it is big, slow, unreliable, and does not seem to reliably catch the problem that all files are being read on InnoDB startup.
| * | | Merge 10.1 into 10.2Marko Mäkelä2019-06-123-7/+0
| |\ \ \ | | |/ /
| | * | MDEV-19563 Removed references to deprecated option ↵sjaakola2019-06-122-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | innodb_locks_unsafe_for_binlog innodb_locks_unsafe_for_binlog variabe removed from wsrep_info test configuration and recommendation to use this variable in README-wsrep was removed as well Also relates to issue: MDEV-19544
| | * | MDEV-16467 - MariaDB crashes because of "long semaphore wait"after migrating ↵Sergey Vojtovich2019-06-121-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | from 10.1 to 10.3 This patch fixes 10.2 issue reported in MDEV-16467 by partial backport of c2118a0. Specifically "Remove not needed LOCK_thread_count from thd_get_error_context_description()".
| * | | MDEV-19740: Remove some broken InnoDB systemd codeMarko Mäkelä2019-06-121-11/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GCC 9.1.1 noticed that sd_notifyf() was always being invoked with str=NULL argument for "%s". This code was added in commit 2e814d4702d71a04388386a9f591d14a35980bfe but not mentioned in the commit comment. The STATUS messages for systemd matter during startup and shutdown, and should not be emitted during normal operation. ib_senderrf(): Remove the potentially harmful sd_notifyf() calls.
| * | | Merge 10.1 into 10.2Marko Mäkelä2019-06-1226-438/+1248
| |\ \ \ | | |/ /
| | * | MDEV-16866 InnoDB fails to start upon crash recovery with "[ERROR] InnoDB: ↵Thirunarayanan Balathandayuthapani2019-06-122-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Redo log crypto: failed to decrypt log block" - Post-push fix to change the copyright of both xtradb and innodb file.
| | * | MDEV-16866 InnoDB fails to start upon crash recovery with "[ERROR] InnoDB: ↵Thirunarayanan Balathandayuthapani2019-06-122-39/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Redo log crypto: failed to decrypt log block" - If InnoDB encounters garbage or incomplete written log block during recovery then don't throw the error. Treat it as end of the log. - This kind of incomplete or empty block can be result of killing InnoDB when writing the redo log.
| | * | MDEV-19360 - Disable _FORTIFY_SOURCE for ASAN buildsSergey Vojtovich2019-06-071-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Those two may work incorrectly together. Namely, ASAN may produce false positives or false negatives. For details see https://github.com/google/sanitizers/wiki/AddressSanitizer#faq Make SECURITY_HARDENED disabled by default if WITH_ASAN=ON Based on contribution by Eugene Kosov.
| | * | MDEV-17103 MY_CHECK_{C,CXX}_COMPILER_FLAG do not work on with localized gccVladislav Vaintroub2019-06-051-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | messages Force LANG=C for MY_CHECK_{C,CXX}_COMPILER_FLAG
| | * | MDEV-19675 Wrong charset is chosen when opening a pre-4.1 tableAlexander Barkov2019-06-034-2/+164
| | | |
| | * | MDEV-19653 Add class Sql_cmd_create_tableAlexander Barkov2019-05-318-304/+425
| | | |
| | * | MDEV-15734 - calculation inside sizeof() warningSergey Vojtovich2019-05-301-6/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reverted incorrect change introduced by 548d03d7. As result is char**, third qsort() parameter must be sizeof(char*). Not sizeof(result[0] + 2), which is same as sizeof(result[0]). Not even sizeof(result[0]) + 2, which would cause invalid memory access. Proper sorting is responsibility of logfilenamecompare() callback.
| | * | MDEV-18913: typo in error logSujatha2019-05-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: ======== Following typo in error log: 2019-03-13 15:58:10 0 [Note] Reading of all Master_info entries succeded Should be 'succeeded' Fix: === Fixed the typo with the right word 'succeeded'.
| | * | MDEV-11094: Blackhole table updates on slave fail when row annotation is enabledSujatha2019-05-291-19/+21
| | | | | | | | | | | | | | | | | | | | | | | | Post push fix. Simplified the earlier fixes.
| | * | MDEV-11094: Blackhole table updates on slave fail when row annotation is enabledSujatha2019-05-298-83/+606
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: ======= rpl_blackhole.test fails when executed with following options mysqld=--binlog_annotate_row_events=1, mysqld=--replicate_annotate_row_events=1 Test output: ------------ worker[1] Using MTR_BUILD_THREAD 300, with reserved ports 16000..16019 rpl.rpl_blackhole_bug 'mix' [ pass ] 791 rpl.rpl_blackhole_bug 'row' [ fail ] Replicate_Wild_Ignore_Table Last_Errno 1032 Last_Error Could not execute Update_rows_v1 event on table test.t1; Can't find record in 't1', Error_code: 1032; handler error HA_ERR_END_OF_FILE; the event's master log master-bin.000001, end_log_pos 1510 Analysis: ========= Enabling "replicate_annotate_row_events" on slave, Tells the slave to write annotate rows events received from the master to its own binary log. The received annotate events are applied after the Gtid event as shown below. thd->query() will be set to the actual query received from the master, through annotate event. Annotate_rows event should not be deleted after the event is applied as the thd->query will be used to generate new Annotate_rows event during applying the subsequent Rows events. After the last Rows event has been applied, the saved Annotate_rows event (if any) will be deleted. In balckhole engine all the DML operations are noops as they donot store any data. They simply return success without doing any operation. But the existing strictly expects thd->query() to be 'NULL' to identify that row based replication is in use. This assumption will fail when row annotations are enabled as the query is not 'NULL'. Hence various row based operations like 'update', 'delete', 'index lookup' will fail when row annotations are enabled. Fix: === Extend the row based replication check to include row annotations as well. i.e Either the thd->query() is NULL or thd->query() points to query and row annotations are in use.
* | | | spider_db_init(): Do not return uninitialized error_numMarko Mäkelä2019-06-141-119/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the allocation of spider_table_sts_threads failed, we would DBUG_RETURN(error_num) without having initialized it earlier. Pre-initialize error_num to HA_ERR_OUT_OF_MEM and remove a lot of assignments that thus became redundant. This error was introduced in 207594afac99e5e7de1e639d907ce57c53c02294 (Spider 3.3.13).
* | | | Merge 10.2 into 10.3Jan Lindström2019-06-122-5/+0
|\ \ \ \ | |/ / /
| * | | MDEV-19736: Galera test failure onJan Lindström2019-06-122-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | Remove unneeded select to provider name. Provider can have different names and can be located on different directory on different environments.
* | | | Merge 10.2 into 10.3Marko Mäkelä2019-06-1146-128/+612
|\ \ \ \ | |/ / /
| * | | MDEV-19725 Incorrect error handling in ALTER TABLEMarko Mäkelä2019-06-106-23/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some I/O functions and macros that are declared in os0file.h used to return a Boolean status code (nonzero on success). In MySQL 5.7, they were changed to return dberr_t instead. Alas, in MariaDB Server 10.2, some uses of functions were not adjusted to the changed return value. Until MDEV-19231, the valid values of dberr_t were always nonzero. This means that some code that was incorrectly checking for a zero return value from the functions would never detect a failure. After MDEV-19231, some tests for ALTER ONLINE TABLE would fail with cmake -DPLUGIN_PERFSCHEMA=NO. It turned out that the wrappers pfs_os_file_read_no_error_handling_int_fd_func() and pfs_os_file_write_int_fd_func() were wrongly returning bool instead of dberr_t. Also the callers of these functions were wrongly expecting bool (nonzero on success) instead of dberr_t. This mistake had been made when the addition of these functions was merged from MySQL 5.6.36 and 5.7.18 into MariaDB Server 10.2.7. This fix also reverts commit 40becbc3c7a6555d0a4bb186b4336a2899d5995c which attempted to work around the problem.
| * | | MDEV-19714: JOIN::pseudo_bits_cond is not visible in EXPLAIN FORMAT=JSONbb-10.2-mdev19714Sergei Petrunia2019-06-085-0/+85
| | | | | | | | | | | | | | | | Make it visible
| * | | Fix mysql-test-run.pl to work after d6d5c168cf1Sergei Golubchik2019-06-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | option values now have to be edited in-place, instead of replacing an option with another one that has the same name but a new value.
| * | | Fixed typo in Config.pgmMonty2019-06-061-1/+1
| | | |
| * | | Support skip-plugin-loadMonty2019-06-061-0/+2
| | | | | | | | | | | | | | | | | | | | - --disable-plugin-load or --skip-plugin-load will now reset plugin load list. Needed for future changes to mtr tests
| * | | Fixed that test suite doesn't remove duplicate optionsMonty2019-06-061-1/+16
| | | | | | | | | | | | | | | | | | | | - multiple usage of plugin-load-add and optimizer-switch are now included in generated config files
| * | | MDEV-19695 Import tablespace doesn't work with ROW_FORMAT=COMPRESSED ↵Thirunarayanan Balathandayuthapani2019-06-064-3/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | encrypted tablespace Problem: ======= fil_iterate() writes imported tablespace page0 as it is to discarded tablespace. Space id wasn't even changed. While opening the tablespace, tablespace fails with space id mismatch error. Fix: ==== fil_iterate() copies the page0 with discarded space id to imported tablespace.
| * | | fix MDEV-18750: failed to flashback large-size binlog fileZicheng Huang2019-06-053-4/+185
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fix MDEV-18750: failed to flashback large-size binlog file fix mysqlbinlog flashback failure caused by reading io_cache without MY_FULL_IO flag fix MDEV-18750: mysqlbinlog flashback failure on large binlog
| * | | MDEV-19541 InnoDB crashes when trying to recover a corrupted pageThirunarayanan Balathandayuthapani2019-06-053-6/+8
| | | | | | | | | | | | | | | | | | | | - Use corrupt page id instead of whole block after releasing it from LRU list.
| * | | MDEV-18015: Assertion `global_status_var.global_memory_used == 0' failed ↵Varun Gupta2019-06-043-8/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | when using UDF , window functions and views Adding destructor for Group_bound_tracker to free Cached_item_str. The Cached_item for window functions are allocated on THD:mem_root but the Cached_item_str has value of type string which is allocated on the heap, so we need to call free() for it