- 15 Feb, 2021 2 commits
-
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
- 14 Feb, 2021 1 commit
-
-
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.
-
- 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
-
- 09 Feb, 2021 1 commit
-
-
Daniel Black authored
Was added in 10.5.2 (MDEV-21975)
-
- 08 Feb, 2021 4 commits
-
-
Monty authored
A few of the failures was because of missing sync_slave_to_master in the test suite. However, the biggest reason for most faulures was that in case of ALTER PARTITION the master writes the query to the binary log before it has updated the .frm and .par files. This causes a problem for an S3 slave as it will start execute the ALTER PARTITION but get old .frm and .par files from S3 which causes "open table" to fail, either with an error or in some case with a crash. Fixed
-
Monty authored
This allow one to remove some casts like: maria_data_root= (char *)"."; It also removes warnings from icc.
-
Monty authored
One should not change the program arguments! This change also reduces warnings from the icc compiler. Almost all changes are just syntax changes (adding const to 'get_one_option function' declarations). Other changes: - Added a few cast of 'argument' from 'const char*' to 'char *'. This was mainly in calls to 'external' functions we don't have control of. - Ensure that all reset of 'password command line argument' are similar. (In almost all cases it was just adding a comment and a cast) - In mysqlbinlog.cc and mysqld.cc there was a few cases that changed the command line argument. These places where changed to instead allocate the option in a MEM_ROOT to avoid changing the argument. Some of this code was changed to ensure that different programs did parsing the same way. Added a test case for the changes in mysqlbinlog.cc - Changed a few variables that took their value from command line options from 'char *' to 'const char *'.
-
Monty authored
-
- 07 Feb, 2021 3 commits
-
-
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.
-
Marko Mäkelä authored
The condition variables that were introduced in commit 7cffb5f6 (MDEV-23399) are never instrumented with PERFORMANCE_SCHEMA. Let us avoid the storage overhead and dead code.
-
Marko Mäkelä authored
-
- 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
-
- 03 Feb, 2021 1 commit
-
-
Monty authored
The test case was setting aria_sort_buffer_size to MAX_ULONGLONG-1 which was not handled gracefully by my_malloc() or safemalloc(). Fixed by ensuring that the malloc functions returns 0 if the size is too big. I also added some protection to Aria repair: - Limit sort_buffer_size to 16G (after that a bigger sort buffer will not help that much anyway) - Limit sort_buffer_size also according to sort file size. This will help by not allocating less memory if someone sets the buffer size too high.
-
- 02 Feb, 2021 6 commits
-
-
Sergei Golubchik authored
win
-
Thirunarayanan Balathandayuthapani authored
This is caused by commit c92f7e28(MDEV-8139). InnoDB fails to set the page status as FREED in buffer pool while freeing the extent.
-
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 8 commits
-
-
Vladislav Vaintroub authored
With the fix, new connection without THDs will now show NULL in thread_pool_queues.CONNECTION_ID.
-
Olivier Bertrand authored
-
Sergei Golubchik authored
filter out tpool
-
Marko Mäkelä authored
ha_innobase::commit_inplace_alter_table(): Fix a regression that was introduced in 6d1f1b61 (MDEV-24564).
-
Sergei Golubchik authored
and it is that important to be run every time
-
Sergei Golubchik authored
-
Oleksandr Byelkin authored
-
Sergei Golubchik authored
-