1. 13 Oct, 2010 3 commits
    • Jon Olav Hauglid's avatar
      Bug #55930 Assertion `thd->transaction.stmt.is_empty() || · 4eb32469
      Jon Olav Hauglid authored
                 thd->in_sub_stmt || (thd->state..
      
      OPTIMIZE TABLE is not directly supported by InnoDB. Instead,
      recreate and analyze of the table is done. After recreate,
      the table is closed and locks are released before the table
      is reopened and locks re-acquired for the analyze phase.
      
      This assertion was triggered if OPTIMIZE TABLE failed to
      acquire thr_lock locks before starting the analyze phase.
      The assertion tests (among other things) that there no
      active statement transaction. However, as part of acquiring
      the thr_lock lock, external_lock() is called for InnoDB
      tables and this causes a statement transaction to be started.
      If thr_multi_lock() later fails (e.g. due to timeout),
      the failure handling code causes this assert to be triggered.
      
      This patch fixes the problem by doing rollback of the
      current statement transaction in case open_ltable (used by
      OPTIMIZE TABLE) fails to acquire thr_lock locks.
      
      Test case added to lock_sync.test.
      4eb32469
    • Dmitry Lenev's avatar
      Fix for bug #57422 "rpl_row_sp003 sporadically fails under · 8007ef52
      Dmitry Lenev authored
      heavy load".
      
      rpl_row_sp003.test has sporadically failed when run on machine
      under heavy load or on slow hardware.
      
      This patch fixes races in the test which were causing these
      failures and also removes unnecessary 100 second wait from it. 
      8007ef52
    • Konstantin Osipov's avatar
  2. 12 Oct, 2010 4 commits
  3. 11 Oct, 2010 11 commits
  4. 10 Oct, 2010 2 commits
  5. 09 Oct, 2010 2 commits
    • 's avatar
      Manual merge · a667ce8e
      authored
      a667ce8e
    • 's avatar
      Bug#55375 Transaction bigger than max_binlog_cache_size crashes slave · b6682591
      authored
      When slave executes a transaction bigger than slave's max_binlog_cache_size,
      slave will crash. It is caused by the assert that server should only roll back
      the statement but not the whole transaction if the error ER_TRANS_CACHE_FULL 
      happens. But slave sql thread always rollbacks the whole transaction when
      an error happens.
                  
      Ather this patch, we always clear any error set in sql thread(it is different
      from the error in 'SHOW SLAVE STATUS') and it is cleared before rolling back
      the transaction.
      b6682591
  6. 08 Oct, 2010 15 commits
  7. 07 Oct, 2010 3 commits
    • Luis Soares's avatar
      e514a7a6
    • Davi Arnaut's avatar
      Bug#56822: Add a thread state for sessions waiting on the query cache lock · 76643a46
      Davi Arnaut authored
      The problem was that threads waiting on the query cache lock
      are not easily seen due to the lack of a state indicating that
      the thread is waiting on the said lock. This made it difficult
      for users to quickly spot (for example, via SHOW PROCESSLIST)
      a query cache contention problem.
      
      The solution is to update the thread state when the query cache
      lock needs to be acquired. Whenever the lock is to be acquired,
      the thread state is updated to "Waiting for query cache lock"
      and is reset once the lock is granted or the wait is interrupted.
      The intention is to make query cache related hangs more evident.
      
      To further investigate query cache related locking problems, one
      may use PERFORMANCE_SCHEMA to track the overhead associated with
      the locking bits and determine which particular lock is being a
      contention point.
      76643a46
    • Evgeny Potemkin's avatar
      Auto-merged. · 8fceaa38
      Evgeny Potemkin authored
      8fceaa38