• Marko Mäkelä's avatar
    MDEV-16119 InnoDB lock->index refers to a freed object after failed ADD INDEX · 4f42f0d1
    Marko Mäkelä authored
    The problem is hard to repeat, and I failed to create a deterministic
    test case. Online index creation creates stubs for to-be-created indexes.
    If index creation fails, we could remove these stubs while locks exist
    in the indexes. (This would require that the index creation was completed,
    and a concurrent DML operation acquired a lock on a record in the
    uncommitted index. If a duplicate key error occurs in an uncommitted
    index, the error will be reported for the CREATE UNIQUE INDEX, not for
    the DML operation that tried to insert the duplicate.)
    
    dict_table_try_drop_aborted(), row_merge_drop_indexes(): If transactional
    locks exist on the table, keep the table->indexes intact.
    4f42f0d1
dict0dict.cc 193 KB