- 08 Nov, 2021 2 commits
-
-
Oleksandr Byelkin authored
-
Daniel Bartholomew authored
-
- 05 Nov, 2021 6 commits
-
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Andrei Elkin authored
When transaction creates or drops temporary tables and afterward its statement faces an error even the transactional table statement's cached ROW format events get involved into binlog and are visible after the transaction's commit. Fixed with proper analysis of whether the errored-out statement needs to be rolled back in binlog. For instance a fact of already cached CREATE or DROP for temporary tables by previous statements alone does not cause to retain the being errored-out statement events in the cache. Conversely, if the statement creates or drops a temporary table itself it can't be rolled back - this rule remains.
-
Marko Mäkelä authored
In commit c091a0bc we removed the use of the HASH_ macros for inserting into buf_pool.page_hash, or accessing buf_page_t::hash. However, the binary buddy allocator for block->page.zip.data would still use the HASH_ macros. HASH_INSERT and not HASH_DELETE would reset the next-block pointer to the null pointer. Our replacement of HASH_DELETE() will reset the next-block pointer, and the replacement of HASH_INSERT() assumes that the pointer is the null pointer. buf_LRU_block_free_non_file_page(): Assert that the next-block pointer is the null pointer. buf_buddy_block_free(): Reset the pointer before invoking buf_LRU_block_free_non_file_page(). Without this, the added assertion would fail in the test encryption.innochecksum.
-
- 04 Nov, 2021 6 commits
-
-
Sergei Golubchik authored
-
Sergei Golubchik authored
old ftp.pcre.org is apparently down, www.pcre.org says to use github as the primary download location
-
Vladislav Vaintroub authored
-
Sergei Golubchik authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
MySQL 5.5 in commit 177d8b0c introduced a configuration parameter innodb_force_load_corrupted whose purpose was to allow a corrupted table to be dropped. Given that MDEV-11412 in MariaDB 10.5.4 aims to allow any metadata for a missing or corrupted table to be dropped, and given that MDEV-17567 and MDEV-25506 and related tasks made DDL operations crash-safe, the parameter no longer serves any purpose. Because this obscure parameter was read-only (not settable by a client), it seems that we can simply declare it with MARIADB_REMOVED_OPTION (commit 1bc9cce7) without breaking any upgrades. DICT_ERR_IGNORE_INDEX: Replaces DICT_ERR_IGNORE_INDEX_ROOT and DICT_ERR_IGNORE_CORRUPT, which were always set equally. dict_load_indexes(): Report "No indexes found for table" in a uniform way, and only when the DICT_ERR_IGNORE_INDEX flag is not set. If the clustered index is marked corrupted, and the operation is DICT_ERR_IGNORE_DROP (we are about to drop the table), we will load the metadata; else, we will return DB_INDEX_CORRUPT. If SYS_INDEXES.PAGE is FIL_NULL, report an error or warning unless we are about to drop the table. dict_load_table_one(): Simplify the logic.
-
- 03 Nov, 2021 4 commits
-
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
- 02 Nov, 2021 12 commits
-
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Marko Mäkelä authored
This is follow-up to commit 1193a793. We will set innodb_use_native_aio=OFF by default also in mariadb-backup when running on a potentially affected kernel.
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Jan Lindström authored
* Fix error handling NULL-pointer reference * Add mtr-suppression on galera_ssl_upgrade
-
Jan Lindström authored
* Fix error handling NULL-pointer reference * Add mtr-suppression on galera_ssl_upgrade
-
Jan Lindström authored
* Fix error handling NULL-pointer reference * Add mtr-suppression on galera_ssl_upgrade
-
Jan Lindström authored
Use better error message when KILL fails even in case TOI fails.
-
- 01 Nov, 2021 2 commits
-
-
Marko Mäkelä authored
mtr_t::page_lock(): Validate the page number. ibuf_tree_root_get(): Remove assertions that became redundant. The assertions in btr_validate_level() are kind of redundant as well, but because they are ut_a(), they are also present in release builds, while the ones in mtr_t::page_lock() are only present in debug builds. btr_cur_position(): Do not duplicate an assertion that is part of page_cur_position(). dict_load_tablespace(): Introduce a new option DICT_ERR_IGNORE_TABLESPACE that will suppress loading a tablespace when a table is going to be dropped.
-
Jan Lindström authored
* Fix error handling NULL-pointer reference * Add mtr-suppression on galera_ssl_upgrade
-
- 30 Oct, 2021 2 commits
-
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
- 29 Oct, 2021 6 commits
-
-
sjaakola authored
Mutex order violation when wsrep bf thread kills a conflicting trx, the stack is wsrep_thd_LOCK() wsrep_kill_victim() lock_rec_other_has_conflicting() lock_clust_rec_read_check_and_lock() row_search_mvcc() ha_innobase::index_read() ha_innobase::rnd_pos() handler::ha_rnd_pos() handler::rnd_pos_by_record() handler::ha_rnd_pos_by_record() Rows_log_event::find_row() Update_rows_log_event::do_exec_row() Rows_log_event::do_apply_event() Log_event::apply_event() wsrep_apply_events() and mutexes are taken in the order lock_sys->mutex -> victim_trx->mutex -> victim_thread->LOCK_thd_data When a normal KILL statement is executed, the stack is innobase_kill_query() kill_handlerton() plugin_foreach_with_mask() ha_kill_query() THD::awake() kill_one_thread() and mutexes are victim_thread->LOCK_thd_data -> lock_sys->mutex -> victim_trx->mutex This patch is the plan D variant for fixing potetial mutex locking order exercised by BF aborting and KILL command execution. In this approach, KILL command is replicated as TOI operation. This guarantees total isolation for the KILL command execution in the first node: there is no concurrent replication applying and no concurrent DDL executing. Therefore there is no risk of BF aborting to happen in parallel with KILL command execution either. Potential mutex deadlocks between the different mutex access paths with KILL command execution and BF aborting cannot therefore happen. TOI replication is used, in this approach, purely as means to provide isolated KILL command execution in the first node. KILL command should not (and must not) be applied in secondary nodes. In this patch, we make this sure by skipping KILL execution in secondary nodes, in applying phase, where we bail out if applier thread is trying to execute KILL command. This is effective, but skipping the applying of KILL command could happen much earlier as well. This also fixed unprotected calls to wsrep_thd_abort that will use wsrep_abort_transaction. This is fixed by holding THD::LOCK_thd_data while we abort transaction. Reviewed-by: Jan Lindström <jan.lindstrom@mariadb.com>
-
Jan Lindström authored
Revert "MDEV-23328 Server hang due to Galera lock conflict resolution" This reverts commit eac8341d.
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Marko Mäkelä authored
row_undo_mod_clust_low(): If we are in recovery and rolling back a DELETE operation on the SYS_INDEXES table, and the SYS_INDEXES.NAME starts with the magic byte 0xff that identifies uncommitted ADD INDEX stubs, we must not try to evict the table definition because such index stubs would be skipped by dict_load_indexes() anyway.
-
Marko Mäkelä authored
-