- 18 Dec, 2023 1 commit
-
-
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.
-
- 10 Dec, 2023 2 commits
-
-
Marko Mäkelä authored
The data type of the column INFORMATION_SCHEMA.GLOBAL_STATUS.VARIABLE_VALUE is a character string. Therefore, if we want to compare some values as integers, we must explicitly cast them to integer type, to avoid an awkward comparison where '10'<'9' because the first digit is smaller.
-
Alexander Barkov authored
It's not used in 10.5+
-
- 09 Dec, 2023 1 commit
-
-
Daniel Black authored
Also in the startup, lets not "Error" on attempting to install a mysql.plugin that is already there. We use the 'if_not_exists' parameter to true to downgrade this to a "Note". Also corrects: MDEV-32041 "plugin already loaded" should be a Warning, not an Error
-
- 08 Dec, 2023 3 commits
-
-
Marko Mäkelä authored
recv_recovery_from_checkpoint_start(): Relax a too strict debug assertion that occasionally fails in the test encryption.innodb-redo-nokeys when fil_ibd_load() returns FIL_LOAD_INVALID due to missing crypt_info. This assertion had been removed in MariaDB Server 10.8 as part of commit 685d958e (MDEV-14425).
-
Marko Mäkelä authored
buf_flush_page_cleaner(): Pass pct_lwm=srv_max_dirty_pages_pct_lwm (innodb_max_dirty_pages_pct_lwm) to page_cleaner_flush_pages_recommendation() unless the dirty page ratio of the buffer pool is below that. Starting with commit d4265fbd we used to always pass pct_lwm=0.0, which was not intended. Reviewed by: Vladislav Vaintroub
-
Yuchen Pei authored
-
- 07 Dec, 2023 3 commits
-
-
Brandon Nesterenko authored
Because --delete-master-logs immediately purges logs after flushing, it is possible the binlog dump thread would still be using the old log when the purge executes, disallowing the file from being deleted. This patch institutes a work-around in the test as follows: 1) temporarily stop the slave so there is no chance the old binlog is still being referenced. 2) set master_use_gtid=Slave_pos so the slave can still appear up-to-date on the master after the master flushes/purges its logs (while the slave is offline). Otherwise (i.e. if using binlog file/pos), the slave would point to a purged log file, and receive an error immediately upon connecting to the master. Reviewed By ============ Andrei Elkin <andrei.elkin@mariadb.com>
-
Thirunarayanan Balathandayuthapani authored
- Split the doublewrite test into two test (doublewrite, doublewrite_debug) to reduce the execution time of the test - Removed big_test tag for the newly added test case - Made doublewrite test as non-debug test - Added search pattern to make sure that InnoDB uses doublewrite buffer - Replaced all kill_mysqld.inc with shutdown_mysqld.inc and zero shutdown timeout - Removed the case where fsp_flags got corrupted. Because from commit 3da5d047 (MDEV-31851) onwards, doublewrite buffer removes the conversion the fsp flags from buggy 10.1 format Thanks to Marko Mäkelä for providing the non-debug test
-
Yuchen Pei authored
-