• Michael Widenius's avatar
    Fix for MDEV-4009: main.delayed sporadically fails with "query 'REPLACE... · 396f4d62
    Michael Widenius authored
    Fix for MDEV-4009: main.delayed sporadically fails with "query 'REPLACE DELAYED t1 VALUES (5)' failed: 1317: Query execution was interrupted"
    - Fixed broadcast without a proper mutex
    - Don't break existing locks if we are just testing if we can get the lock
    
    mysql-test/r/create_delayed.result:
      Added test case for failures with INSERT DELAYED with CREATE and DROP TABLE
    mysql-test/t/create_delayed.test:
      Added test case for failures with INSERT DELAYED with CREATE and DROP TABLE
    sql/mdl.cc:
      Don't break existing locks for timeout=0 (ie, just check if there are conflicting locks).
      This fixed the bug that INSERT DELAYED didn't work properly with CREATE TABLE
    sql/sql_base.cc:
      One neads to hold the mutex before doing a mysql_cond_broadcast()
      This fixed the bug that INSERT DELAYED didn't work properly with DROP TABLE
    sql/sql_insert.cc:
      Protect setting of mysys_var->current_mutex.
    396f4d62
mdl.cc 86 KB