- 21 Dec, 2023 5 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Sergei Golubchik authored
ASAN uses *a lot* more stack. use not_asan.inc for tests that recursively put a lot of data on the stack
-
- 20 Dec, 2023 9 commits
-
-
Yuchen Pei authored
In spider_db_mbase_util::print_item_func(), if the sql item_func has an UNKNOWN_FUNC type, by default the spider group by handler (gbh) transform infix to prefix. But regexp should remain infix, so we add an if condition to account for this.
-
Jan Lindström authored
Improve test case to wait until cluster membership is correct. Signed-off-by: Julius Goryavsky <julius.goryavsky@mariadb.com>
-
Marko Mäkelä authored
-
Julius Goryavsky authored
This reverts commit ddd8a908 (additional correction required)
-
Sergei Petrunia authored
-
Daniele Sciascia authored
This patch fixes cases where a transaction caused empty writeset to be replicated. This could happen in the case where a transaction executes a statement that initially manages to modify some data and therefore appended keys some for certification. The statement is however rolled back at some later stage due to some error (for example, a duplicate key error). After statement rollback the transaction is still alive, has no other changes. When committing such transaction, an empty writeset was replicated through Galera. The fix is to avoid calling into commit hook only when transaction has appended one or keys for certification *and* has some data in binlog cache to replicate. Otherwise, the commit is considered empty, and goes through usual empty commit path. Signed-off-by: Julius Goryavsky <julius.goryavsky@mariadb.com>
-
Denis Protivensky authored
Remove DB_LOCK_WAIT return code check as it should have been resolved to one of the other errors by that point. Signed-off-by: Julius Goryavsky <julius.goryavsky@mariadb.com>
-
Jan Lindström authored
Changes to be committed: modified: mysql-test/suite/wsrep/disabled.def deleted: mysql-test/suite/wsrep/r/MDEV-22443.result deleted: mysql-test/suite/wsrep/r/MDEV-23092.result deleted: mysql-test/suite/wsrep/r/mdev_6832.result deleted: mysql-test/suite/wsrep/r/wsrep_variables_no_provider.result deleted: mysql-test/suite/wsrep/t/MDEV-22443.cnf deleted: mysql-test/suite/wsrep/t/MDEV-22443.test deleted: mysql-test/suite/wsrep/t/MDEV-23092.cnf deleted: mysql-test/suite/wsrep/t/MDEV-23092.test deleted: mysql-test/suite/wsrep/t/mdev_6832.cnf deleted: mysql-test/suite/wsrep/t/mdev_6832.test deleted: mysql-test/suite/wsrep/t/wsrep_variables_no_provider.cnf deleted: mysql-test/suite/wsrep/t/wsrep_variables_no_provider.test These test cases used feature not available anymore. Signed-off-by: Julius Goryavsky <julius.goryavsky@mariadb.com>
-
Julius Goryavsky authored
-
- 19 Dec, 2023 8 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
trx_purge_truncate_history(): If a fast shutdown has been initiated, disregard innodb_undo_log_truncate=ON and return.
-
Kristian Nielsen authored
The previous patch for MDEV-10653 changes the rpl_parallel::workers_idle() function to use Relay_log_info::last_inuse_relaylog to check for idle workers. But the code was missing a NULL check. Also, there was one place during SQL slave thread start which was missing mutex synchronisation when updating inuse_relaylog. Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
-
Kristian Nielsen authored
The error-injection inject_mdev8031 simulates a deadlock kill in a specific place, by setting killed_for_retry to RETRY_KILL_KILLED directly. If a real deadlock kill triggers at the same time, it is possible for the thread to complete its transaction retry and set rgi_slave to NULL before the real readlock kill can complete in the background. This will cause a segfault due to null-pointer access. Fix by changing the error injection to do a real background deadlock kill, which ensures that the thread will wait for any pending background kills to complete. Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
-
Kristian Nielsen authored
Item::val_str() sets the Item::null_value flag, so call it before checking the flag, not after. Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
-
Marko Mäkelä authored
trx_purge_truncate_history(): Release buf_pool.flush_list_mutex and 'dummily' acquire and release buf_pool.mutex before starting a rescan of buf_pool.flush_list, to ensure that the buf_flush_page_cleaner thread (which may be holding buf_pool.mutex) will be able to proceed. This fixes up commit 5dbe7a8c (MDEV-32757). Tested by: Axel Schwenke (on Ubuntu 18.04 and Ubuntu 20.04) Reviewed by: Vladislav Lesin
-
hsser authored
This commit addresses the file leakage problem encountered with the mysql_upgrade --check-if-upgrade-is-needed command.
-
- 18 Dec, 2023 2 commits
-
-
Marko Mäkelä authored
buf_read_ahead_linear(): Suppress a warning of comparing potentially uninitialized FIL_PAGE_PREV and FIL_PAGE_NEXT fields.
-
Marko Mäkelä authored
-
- 17 Dec, 2023 3 commits
-
-
Sergei Golubchik authored
it can be invoked with ms=0. In that case dict_stats_func is invoked immediately, it calls dict_stats_process_entry_from_recalc_pool() which at the end might try to call dict_stats_schedule() again to queue another recalc. And it can happen that the first dict_stats_schedule(0) call didn't release dict_stats_mutex yet, so the second dict_stats_schedule() won't queue a recalc. And as a result the table won't have its stats recalculated at all, not now, not later. This causes innodb.innodb_stats_auto_recalc to fail sporadically. This commit doesn't fix it but makes it less likely to occur which happens to be enough for the test to pass. Proper fix is coming soon.
-
Sergei Golubchik authored
use signal_ddl_recovery_done callback for that. also make the server to call signal_ddl_recovery_done() when loading plugins at run-time (so that plugins would't need to detect that on their own)
-
Sergei Golubchik authored
-
- 15 Dec, 2023 5 commits
-
-
Marko Mäkelä authored
trx_purge_truncate_history(): Release buf_pool.flush_list_mutex before starting a rescan of buf_pool.flush_list, to ensure that the buf_flush_page_cleaner thread (which may be holding buf_pool.mutex) will be able to proceed. This fixes up commit a0f02f74 (MDEV-32757). Tested by: Axel Schwenke Reviewed by: Vladislav Lesin
-
Sergei Golubchik authored
see also 4eca64e3
-
Thirunarayanan Balathandayuthapani authored
- InnoDB should write all zeros into a table and its indexes statistics members when table is unreadable.
-
Thirunarayanan Balathandayuthapani authored
-
Sergei Golubchik authored
followup for ad796aaa
-
- 14 Dec, 2023 5 commits
-
-
Sisi Huang authored
-
Sergei Golubchik authored
-
Marko Mäkelä authored
row_ins_clust_index_entry_low(): Invoke btr_set_instant() in the same mini-transaction that has successfully inserted the metadata record. In this way, if inserting the metadata record fails before any undo log record was written for it, the index root page will remain consistent. innobase_instant_try(): Remove the btr_set_instant() call. This is a 10.6 version of c17aca2f. Tested by: Matthias Leich Reviewed by: Thirunarayanan Balathandayuthapani
-
Marko Mäkelä authored
During mariadb-backup --backup, a table could be renamed, created and dropped. We could have both oldname.ibd and oldname.new, and one of the files would be deleted before the InnoDB recovery starts. The desired end result would be that we will recover both oldname.ibd and newname.ibd. During normal crash recovery, at most one file operation (create, rename, delete) may require to be replayed from the write-ahead log before the DDL recovery starts. deferred_spaces.create(): In mariadb-backup --prepare, try to create the file in case it does not exist. fil_name_process(): Display a message about not found files not only if innodb_force_recovery is set, but also in mariadb-backup --prepare. If we are processing a FILE_RENAME for a tablespace whose recovery is deferred, suppress the message and adjust the file name in case fil_ibd_load() returns FIL_LOAD_NOT_FOUND or FIL_LOAD_DEFER. fil_ibd_load(): Remove a redundant file name comparison. The caller already compared that the file names are different. We used to wrongly return FIL_LOAD_OK instead of FIL_LOAD_ID_CHANGED if only the schema name differed, such as a/t1.ibd and b/t1.ibd. Tested by: Matthias Leich Reviewed by: Thirunarayanan Balathandayuthapani
-
Marko Mäkelä authored
-
- 13 Dec, 2023 3 commits
-
-
Marko Mäkelä authored
ha_innobase::compare_key_parts(): If a full column index is being replaced with a column prefix index, return Compare_keys::NotEqual.
-
Daniel Black authored
opt_kill_long_query_type being an enum could be 0 corresponding to ALL. When ALL is specified, the CONNECTION ADMIN is still required. Also check REPLICA MONITOR privilege and make the tests find the results by recording stderr. Noticed thanks to bug report by Tim van Dijen. Fixes: 79b58f1c
-
Rex authored
Consider this query SELECT t1.* FROM t1, (SELECT t2.b FROM t2 WHERE NOT EXISTS (SELECT 1 FROM t3) GROUP BY b) sq where sq.b = t1.a; If SELECT 1 FROM t3 is expensive, for example t3 has > thd->variables.expensive_subquery_limit, first evaluation is deferred to mysql_derived_fill(). There it is noted that, in the above case NOT EXISTS (SELECT 1 FROM t3) is constant and false. This causes the join variable zero_result_cause to be set to "Impossible WHERE noticed after reading const tables" and the handler for this join is never "opened" via handler::ha_open. When mysql_derived_fill() is called for the next group of results, this unopened handler is not taken into account. reviewed by Igor Babaev (igor@mariadb.com)
-