summaryrefslogtreecommitdiff
path: root/mysql-test/suite
Commit message (Collapse)AuthorAgeFilesLines
...
| | * | | | | Merge 10.9 into 10.10Marko Mäkelä2023-02-2816-15/+199
| | |\ \ \ \ \ | | | |/ / / /
| | | * | | | Merge 10.8 into 10.9Marko Mäkelä2023-02-2816-15/+199
| | | |\ \ \ \ | | | | |/ / /
| | | | * | | Merge 10.6 into 10.8Marko Mäkelä2023-02-2816-15/+199
| | | | |\ \ \ | | | | | |/ /
| | | | | * | Merge 10.5 into 10.6Marko Mäkelä2023-02-2710-8/+46
| | | | | |\ \ | | | | | | |/
| | | | | | * MDEV-30671 InnoDB undo log truncation fails to wait for purge of historyMarko Mäkelä2023-02-2410-10/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is not safe to invoke trx_purge_free_segment() or execute innodb_undo_log_truncate=ON before all undo log records in the rollback segment has been processed. A prominent failure that would occur due to premature freeing of undo log pages is that trx_undo_get_undo_rec() would crash when trying to copy an undo log record to fetch the previous version of a record. If trx_undo_get_undo_rec() was not invoked in the unlucky time frame, then the symptom would be that some committed transaction history is never removed. This would be detected by CHECK TABLE...EXTENDED that was impleented in commit ab0190101b0587e0e03b2d75a967050b9a85fd1b. Such a garbage collection leak should be possible even when using innodb_undo_log_truncate=OFF, just involving trx_purge_free_segment(). trx_rseg_t::needs_purge: Change the type from Boolean to a transaction identifier, noting the most recent non-purged transaction, or 0 if everything has been purged. On transaction start, we initialize this to 1 more than the transaction start ID. On recovery, the field may be adjusted to the transaction end ID (TRX_UNDO_TRX_NO) if it is larger. The field TRX_UNDO_NEEDS_PURGE becomes write-only; only some debug assertions that would validate the value. The field reflects the old inaccurate Boolean field trx_rseg_t::needs_purge. trx_undo_mem_create_at_db_start(), trx_undo_lists_init(), trx_rseg_mem_restore(): Remove the parameter max_trx_id. Instead, store the maximum in trx_rseg_t::needs_purge, where trx_rseg_array_init() will find it. trx_purge_free_segment(): Contiguously hold a lock on trx_rseg_t to prevent any concurrent allocation of undo log. trx_purge_truncate_rseg_history(): Only invoke trx_purge_free_segment() if the rollback segment is empty and there are no pending transactions associated with it. trx_purge_truncate_history(): Only proceed with innodb_undo_log_truncate=ON if trx_rseg_t::needs_purge indicates that all history has been purged. Tested by: Matthias Leich
| | | | | * | MDEV-25984 Assertion `max_doc_id > 0' failed in fts_init_doc_id()Thirunarayanan Balathandayuthapani2023-02-222-2/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - rollback_inplace_alter_table() locks the fts internal tables. At the time, insert tries to fetch the doc id from config table, fails to lock the config table and returns doc id as 0. fts_cmp_set_sync_doc_id(): Retry to fetch the doc id again if it encounter DB_LOCK_WAIT_TIMEOUT error
| | | | | * | MDEV-29871 innodb_fts.fulltext_misc unexpectedly reports a resultThirunarayanan Balathandayuthapani2023-02-212-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - match()+0 returns the floating result and converts into integer value and it leads to sporadic failure.
| | | | | * | MDEV-27701 Race on trx->lock.wait_lock between lock_rec_move() and ↵Vlad Lesin2023-02-202-0/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | lock_sys_t::cancel() The initial issue was in assertion failure, which checked the equality of lock to cancel with trx->lock.wait_lock in lock_sys_t::cancel(). If we analyze lock_sys_t::cancel() code from the perspective of trx->lock.wait_lock racing, we won't find the error there, except the cases when we need to reload it after the corresponding latches acquiring. So the fix is just to remove the assertion and reload trx->lock.wait_lock after acquiring necessary latches. Reviewed by: Marko Mäkelä <marko.makela@mariadb.com>
* | | | | | | Adjust costs for rowid filterMonty2023-02-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Use log2() insted of log() - Added missing ''+' when calculating rowid setup cost - Adjusted ROWID_FILTER_PER_ELEMENT_MODIFIER (from 3 to 1) Other things: - Adjusted cost for index_merge where rows_out < 1.0 The effects of the changes: - rowid filter will have higher setup cost - rowid filter will have slightly less costs per row This can be seen in mtr where some tests, with 'small tables or that uses rowid filters with many rows, will not use rowid filter anymore.
* | | | | | | MDEV-30544 Deprecate innodb_defragment and related parametersMarko Mäkelä2023-02-2114-1/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is a little used option innodb_defragment that would make OPTIMIZE TABLE not rebuild the table as usual for InnoDB, but instead cause the index B-trees to be optimized in place. This option uses excessive locking (exclusively locking index trees). It never covered SPATIAL INDEX or FULLTEXT INDEX. Storage space was never reclaimed. Because this option is not particularly useful and causes a maintenance burden (most recently in commit de4030e4d49805a7ded5c0bfee01cc3fd7623522), it is best to deprecate it, to prepare for its removal.
* | | | | | | MDEV-29694 fixup: Remove srv_change_buffer_max_size, adjust commentsMarko Mäkelä2023-02-212-31/+0
| | | | | | |
* | | | | | | bump the maturitySergei Golubchik2023-02-201-1/+1
| | | | | | |
* | | | | | | Merge 10.11 into 11.0Marko Mäkelä2023-02-16101-300/+1765
|\ \ \ \ \ \ \ | |/ / / / / /
| * | | | | | Merge 10.10 into 10.11Marko Mäkelä2023-02-1663-282/+271
| |\ \ \ \ \ \ | | |/ / / / /
| | * | | | | Merge 10.9 into 10.10Marko Mäkelä2023-02-1627-113/+225
| | |\ \ \ \ \ | | | |/ / / /
| | | * | | | Merge 10.8 into 10.9Marko Mäkelä2023-02-1627-113/+225
| | | |\ \ \ \ | | | | |/ / /
| | | | * | | Merge 10.6 into 10.8Marko Mäkelä2023-02-162-2/+11
| | | | |\ \ \ | | | | | |/ /
| | | | | * | Merge 10.5 into 10.6Marko Mäkelä2023-02-162-2/+11
| | | | | |\ \ | | | | | | |/
| | | | | | * MDEV-30552 fixup: Fix the test for non-debugMarko Mäkelä2023-02-162-2/+11
| | | | | | |
| | | | * | | Merge 10.6 into 10.8Marko Mäkelä2023-02-164-2/+43
| | | | |\ \ \ | | | | | |/ /
| | | | | * | Merge 10.5 into 10.6Marko Mäkelä2023-02-144-2/+43
| | | | | |\ \ | | | | | | |/
| | | | | | * MDEV-30552 InnoDB recovery crashes when error handling scenarioThirunarayanan Balathandayuthapani2023-02-142-0/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - InnoDB fails to reset the after_apply variable before applying the redo log in last batch during multi-batch recovery.
| | | | | | * MDEV-30551 InnoDB recovery hangs when buffer pool ran out of memoryThirunarayanan Balathandayuthapani2023-02-142-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - During non-last batch of multi-batch recovery, InnoDB holds log_sys.mutex and preallocates the block which may intiate page flush, which may initiate log flush, which requires log_sys.mutex to acquire again. This leads to assert failure. So InnoDB recovery should release log_sys.mutex before preallocating the block.
| | | | * | | MDEV-30426 Assertion !rec_offs_nth_extern(offsets2, n) during bulk insertThirunarayanan Balathandayuthapani2023-02-143-0/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - cmp_rec_rec_simple() fails to detect duplicate key error for bulk insert operation
| | | | * | | Fix RPL tests post DEBUG_SYNC changeVicențiu Ciorbaru2023-02-101-11/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The tests expect the SIGNAL to not be cleared. Thus set NO_CLEAR_EVENT within DBUG_EXECUTE_IF
| | | | * | | Merge 10.6 into 10.8Marko Mäkelä2023-02-1021-111/+146
| | | | |\ \ \ | | | | | |/ /
| | | | | * | Merge 10.5 into 10.6Marko Mäkelä2023-02-1014-99/+123
| | | | | |\ \ | | | | | | |/
| | | | | | * Merge 10.4 into 10.5Marko Mäkelä2023-02-1010-99/+69
| | | | | | |\
| | | | | | | * MDEV-30621: Türkiye is the correct current country namingDaniel Black2023-02-102-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As requested to the UN the country formerly known as Turkey is to be refered to as Türkiye. Reviewer: Alexander Barkov
| | | | | | | * MDEV-30608: rpl.rpl_delayed_parallel_slave_sbm sometimes fails with ↵Brandon Nesterenko2023-02-092-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Seconds_Behind_Master should not have used second transaction timestamp One of the constraints added in the MDEV-29639 patch, is that only the first event after idling should update last_master_timestamp; and as long as the replica has more events to execute, the variable should not be updated. The corresponding test, rpl_delayed_parallel_slave_sbm.test, aims to verify this; however, if the IO thread takes too long to queue events, the SQL thread can appear to catch up too fast. This fix ensures that the relay log has been fully written before executing the events. Note that the underlying cause of this test failure needs to be addressed as a bug-fix, this is a temporary fix to stop test failures. To track work on the bug-fix for the underlying issue, please see MDEV-30619.
| | | | | | | * MDEV-30492 Crash when use mariabackup.exe with config ↵Daniel Black2023-02-072-0/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'innodb_flush_method=async_unbuffered' Normalize innodb_flush_method, the same as the service, before attempting to print it.
| | | | | | | * Merge branch '10.4.28' into 10.4Oleksandr Byelkin2023-02-066-97/+33
| | | | | | | |\
| | | | | | | | * MDEV-30473 : Do not allow GET_LOCK() / RELEASE_LOCK() in clusterJan Lindström2023-01-304-97/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Following tests do not test anymore what they intended to test deleted: suite/galera/t/MDEV-24143.test deleted: suite/galera/t/galera_bf_abort_get_lock.test
| | | | | | | | * MDEV-30473 : Do not allow GET_LOCK() / RELEASE_LOCK() in clusterJan Lindström2023-01-272-0/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If WSREP_ON=ON do not allow GET_LOCK and RELEASE_LOCK functions. Instead print clear error message.
| | | | | | * | | Merge mariadb-10.5.19 into 10.5Marko Mäkelä2023-02-0614-7/+728
| | | | | | |\ \ \
| | | | | | * | | | MDEV-30473 : Do not allow GET_LOCK() / RELEASE_LOCK() in clusterJan Lindström2023-01-272-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In 10.5 If WSREP_ON=ON do not allow RELEASE_ALL_LOCKS function. Instead print clear error message.
| | | | | | * | | | MDEV-30473 : Do not allow GET_LOCK() / RELEASE_LOCK() in clusterJan Lindström2023-01-272-0/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If WSREP_ON=ON do not allow GET_LOCK and RELEASE_LOCK functions. Instead print clear error message.
| | | | | | * | | | MDEV-25037 : SIGSEGV in MDL_lock::hog_lock_types_bitmapJan Lindström2023-01-272-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We should not call mdl_context.release_explicit_locks() in Wsrep_client_service::bf_rollback() if client is quiting because it will be done again in THD::cleanup(). Note that problem with GET_LOCK() / RELEASE_LOCK() will be fixed on MDEV-30473.
| | | | | * | | | | Merge branch '10.6.12' into 10.6Oleksandr Byelkin2023-02-066-12/+12
| | | | | |\ \ \ \ \
| | | | | | * | | | | Revert test changes from "Fixed debug_sync timeout in deadlock_drop_table"Vicențiu Ciorbaru2023-02-032-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After introducing multiple signals possible for debug_sync, the test changes are no longer necessary. Revert them to the original state.
| | | | | | * | | | | Implement multiple-signal debug_syncVicențiu Ciorbaru2023-02-034-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The patch is inspired from MySQL. Instead of using a single String to hold the current active debug_sync signal, use a Hash_set to store LEX_STRINGS. This patch ensures that a signal can not be lost, by being overwritten by another thread via set DEBUG_SYNC = '... SIGNAL ...'; All signals are kepts "alive" until they are consumed by a wait event. This requires updating test cases that assume the GLOBAL signal is never consumed. Follow-up work needed: Port the additional syntax that allows one to set multiple signals and also conditionally deactivate signals when waiting.
| | * | | | | | | | | MDEV-28839: remove current_pos where not intentionally being testedasklavou2023-02-1338-171/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Task: ===== Update tests to reflect MDEV-20122, deprecation of master_use_gtid=current_pos. Change Master (CM) statements were either removed or modified with current_pos --> slave_pos based on original intention of the test. Reviewed by: ============ Brandon Nesterenko <brandon.nesterenko@mariadb.com>
| * | | | | | | | | | MDEV-30621: Türkiye is the correct current country namingDaniel Black2023-02-102-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As requested to the UN the country formerly known as Turkey is to be refered to as Türkiye.
| * | | | | | | | | | Merge branch '10.10' into 10.11mariadb-10.11.2Oleksandr Byelkin2023-02-0111-9/+41
| |\ \ \ \ \ \ \ \ \ \ | | |/ / / / / / / / /
| | * | | | | | | | | Merge branch '10.9' into 10.10mariadb-10.10.3Oleksandr Byelkin2023-02-013-0/+32
| | |\ \ \ \ \ \ \ \ \ | | | |/ / / / / / / /
| | | * | | | | | | | Merge branch '10.8' into 10.9mariadb-10.9.5Oleksandr Byelkin2023-02-013-0/+32
| | | |\ \ \ \ \ \ \ \ | | | | |/ / / / / / /
| | | | * | | | | | | Merge branch '10.7' into 10.8mariadb-10.8.7Oleksandr Byelkin2023-02-013-0/+32
| | | | |\ \ \ \ \ \ \
| | | | | * \ \ \ \ \ \ Merge branch '10.6' into 10.7mariadb-10.7.810.7Oleksandr Byelkin2023-02-013-0/+32
| | | | | |\ \ \ \ \ \ \ | | | | | | |/ / / / / /
| | | | | | * | | | | | MDEV-30536: no expected deadlock in galera_insert_bulk testmariadb-10.6.12Julius Goryavsky2023-02-011-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unstable test (galera_insert_bulk) temporarily disabled.
| | | | | | * | | | | | MDEV-30527 Assertion !m_freed_pages in mtr_t::start() on DROP TEMPORARY TABLEMarko Mäkelä2023-02-012-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mtr_t::commit(): Add special handling of innodb_immediate_scrub_data_uncompressed for TEMPORARY TABLE. This fixes a regression that was caused by commit de4030e4d49805a7ded5c0bfee01cc3fd7623522 (MDEV-30400).