• Monty's avatar
    With parallel replication we have had a couple of bugs where DDL's · 98e36b29
    Monty authored
    (like DROP TABLE) has been scheduled before conflicting DDL's (like INSERT)
    are commited.
    
    What makes these bugs hard to detect is that in most cases any wrong
    schduling are caught by MDL locks. It's only when there are timing issues
    that the bugs (usually deadlocks) are noticed.
    
    This patch adds a DBUG_ASSERT() that detects, in parallel replication,
    if a DDL is scheduled before any depending DML'S are commited.
    It does this be checking if there are any conflicting replication locks
    when the DDL is about to wait for getting it's MDL lock.
    
    I also did some minor code cleanups in sql_base.cc to make this code
    similar to other related code.
    98e36b29
mdl.cc 96.9 KB