- 22 Feb, 2021 2 commits
-
-
Sergei Golubchik authored
-
Daniel Bartholomew authored
-
- 18 Feb, 2021 4 commits
-
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
this should simplify run-time cluster management
-
Sergei Golubchik authored
-
- 17 Feb, 2021 1 commit
-
-
Sergei Golubchik authored
reset thd->lex->query_tables_own_last, because open_table() uses it and will try to dereference whatever garbage it might have
-
- 16 Feb, 2021 1 commit
-
-
Jan Lindström authored
For truncate we try to find out possible foreign key tables using open_tables. However, table_list was not cleaned up properly and there was no error handling. Fixed by cleaning table_list and adding proper error handling.
-
- 14 Feb, 2021 5 commits
-
-
Sergei Golubchik authored
wsrep_cluster_address_update() causes LOCK_wsrep_slave_threads to be locked under LOCK_wsrep_cluster_config, while normally the order should be the opposite. Fix: don't protect @@wsrep_cluster_address value with the LOCK_wsrep_cluster_config, LOCK_global_system_variables is enough. Only protect wsrep reinitialization with the LOCK_wsrep_cluster_config. And make it use a local copy of the global @@wsrep_cluster_address. Also, introduce a helper function that checks whether wsrep_cluster_address is set and also asserts that it can be safely read by the caller.
-
Monty authored
-
Monty authored
2 different problems: - MYSQL_BIN_LOG::write() did not check if mdl_context.acquire_lock() failed - Sql_cmd_optimize_table::execute() and Sql_cmd_repair_table::execute() called write_bin_log(), which could fail if sql_admin() had already called my_eof() Fixed by adding check for aquire_lock() return status and protect write_bin_log() in the above two functions with set_overwrite_status().
-
Monty authored
If a multi-update query was killed because of timeout or a kill statement, there was a chance the query returned the error "An error occurred in multi-table update" instead of the right error, like "Query execution was interrupted".
-
Vlad Lesin authored
MDEV-24792 Assertion `!newest_lsn || fil_page_get_type(page)' failed upon MariaBackup prepare in buf_flush_init_for_writing with innodb_log_optimize_ddl=off fsp_free_page() writes MLOG_INIT_FREE_PAGE, but does not update page type. But fil_crypt_rotate_page() checks the type to understand if the page is freshly initialized, and writes dummy record(updates space id) to force rotation during recovery. This dummy record causes assertion crash when the page is flushed after recovery, as it's supposed that pages LSN is 0 for freshly initialized pages. The bug is similiar to MDEV-24695, the difference is that in 10.5 the assertion crashes during log record applying, but in 10.4 it crashes during page flushing. The fix could be in marking page as freed and not writing dummy record during keys rotation procedure for such marked pages. But bpage->file_page_was_freed is not consistent enough for release builds in 10.4, and the issue is fixed in 10.5 and does not exist in 10.[23] as MLOG_INIT_FREE_PAGE was introduced since 10.4. So the better solution is just to relax the assertion and implement some additional property for freshly allocated pages, and check this property during pages flushing. The test is copied from MDEV-24695, the only change is in forcing pages flushing after each server start to cause crash in non-fixed code. There is no need to merge it to 10.5+, as the bug is already fixed by MDEV-24695.
-
- 13 Feb, 2021 1 commit
-
-
Jan Lindström authored
Null pointer reference to wsrep_provider_options variable. Fixed by adding condition and error handling.
-
- 12 Feb, 2021 7 commits
-
-
Sergei Golubchik authored
rarely (try --repeat 1000), the following happens: * from wsrep_bf_abort (when a thread is being killed), wsrep-lib starts streaming_rollback that wants to convert_streaming_client_to_applier. wsrep_create_streaming_applier creates a new THD(). All while the other THD is being killed, so under LOCK_thd_kill and LOCK_thd_data. In particular, THD::init() takes LOCK_global_system_variables under LOCK_thd_kill. * updating @@wsrep_slave_threads takes LOCK_global_system_variables and LOCK_wsrep_cluster_config (in that order) and invokes wsrep_slave_threads_update() that takes LOCK_wsrep_slave_threads * wsrep_replication_process() takes LOCK_wsrep_slave_threads and invokes wsrep_close_applier(), that does thd->set_killed() which takes LOCK_thd_kill. et voilà. As a fix I copied a workaround from wsrep_cluster_address_update() to wsrep_slave_threads_update(). It seems to be safe: without mutexes a race condition is possible and a concurrent SET might change wsrep_slave_threads, but wsrep_slave_threads_update() always verifies if there's a need to do something, so it will not run twice in this case, it'll be a no-op.
-
Sergei Golubchik authored
let the caller take the lock if needed
-
Sergei Golubchik authored
adaptation of 29bbcac0 for 10.4
-
Sergei Golubchik authored
-
Sergei Golubchik authored
* reuse the loop in THD::abort_current_cond_wait, don't duplicate it * find_thread_by_id should return whatever it has found, it's the caller's task not to kill COM_DAEMON (if the caller's a killer) and other minor changes
-
Elena Stepanova authored
Test code modifications and new failures from buildbot registered only for the main suite. The rest was updated partially, based on the status of existing JIRA items
-
Sergei Golubchik authored
Note, the fix for "MDEV-23328 Server hang due to Galera lock conflict resolution" was null-merged. 10.4 version of the fix is coming up separately
-
- 07 Feb, 2021 1 commit
-
-
Sergei Golubchik authored
partially revert 76063c2a. Item::clone() is not an all-purpose Item copying machine, it was specifically created for pushdown of predicates into derived tables and views and it does not copy everything. In particular, it does not copy Item_func_regex. Fix the bug differently by preserving the old constraint name. But keep setting automatic_name=true to have it regenerated for cases like ALTER TABLE ... ADD CONSTRAINT.
-
- 06 Feb, 2021 1 commit
-
-
Elena Stepanova authored
Test code modifications and new failures from buildbot registered only for the main suite. The rest was updated partially, based on the status of existing JIRA items
-
- 05 Feb, 2021 6 commits
-
-
Oleksandr Byelkin authored
-
Olivier Bertrand authored
-
Olivier Bertrand authored
-
Oleksandr Byelkin authored
Use size_t everywhere and remove suspicious expression.
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
- 02 Feb, 2021 5 commits
-
-
Sergei Golubchik authored
win
-
Sergei Golubchik authored
-
Oleksandr Byelkin authored
Fixed by the author in other way (char -> short) This reverts commit 496f7090.
-
Oleksandr Byelkin authored
-
Sergei Golubchik authored
Since 2017 (c2118a08) THD::awake() no longer requires LOCK_thd_data. It uses LOCK_thd_kill, and this latter mutex is used to prevent a thread of dying, not LOCK_thd_data as before.
-
- 01 Feb, 2021 6 commits
-
-
Olivier Bertrand authored
-
Sergei Golubchik authored
and it is that important to be run every time
-
Sergei Golubchik authored
-
Oleksandr Byelkin authored
-
Sergei Golubchik authored
-
Marko Mäkelä authored
innodb_shutdown(): Check that fil_system.temp_space is not null before invoking a member function. This regression was caused by the merge commit fa1aef39 of MDEV-24340 (commit 1eb59c30).
-