- 16 Mar, 2018 14 commits
-
-
Marko Mäkelä authored
By definition, c_lock->trx->lock.wait_lock==c_lock cannot hold. That is, the owner transaction of a lock cannot be waiting for that particular lock. It must have been waiting for some other lock. Remove the dead code related to that. Also, test c_lock for NULLness only once.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Refactor lock_grant(). With innodb_lock_schedule_algorithm=VATS some callers were passing an incorrect parameter owns_trx_mutex to lock_grant(). lock_grant_after_reset(): Refactored from lock_grant(), without the call to lock_reset_lock_and_trx_wait(). lock_grant_have_trx_mutex(): A variant of lock_grant() where the caller already holds the lock->trx->mutex. The normal lock_grant() will acquire and release lock->trx->mutex. lock_grant(): Define as a wrapper that will acquire lock->trx->mutex.
-
Marko Mäkelä authored
lock_rec_queue_validate(): Restore some assertions. DeadlockChecker::select_victim(): Reduce the WSREP-related diff.
-
Marko Mäkelä authored
lock_table_create(): Move the WSREP parameter c_lock last, and make it NULL by default, to avoid the need for a wrapper function. lock_table_enqueue_waiting(): Move the WSREP parameter c_lock last.
-
Marko Mäkelä authored
This is a non-functional change.
-
Marko Mäkelä authored
Revert the dead code for MySQL 5.7 multi-master replication (GCS), also known as WL#6835: InnoDB: GCS Replication: Deterministic Deadlock Handling (High Prio Transactions in InnoDB). Also, make innodb_lock_schedule_algorithm=vats skip SPATIAL INDEX, because the code does not seem to be compatible with them. Add FIXME comments to some SPATIAL INDEX locking code. It looks like Galera write-set replication might not work with SPATIAL INDEX.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
The merge only covered 10.1 up to commit 4d248974. Actually merge the changes up to commit 0a534348. Also, remove the unused InnoDB field trx_t::abort_type.
-
Vicențiu Ciorbaru authored
-
Sergey Vojtovich authored
Eliminated last exit() call from libmysqld.
-
Thirunarayanan Balathandayuthapani authored
MDEV-14545 Backup fails due to MLOG_INDEX_LOAD record - Changed the unsupported_redo test case to avoid checkpoint - Inserting more rows in purge_secondary test case to display evict monitor.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Unlike commit a54abf01 claimed, the caller of THD::awake() may actually hold the InnoDB lock_sys->mutex. That commit introduced a deadlock of threads in the replication slave when running the test rpl.rpl_parallel_optimistic_nobinlog. lock_trx_handle_wait(): Expect the callers to acquire and release lock_sys->mutex and trx->mutex. innobase_kill_query(): Restore the logic for conditionally acquiring and releasing the mutexes. THD::awake() can be called from inside InnoDB while holding one or both mutexes, via thd_report_wait_for() and via wsrep_innobase_kill_one_trx().
-
- 15 Mar, 2018 18 commits
-
-
Galina Shalygina authored
the non-recursive CTE defined with UNION The problem appears as the columns of the non-recursive CTE weren't renamed. The renaming procedure was called for recursive CTEs only. To fix it in the procedure st_select_lex_unit::prepare With_element::rename_columns_of_derived_unit is called now for both CTEs: recursive and non-recursive.
-
Marko Mäkelä authored
ha_innobase::unlock_row(): Use a relaxed version of the trx_state_eq() debug assertion, because rr_unlock_row() may be invoked after an error has been already reported and the transaction has been rolled back.
-
Marko Mäkelä authored
By definition, c_lock->trx->lock.wait_lock==c_lock cannot hold. That is, the owner transaction of a lock cannot be waiting for that particular lock. It must have been waiting for some other lock. Remove the dead code related to that. Also, test c_lock for NULLness only once.
-
Marko Mäkelä authored
The caller of THD::awake() should never hold any InnoDB mutexes, so we can always acquire lock_sys->mutex and trx->mutex.
-
Jan Lindström authored
MDEV-13549 Fix and re-enable test galera.galera_var_slave_threads
-
Daniele Sciascia authored
Two changes were made to the test: 1) Suppress warning "Refusing exit for the last slave thread." This warning was already suppressed, but on the wrong node. 2) The test occasionally fails because it expects that the number of applier threads changes immediately after changing the value of ```variable wsrep_slave_threads```. Which is not true. This patch turns snippets like this: ``` SET GLOBAL wsrep_slave_threads = x; SELECT COUNT(*) = x FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user'; ``` Into proper wait_conditions: ``` SET GLOBAL wsrep_slave_threads = x; let $wait_condition = SELECT COUNT(*) = x FROM ...; --source include/wait_condition.inc ```
-
Thirunarayanan Balathandayuthapani authored
- Work around for MDEV-13942: Drop spatial index to avoid possible hang
-
Jan Lindström authored
MDEV-15540 fix for MTR tests using wsrep_recover.inc
-
Jan Lindström authored
MDEV-14144 Fix for MTR tests complaining "Query didn't return a result set"
-
Jan Lindström authored
-
Jan Lindström authored
MDEV-13549 Fix for test galera.galera_var_max_ws_rows
-
Jan Lindström authored
-
Jan Lindström authored
MDEV-13549 Fix and re-enable MTR test galera.MW-366
-
Jan Lindström authored
MDEV-13549 Fix and re-enable test galera.galera_bf_abort_for_update
-
Jan Lindström authored
MDEV-13549 Fix and re-enable test galera.MW-286
-
Daniele Sciascia authored
These tests were also subject to error "Wrong usage of mutex 'LOCK_wsrep_thd' and 'LOCK_thd_kill'".
-
Alexander Barkov authored
"mtr func_date_add" failed on 32-bit platforms. Removing a wrong case to "long". Both values[] and log_10_int[] are arrays of "ulonglong", no cast is needed.
-
Vicențiu Ciorbaru authored
-
- 14 Mar, 2018 8 commits
-
-
Sergei Golubchik authored
-
Sergei Golubchik authored
add the test case (the bug was fixed in d390e501)
-
Sergei Golubchik authored
Refactor get_datetime_value() not to create Item_cache_temporal(), but do it always in ::fix_fields() or ::fix_length_and_dec(). Creating items at the execution time doesn't work very well with virtual columns and check constraints that are fixed and executed in different THDs.
-
Sergei Golubchik authored
while it should look at the actual field_type() and use get_date() or get_time() as appropriate. test case is in the following commit.
-
Sergei Golubchik authored
-
Sergei Golubchik authored
Do not assume that it's always item->field_type() - this is not the case in temporal comparisons (e.g. when comparing DATETIME column with a TIME literal).
-
Sergei Golubchik authored
It's a generic function, not using anything from Arg_comparator. Make it a static function, not a class method, to be able to use it later without Arg_comparator
-
Sergei Golubchik authored
-