• Vlad Lesin's avatar
    MDEV-28709 unexpected X lock on Supremum in READ COMMITTED · 8128a468
    Vlad Lesin authored
    The lock is created during page splitting after moving records and
    locks(lock_move_rec_list_(start|end)()) to the new page, and inheriting
    the locks to the supremum of left page from the successor of the infimum
    on right page.
    
    There is no need in such inheritance for READ COMMITTED isolation level
    and not-gap locks, so the fix is to add the corresponding condition in
    gap lock inheritance function.
    
    One more fix is to forbid gap lock inheritance if XA was prepared. Use the
    most significant bit of trx_t::n_ref to indicate that gap lock inheritance
    is forbidden. This fix is based on
    mysql/mysql-server@b063e52a8367dc9d5ed418e7f6d96400867e9f43
    8128a468
lock0lock.cc 190 KB