← Back to team overview

maria-developers team mailing list archive

Re: MDEV-5792 - Deadlock between SELECTs from METADATA_LOCK_INFO and another

 

Hi, Sergey!

On Apr 23, Sergey Vojtovich wrote:
> At lp:maria/10.0
> 
> ------------------------------------------------------------
> revno: 4155
> revision-id: svoj@xxxxxxxxxxx-20140423073406-o20n7jvwfjinvxxr
> parent: psergey@xxxxxxxxxxxx-20140418100754-v5b5sdqbavbcznh7
> committer: Sergey Vojtovich <svoj@xxxxxxxxxxx>
> branch nick: 10.0-mdev5792
> timestamp: Wed 2014-04-23 11:34:06 +0400
> message:
>   MDEV-5792 - Deadlock between SELECTs from METADATA_LOCK_INFO and another
>               I_S table
>   
>   mdl_iterate() helper function (which is used by the plugin to iterate mdl
>   locks) acquired mutexes in reverse order.
>   
>   Fixed by iterating MDL locks in two stages:
>   1. Iterate locks hash under the protection of hash mutex, store all
>      lock pointers in a thread local array and increment reference counter
>      for the lock.
>   2. Iterate local array without protection of hash mutex, handle destroyed
>      locks.
>   
>   It somewhat echoes hack in MDL_map_partition::move_from_hash_to_lock_mutex.

Looks ok to me.

Regards,
Sergei