• unknown's avatar
    Fixed mutexes lock order in maria_close(): LOCK_trn_list ->... · 607e2a62
    unknown authored
    Fixed mutexes lock order in maria_close(): LOCK_trn_list -> MARIA_SHARE::intern_lock (then will be WL to revert the order).
    (BUG#40981 Maria: deadlock between checkpoint and maria_close() when freeing state info)
    
    storage/maria/ma_checkpoint.c:
      The argument added to the function to use it in maria_close().
    storage/maria/ma_close.c:
      Locking/unlocking MARIA_SHARE::intern_lock added to use correct order of the mutexes taking.
    storage/maria/ma_state.c:
      Removed assert becase now we have externally locked mutex in maria_close().
      The argument added to the _ma_remove_not_visible_states_with_lock() to use it in maria_close().
      _ma_remove_not_visible_states_with_lock() fixed tio be usable from maria_chk where transaction manager is not initialized.
    storage/maria/ma_state.h:
      The argument added to the function to use it in maria_close().
    storage/maria/maria_def.h:
      Fixed comment to the variable.
    storage/maria/trnman.c:
      The debugging assert added.
      New function to detect transaction manager initialization added (maria_chk do not initialize it).
    storage/maria/trnman_public.h:
      New function to detect transaction manager initialization added (maria_chk do not initialize it).
    607e2a62
ma_checkpoint.c 45.2 KB