maria-developers team mailing list archive
-
maria-developers team
-
Mailing list archive
-
Message #07222
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