-
Marko Mäkelä authored
The setting innodb_lock_schedule_algorithm=VATS that was introduced in MDEV-11039 (commit 021212b5) causes conflicting exclusive locks to be incorrectly granted to two transactions. Specifically, in lock_rec_insert_by_trx_age() the predicate !lock_rec_has_to_wait_in_queue(in_lock) would hold even though an active transaction is already holding an exclusive lock. This was observed between two DELETE of the same clustered index record. The HASH_DELETE invocation in lock_rec_enqueue_waiting() may be related. Due to lack of progress in diagnosing the problem, we will deprecate the option and issue a warning that using it may corrupt data. The unsafe option was enabled between commit 0c15d1a6 (MariaDB 10.2.3) and the parent of commit 1cc1d042 (MariaDB 10.2.17, 10.3.9).
295e2d50