- 20 Dec, 2023 2 commits
-
-
Jan Lindström authored
Improve test case to wait until cluster membership is correct. Signed-off-by: Julius Goryavsky <julius.goryavsky@mariadb.com>
-
Sergei Petrunia authored
-
- 19 Dec, 2023 6 commits
-
-
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>
-
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
-
- 15 Dec, 2023 4 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.
-
Sergei Golubchik authored
followup for ad796aaa
-
- 14 Dec, 2023 2 commits
-
-
Sisi Huang authored
-
Sergei Golubchik authored
-
- 13 Dec, 2023 5 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)
-
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. Reviewed by: Thirunarayanan Balathandayuthapani Tested by: Matthias Leich
-
Daniel Black authored
Like all IF NOT EXISTS syntax, a Note should be generated. The original commit of Seqeuences cleared the IF NOT EXISTS part in the sql/sql_yacc.yy with lex->create_info.init(). Without this bit set there was no way it could do anything other than error. To remedy this removal, the sql_yacc.yy components have been minimised as they where all set at the beginning of the ALTER. This way the opt_if_not_exists correctly set the IF_EXISTS flag. In MDEV-13005 (bb4dd70e) the error code changed, requiring ER_UNKNOWN_SEQUENCES to be handled in the function No_such_table_error_handler::handle_condition.
-
- 12 Dec, 2023 11 commits
-
-
Daniel Black authored
Allow for a CI system to be almost out of space, or having so little use, that the Total space is the same as available or used. Thanks Otto Kekäläinen for the bug report and testing.
-
Sergei Glushchenko authored
MDEV-20286 mariabackup fails when innodb_max_dirty_pages_pct contains a fraction (is not an integer) This is a port of the Percona Server commit 5265f42e290573e9591f8ca28ab66afc051f89a3 which is the same as their bug PXB-1807: xtrabackup does not accept fractional values for innodb_max_dirty_pages_pct Problem: Variable specified as double in MySQL server, but read as long in the xtrabackup. This causes xtrabackup to fail at startup when the value contains decimal point. Fix: Make xtrabackup to interpret the value as double to be compatible with server.
-
Sergei Golubchik authored
calculate auto-inc value even if long duplicate check fails - this is what the engine does for normal uniques. auto-inc value is needed if it's a REPLACE
-
Sergei Golubchik authored
removed dead code
-
Sergei Golubchik authored
-
Marko Mäkelä authored
ha_innobase::check_if_supported_inplace_alter(): On ALTER_OPTIONS, if innodb_file_per_table=1 and the table resides in the system tablespace, require that the table be rebuilt (and moved to an .ibd file). Reviewed by: Thirunarayanan Balathandayuthapani Tested by: Matthias Leich
-
Marko Mäkelä authored
This test was using a sleep of 1 second in an attempt to ensure that the timestamp that is part of an InnoDB status string would increase. This not only prolongs the test execution time by 1+1 seconds, but it also is inaccurate. It is possible that the actual sleep duration is less than a second. Let us wait for the creation of the file ib_buffer_pool and then wait for the buffer pool dump completion. In that way, the test can complete in a dozen or two milliseconds (1% of the previous duration) and work more reliably.
-
Daniele Sciascia authored
Add OPTION_GTID_BEGIN to applying side thread. This is needed to avoid intermediate commits when CREATE TABLE AS SELECT is applied, causing one more GTID to be consumed with respect to executing node. Signed-off-by: Julius Goryavsky <julius.goryavsky@mariadb.com>
-
Daniele Sciascia authored
Return an error if user attempts to use SEQUENCEs in combination with streaming replication in a Galera cluster. This is currently not supported. Signed-off-by: Julius Goryavsky <julius.goryavsky@mariadb.com>
-
Marko Mäkelä authored
row_import_read_meta_data(): Use ER_NOT_SUPPORTED_YET instead of ER_IO_READ_ERROR to have a matching error message pattern.
-
Yuchen Pei authored
The merge was 13dd7875
-
- 11 Dec, 2023 8 commits
-
-
Brandon Nesterenko authored
AKA rpl.rpl_parallel, binlog_encryption.rpl_parallel fails in buildbot with timeout in include A replication parallel worker thread can deadlock with another connection running SHOW SLAVE STATUS. That is, if the replication worker thread is in do_gco_wait() and is killed, it will already hold the LOCK_parallel_entry, and during error reporting, try to grab the err_lock. SHOW SLAVE STATUS, however, grabs these locks in reverse order. It will initially grab the err_lock, and then try to grab LOCK_parallel_entry. This leads to a deadlock when both threads have grabbed their first lock without the second. This patch implements the MDEV-31894 proposed fix to optimize the workers_idle() check to compare the last in-use relay log’s queued_count==dequeued_count for idleness. This removes the need for workers_idle() to grab LOCK_parallel_entry, as these values are atomically updated. Huge thanks to Kristian Nielsen for diagnosing the problem! Reviewed By: ============ Kristian Nielsen <knielsen@knielsen-hq.org> Andrei Elkin <andrei.elkin@mariadb.com>
-
Kristian Nielsen authored
Add a test case that demonstrates a working setup as described in MDEV-26632. This requires --gtid-ignore-duplicates=1 and --gtid-strict-mode=0. In A->B->C, B filters some (but not all) events from A. C is promoted to create A->C->B, and the current GTID position in B contains a GTID from A that is not present in C (due to filtering). Demonstrate that B can still connect with GTID to C, starting at the "hole" in the binlog stream on C originating from A. Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
-
Kristian Nielsen authored
Omit `state` when selecting processlist to verify which threads are running. The state changes as threads are running (enter_state()), and this causes sporadic test failures. Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
-
Kristian Nielsen authored
Make sure the old binlog dump thread is not still running when manipulating binlog files; otherwise there is a small chance it will see an invalid partial file and report an I/O error. Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
-
Marko Mäkelä authored
Let us remove a test that frequently fails with a result difference. This test had been added in fc279d7e to cover a bug in thd_destructor_proxy(), which was replaced with simpler logic in 5e62b6a5 (MDEV-16264).
-
Marko Mäkelä authored
The test was populating unnecessarily large tables and restarting the server several times for no real reason. Let us hope that a smaller version of the test will produce more stable results. Occasionally, some unencrypted contents in the table t2 was revealed in the old test.
-
Alexander Barkov authored
This problem was earlier fixed by: commit 55b27888 Adding MTR tests only.
-
Dmitry Shulga authored
MDEV-32965: Assertion `thd->active_stmt_arena_to_use()-> is_stmt_prepare_or_first_sp_execute() || thd->active_stmt_arena_to_use()-> is_conventional() || thd->active_stmt_arena_to_use()->state == Query_arena::STMT_SP_QUERY_ARGUMENTS' failed This patch fixes too strong condition in assert at the method Item_func_group_concat::fix_fields that is true in case of a stored routine and obviously broken for a prepared statement.
-