• Monty's avatar
    Fixed shutdown crash in Aria that affects debug binaries · 81511b47
    Monty authored
    MDEV-18286 Assertion `pagecache->cnt_for_resize_op == 0' failed in
    check_pagecache_is_cleaned_up on server shutdown
    
    The reason for the crash is that the counter-of-pinned-pages in the
    Aria pagecache goes wrong.
    This only affects debug builds, as in these we do an assert on shutdown
    if the counter-of-pinned-pages is not 0 (some page was left pinned).
    
    The bug was that in 2 places in the page cache, when not succeeding to
    pin a page and a retry was made, the counter-of-pinned-pages counter was
    not properly adjusted.
    
    In the given test case, BLOCK_COMMIT flushed all Aria files. If a block was flushed at the same time the insert tried to access it, the insert would retry to get the block and that would cause the counter to go wrong.
    81511b47
ma_pagecache.c 175 KB