• Monty's avatar
    MDEV-10104 Table lock race condition with replication · fc25437a
    Monty authored
    Problem was two race condtion in Aria page cache:
    - find_block() didn't inform free_block() that it had released requests
    - free_block() didn't handle pinned blocks, which could happen if
      free_block() was called as part of flush. This is fixed by not freeing
      blocks that are pinned.  This is safe as when maria_close() is called
      when last thread is using a table, there can be no pinned blocks. For
      other flush calls it's safe to ignore pinned blocks.
    fc25437a
ma_pagecache.c 175 KB