Comment 1 for bug 1395543

    This is caused by a race condition between purge (Thread 53) and
    LRU flushing (Thread 1).

    A plausible sequence leading to the crash:

    Thread 1 calls buf_LRU_free_page(bpage, false). bpage is an
    uncompressed frame of a compressed page. The code takes the page
    hash lock, calls buf_LRU_block_remove_hashed(bpage, false), which
    removes the page from the page hash and releases the hash lock.

    Then thread 53 takes the hash lock and calls buf_pool_watch_set
    for the same page. It does not find it in the page hash, unlocks
    the hash lock, locks all the hash locks, inserts a page into page
    hash, unlocks all but the original hash lock.

    Then thread 1 buf_LRU_free_page takes hash lock and the page
    mutex, finds the page in page_hash, crashes.

    Does not happen in upstream because there buf_pool_watch_set
    acquires the buffer pool mutex, rechecks page hash, and
    buf_LRU_free_page hold the buffer pool mutex throughout the race