• unknown's avatar
    two-line fix for BUG#6732 "FLUSH TABLES WITH READ LOCK + COMMIT makes next... · 352ad815
    unknown authored
    two-line fix for BUG#6732 "FLUSH TABLES WITH READ LOCK + COMMIT makes next FLUSH...LOCK hang forever"
    (originally reported as "second run of innobackup hangs forever and can even hang server").
    Plus testcase for the bugfix and comments about global read locks.
    
    
    mysql-test/r/flush_block_commit.result:
      result update
    mysql-test/t/flush_block_commit.test:
      testing bugfix (originally: second run of innobackup hangs)
    sql/lock.cc:
      When we are in start_waiting_global_read_lock(), if we ourselves have
      the global read lock, there is nothing to start. This makes a pair with how 
      wait_if_global_read_lock() behaves when we ourselves have the global read lock.
      Previously, start_waiting_global_read_lock() decremented protect... whereas wait_if_global_read_lock()
      hadn't incremented it => very wrong => hangs.
      Descriptive comments on how global read lock works.
    352ad815
lock.cc 24.3 KB