• Jon Olav Hauglid's avatar
    Bug #51391 Deadlock involving events during rqg_info_schema test · 4347e302
    Jon Olav Hauglid authored
    This was a deadlock between CREATE/ALTER/DROP EVENT and a query
    accessing both the mysql.event table and I_S.GLOBAL_VARIABLES.
    
    The root of the problem was that the LOCK_event_metadata mutex was
    used to both protect the "event_scheduler" global system variable
    and the internal event data structures used by CREATE/ALTER/DROP EVENT.
    
    The deadlock would occur if CREATE/ALTER/DROP EVENT held
    LOCK_event_metadata while trying to open the mysql.event table,
    at the same time as the query had mysql.event open, trying to
    lock LOCK_event_metadata to access "event_scheduler".
    
    This bug was fixed in the scope of Bug#51160 by using only
    LOCK_global_system_variables to protect "event_scheduler".
    This makes it so that the query above won't lock LOCK_event_metadata,
    thereby preventing this deadlock from occuring.
    
    This patch contains no code changes.
    Test case added to lock_sync.test.
    4347e302
lock_sync.test 7.04 KB