• Marko Mäkelä's avatar
    MDEV-30400 Assertion height == btr_page_get_level(...) on INSERT · de4030e4
    Marko Mäkelä authored
    This also fixes part of MDEV-29835 Partial server freeze
    which is caused by violations of the latching order that was
    defined in https://dev.mysql.com/worklog/task/?id=6326
    (WL#6326: InnoDB: fix index->lock contention). Unless the
    current thread is holding an exclusive dict_index_t::lock,
    it must acquire page latches in a strict parent-to-child,
    left-to-right order. Not all cases of MDEV-29835 are fixed yet.
    Failure to follow the correct latching order will cause deadlocks
    of threads due to lock order inversion.
    
    As part of these changes, the BTR_MODIFY_TREE mode is modified
    so that an Update latch (U a.k.a. SX) will be acquired on the
    root page, and eXclusive latches (X) will be acquired on all pages
    leading to the leaf page, as well as any left and right siblings
    of the pages along the path. The DEBUG_SYNC test innodb.innodb_wl6326
    will be removed, because at the time the DEBUG_SYNC point is hit,
    the thread is actually holding several page...
    de4030e4
dict0stats.cc 137 KB