- 20 Jan, 2023 1 commit
-
-
Oleksandr Byelkin authored
-
- 18 Jan, 2023 9 commits
-
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Rucha Deodhar authored
Analysis: When we skip level when path is found, it changes the state of the json engine. This breaks the sequence for json_get_path_next() which is called at the end to ensure json document is valid and leads to crash. Fix: Use json_scan_next() at the end to check if json document has correct syntax (is valid).
-
- 17 Jan, 2023 14 commits
-
-
Oleksandr Byelkin authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
MySQL 5.7.41 includes one InnoDB change mysql/mysql-server@d2d6b2dd00f709bc528386009150d4bc726e25a0 that seems to be applicable to MariaDB Server 10.3 and 10.4. Even though commit 5b9ee8d8 seems to have fixed sporadic failures on our CI systems, it is theoretically possible that another race condition remained. buf_flush_page_cleaner_coordinator(): In the final loop, wait also for buf_get_n_pending_read_ios() to reach 0. In this way, if a secondary index leaf page was read into the buffer pool and ibuf_merge_or_delete_for_page() modified that page or some change buffer pages, the flush loop would execute until the buffer pool really is in a clean state. This potential data corruption bug does not affect MariaDB Server 10.5 or later, thanks to commit b42294bc which removed change buffer merges that are not explicitly requested.
-
Sergei Golubchik authored
in normal execution, the item is wrapped in Item_func_conv_charset. in --ps the whole is wrapped again in Item_direct_ref_to_item
-
Sergei Golubchik authored
allow real_item() to be called for const Item*, remove casts in the code
-
Sergei Golubchik authored
"if not exists" must be stored in a separate read-only property
-
Sergei Golubchik authored
fix it for named constraints too
-
Rucha Deodhar authored
Analysis: Parsing json path happens only once. When paring, we set types of path (types_used) to use later. If the path type has range or wild card, only then multiple values get added to the result set. However for each row in the table, types_used still gets overwritten to default (no multiple values) and is also not set again (because path is already parsed). Since multiple values depend on the type of path, they dont get added to result set either. Fix: set default for types_used only if path is not parsed already.
-
Jan Lindström authored
galera_gcache_recover and galera_gcache_recover_manytrx grepping on error log is not always successful as messages might be in different order or contain different values galera_vote_sr We need to make sure required table creation has replicated as we use WSREP_ON=off
-
Daniele Sciascia authored
Fix `wsrep_init_gtid()` to avoid overwriting the domain id received during state transfer. Reviewed-by: Jan Lindström <jan.lindstrom@mariadb.com>
-
Jan Lindström authored
-
sjaakola authored
This commit changes backup execution (namely the block ddl phase), so that node is not paused from cluster. Instead, the following backup execution is declared as vulnerable for possible cluster level conflicts, especially with DDL statement applying. With this, the mariabackup execution may be aborted, if DDL statements happen during backup execution. This abortable backup execution is optional feature and may be enabled/disabled by wsrep_mode: BF_ABORT_MARIABACKUP. Note that old style node desync and pause, despite of WSREP_MODE_BF_MARIABACKUP is needed if node is operating as SST donor. Reviewed-by: Jan Lindström <jan.lindstrom@mariadb.com>
-
- 16 Jan, 2023 1 commit
-
-
Oleksandr Byelkin authored
-
- 15 Jan, 2023 1 commit
-
-
Daniel Black authored
-
- 14 Jan, 2023 2 commits
-
-
Jan Lindström authored
-
sjaakola authored
If two high priority threads have lock conflict, we look at the order of these transactions and honor the earlier transaction. for_locking parameter in lock_rec_has_to_wait() has become obsolete and it is now removed from the code . Reviewed-by: Jan Lindström <jan.lindstrom@mariadb.com>
-
- 13 Jan, 2023 12 commits
-
-
Monty authored
The problem was that federated engine does not support comparable rowids which was not taken into account by semijoin code. Fixed by checking that we don't use semijoin with tables that does not support comparable rowids. Other things: - Fixed some typos in the code comments
-
Monty authored
The reason things fails in 10.5 and above is that test_quick_select() returns -1 (impossible range) for empty tables if there are any conditions attached. This didn't happen in 10.4 as the cost for a range was more than for a table scan with 0 rows and get_key_scan_params() did not create any range plans and thus did not mark the range as impossible. The code that checked the 'impossible range' conditions did not take into account all cases of LEFT JOIN usage. Adding an extra check if the table is used with an ON condition in case of 'impossible range' fixes the issue.
-
sjaakola authored
The rather recent thd_need_ordering_with() function does not take high priority transactions' order in consideration. Chaged this funtion to compare also transaction seqnos and favor earlier transaction. Reviewed-by: Jan Lindström <jan.lindstrom@mariadb.com>
-
sjaakola authored
This commit contains only a mtr test for reproducing the issue in MDEV-29512 The actual fix will be pushed in wsrep-lib repository The hanging in MDEV-29512 happens when binlog purging is attempted, and there is one local BF aborted transaction waiting for commit monitor. The test will launch two node cluster and enable binlogging with expire log days, to force binlog purging to happen. A local transaction is executed so that will become BF abort victim, and has advanced to replication stage waiting for commit monitor for final cleanup (to mark position in innodb) after that, applier is released to complete the BF abort and due to binlog configuration, starting the binlog purging. This is where the hanging would occur, if code is buggy Reviewed-by: Jan Lindström <jan.lindstrom@mariadb.com>
-
sjaakola authored
Created mtr test for reproducing the crash Developed actual fix for the issue. Setting THD::system_thread_info.rpl_sql_info for replayer thread, same way as it is handled for appliers. Recorded test result, with the fix Reviewed-by: Jan Lindström <jan.lindstrom@mariadb.com>
-
sjaakola authored
Cluster conflict victim's THD is marked with wsrep_aborter. THD::wsrep_aorter holds the thread ID of the hight priority tread, which is currently carrying out BF aborting for this victim. However, the BF abort operation is not always successful, and in such case the wsrep_aborter mark should be removed. In the old code, this wsrep_aborter resetting did not happen, and this could lead to a situation where the sticky wsrep_aborter mark prevents any further attempt to BF abort this transaction. This commit fixes this issue, and resets wsrep_aborter after unsuccesful BF abort attempt. Reviewed-by: Jan Lindström <jan.lindstrom@mariadb.com>
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Daniel Black authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-