- 03 Jan, 2024 7 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
srv_start(): Move a read only mode startup tweak from innodb_init_params() to the correct location. Also if innodb_force_recovery=6 we will disable the doublewrite buffer, because InnoDB must run in read-only mode to prevent further corruption. This change only affects debug checks. Whenever srv_read_only_mode holds, the buf_pool.flush_list will be empty, that is, there will be no writes of persistent InnoDB data pages. Reviewed by: Thirunarayanan Balathandayuthapani
-
Marko Mäkelä authored
-
Thirunarayanan Balathandayuthapani authored
- innodb.doublewrite_debug should avoid the checkpoint before killing the server. So used debug sync and innodb_flush_sync to avoid the checkpoint completely. Test case allowed to skip on MSAN builder due to extra checkpoint.
-
Marko Mäkelä authored
wsrep_plugin_init(), wsrep_plugin_deinit(): Remove these dummy functions in order to fix an error that would be flagged by cmake -DWITH_UBSAN=ON when using clang. wsrep_show_ready(), wsrep_show_bf_aborts(): Correct the signature.
-
Igor Babaev authored
If a query has a HAVING clause that contains a predicate with a constant IN subquery whose lef part in its turn is a subquery and the predicate is subject to pushdown from HAVING to WHERE then execution of the query could cause a crash of the server. The cause of the problem was the missing implementation of the walk() method for the class Item_in_optimizer. As a result in some cases the left operand of the Item_in_optimizer condition could be traversed twice by the walk procedure. For many call-back functions used as an argument of this procedure it does not matter. Yet it matters for the call-back function cleanup_excluding_immutables_processor() used in pushdown of predicates from HAVING to WHERE. If the processed item is marked with the IMMUTABLE_FL flag then the processor just removes this flag, otherwise it performs cleanup of the item making it unfixed. If an item is marked with an the IMMUTABLE_FL and it traversed with this processor twice then it becomes unfixed after the second traversal though the flag indicates that the item should not be cleaned up. Approved by Oleksandr Byelkin <sanja@mariadb.com>
-
- 02 Jan, 2024 1 commit
-
-
Marko Mäkelä authored
-
- 27 Dec, 2023 3 commits
-
-
Alexander Barkov authored
Problem: sp_cache erroneously looked up fully qualified SP names (e.g. `DB`.`SP`), in case insensitive style. It was wrong, because only the "name" part is always case insensitive, while the "db" part should be compared according to lower_case_table_names (case sensitively for 0, case insensitively for 1 and 2). Fix: Adding a "casedn_name" parameter make_qname() to tell if the name part should be lower cased: `DB1`.`SP` -> "DB1.SP" (when casedn_name=false) `DB1`.`SP` -> "DB1.sp" (when casedn_name=true) and using make_qname() with casedn_name=true when creating sp_cache hash lookup keys. Details: As a result, it now works as follows: - sp_head::m_db is converted to lower case if lower_case_table_names>0 during the sp_name initialization phase. So when make_qname() is called, sp_head::m_db is already normalized. There are no changes in here. - The initialization phase of sp_head when creating sp_head::m_qname now calls make_qname() with casedn_name=true, so sp_head::m_name gets written to sp_head::m_qname in lower case. - sp_cache_lookup() now also calls make_qname() with casedn_name=true, so sp_head::m_name gets written to the temporary lookup key in lower case. - sp_cache::m_hashtable now uses case sensitive comparison
-
Alexander Barkov authored
Part#1 A non-functional change Changing the signature of Identifier_chain2::make_qname() from bool make_qname(MEM_ROOT *mem_root, LEX_CSTRING *dst) const; to LEX_CSTRING make_qname(MEM_ROOT *mem_root) const; Now the result is returned as LEX_CSTRING from the function rather than is passed as a parameter. The return value {NULL,0} means "EOM".
-
Alexander Barkov authored
This is a requirement step to fix and merge easier MDEV-33019 The database part is not case sensitive in SP names The original MDEV-31991 commit commend: - Moving some of Database_qualified_name methods into a new class Identifier_chain2. - Changing the data type of the following variables from Database_qualified_name to Identifier_chain2: * q_pkg_proc in LEX::call_statement_start() * q_pkg_func in LEX::make_item_func_call_generic() Rationale: The data type of Database_qualified_name::m_db will be changed to Lex_ident_db soon. So Database_qualified_name won't be able to store the `pkg.routine` part of `db.pkg.routine` any more, because `pkg` must not depend on lower-case-table-names.
-
- 23 Dec, 2023 1 commit
-
-
Vladislav Vaintroub authored
-
- 22 Dec, 2023 5 commits
-
-
Vladislav Vaintroub authored
Marko reported DBUG_ASSERT from dict_stats_shutdown(). destroy_background_thd() does not like when current_thd is set. In galera, it can be the case, dict_stats_shutdown() can be called from user thread, to stop and later restart stats recalculations.
-
Daniele Sciascia authored
MDEV-31003 has introduced second execution for SELECTs that execute under ps-protocol. The following tests in galera suites do not support this mode of execution, disable it: galera.MDEV-27862 galera.galera_log_output_csv galera.galera_query_cache galera.galera_query_cache_sync_wait galera_3nodes_sr.GCF-336 galera_3nodes_sr.galera_sr_isolate_master galera_sr.galera_sr_large_fragment galera_sr.galera_sr_many_fragments Signed-off-by: Julius Goryavsky <julius.goryavsky@mariadb.com>
-
Yuchen Pei authored
-
Yuchen Pei authored
The merge e95bba9c missed it
-
Daniele Sciascia authored
Attempting to set a SAVEPOINT when one of the involved storage engines does not support savepoints, raises an error, and results in statement rollback. If Galera is enabled with binlog emulation, the above scenario was not handled correctly, and resulted in cluster wide inconsistency. The problem was in wsrep_register_binlog_handler(), which is called towards the beginning of SAVEPOINT execution. This function is supposed to mark the beginning of statement position in trx cache through `set_prev_position()`. However, it did so only on condition that `get_prev_position()` returns `MY_OFF_T_UNDEF`. This before statement position is typically reset to undefined at the end of statement in `binlog_commit()` / `binlog_rollback()`. However that's not the case with Galera and binlog emulation, for which binlog commit / rollback hooks are not called due to the optimization that avoids internal 2PC (MDEV-16509). Signed-off-by: Julius Goryavsky <julius.goryavsky@mariadb.com>
-
- 21 Dec, 2023 22 commits
-
-
sjaakola authored
This commit fixes GTID inconsistency which was injected by mariabackup SST. Donor node now writes new info file: donor_galera_info, which is streamed along the mariabackup donation to the joiner node. The donor_galera_info file contains both GTID and gtid domain_id, and joiner will use these to initialize the GTID state. Commit has new mtr test case: galera_3nodes.galera_gtid_consistency, which exercises potentially harmful mariabackup SST scenarios. The test has also scenario with IST joining. Signed-off-by: Julius Goryavsky <julius.goryavsky@mariadb.com>
-
Jan Lindström authored
Changes to be committed: modified: mysql-test/suite/galera/r/MW-388.result modified: mysql-test/suite/galera/r/MW-86-wait1.result modified: mysql-test/suite/galera/r/MW-86-wait8.result modified: mysql-test/suite/galera/r/galera_myisam_autocommit.result modified: mysql-test/suite/galera/r/galera_var_retry_autocommit.result modified: mysql-test/suite/galera/t/galera_myisam_autocommit.test These tests are run only using debug Galera library and changes are only test related. Signed-off-by: Julius Goryavsky <julius.goryavsky@mariadb.com>
-
Vladislav Vaintroub authored
If recalc_pool is not empty, dict_stats needs to be rescheduled. Also revert aff5ed39
-
Vladislav Vaintroub authored
Use static dict_stats_thd instead of creating/destroying it every time function is called.
-
Vladislav Vaintroub authored
-
tommijkl authored
Modified galera_sr.mysql-wsrep-features#165 test to be deterministic: Added one wait condition to catch execution state after --send command. Changed another wait condition to better match the execution state of the test thread. Signed-off-by: Julius Goryavsky <julius.goryavsky@mariadb.com>
-
Vladislav Vaintroub authored
dict_stats_schedule() is executed for --innodb-force-recovery=3+, but timer is not created.
-
Jan Lindström authored
Loopback interface might not be configured, thus do not test it. Signed-off-by: Julius Goryavsky <julius.goryavsky@mariadb.com>
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
We should treat CR_SERVER_LOST (2013) and CR_SSL_CONNECTION_ERROR (2026) interchangeably.
-
Vladislav Vaintroub authored
Timer has internal synchronization, so that calling set_time concurrently is not a problem.
-
Marko Mäkelä authored
galera_sr.MDEV-28971: Adjust the expected error code. This fixes up the merge commit 2b99e5f7
-
Marko Mäkelä authored
Correctly merge 1ac03fd9 (superceding a52cd4ae). Fixes up the merge commit fd0b47f9
-
Jan Lindström authored
AES block cipher mode CTR is available at the moment only from OpenSSL 1.0.1. Do not run this testcase using CTR combination if it is not available. Signed-off-by: Julius Goryavsky <julius.goryavsky@mariadb.com>
-
Jan Lindström authored
Could not reproduce and bug report is incomplete i.e. there is no error logs to analyze and 10.4 branch commit where failure was seen is not mentioned. Enable test to get more information. Signed-off-by: Julius Goryavsky <julius.goryavsky@mariadb.com>
-
Jan Lindström authored
Test case changes only to wait expected membership and streaming replication status. Signed-off-by: Julius Goryavsky <julius.goryavsky@mariadb.com>
-
Marko Mäkelä authored
-
Daniel Black authored
Silence a few more un-actionable warnings. Use ignoring result on write to make sure compilers don't complain.
-
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 1 commit
-
-
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.
-