1. 27 May, 2011 4 commits
    • Dmitry Shulga's avatar
    • Tatjana Azundris Nuernberg's avatar
      c111ca4e
    • Dmitry Shulga's avatar
      Fixed bug#12546938 (formerly known as 61005) - CREATE IF NOT EXIST EVENT · 8bb8385f
      Dmitry Shulga authored
      will create multiple running events.
      
      A CREATE IF NOT EXIST on an event that existed and was enabled caused
      multiple instances of the event to run. Disabling the event didn't  help.
      If the event was  dropped, the event stopped running, but when created
      again, multiple instances of the event were still running. The only way
      to get out of this situation was  to restart the server.
      
      The problem was that Event_db_repository::create_event() didn't return
      enough information to discriminate between situation when event didn't
      exist and was created and when event did exist and was not created
      (but a warning was emitted). As result in the latter case event
      was added to in-memory queue of events second time. And this led to
      unwarranted multiple executions of the same event.
      
      The solution is to add out-parameter to Event_db_repository::create_event()
      method which will signal that event was not created because it already
      exists and so it should not be added to the in-memory queue.
      8bb8385f
    • Anitha Gopi's avatar
      Automerge : Updating local tree · 6a95f23b
      Anitha Gopi authored
      6a95f23b
  2. 26 May, 2011 11 commits
    • Dmitry Lenev's avatar
      Fix for bug #11762012 - "54553: INNODB ASSERTS IN · c61e346f
      Dmitry Lenev authored
      HA_INNOBASE::UPDATE_ROW, TEMPORARY TABLE, TABLE LOCK".
      
      Attempt to update an InnoDB temporary table under LOCK TABLES
      led to assertion failure in both debug and production builds
      if this temporary table was explicitly locked for READ. The
      same scenario works fine for MyISAM temporary tables.
      
      The assertion failure was caused by discrepancy between lock
      that was requested on the rows of temporary table at LOCK TABLES
      time and by update operation. Since SQL-layer requested a
      read-lock at LOCK TABLES time InnoDB engine assumed that upcoming
      statements which are going to be executed under LOCK TABLES will
      only read table and therefore should acquire only S-lock.
      An update operation broken this assumption by requesting X-lock.
      
      Possible approaches to fixing this problem are:
      
      1) Skip locking of temporary tables as locking doesn't make any
         sense for connection-local objects.
      2) Prohibit changing of temporary table locked by LOCK TABLES ...
         READ.
      
      Unfortunately both of these approaches have drawbacks which make
      them unviable for stable versions of server.
      
      So this patch takes another approach and changes code in such way
      that LOCK TABLES for a temporary table will always request write
      lock. In 5.5 version of this patch switch from read lock to write
      lock is done on SQL-layer.
      c61e346f
    • Dmitry Lenev's avatar
      Null-merged 5.1 version of fix for bug #11762012 - "54553: · f93dfd75
      Dmitry Lenev authored
      INNODB ASSERTS IN HA_INNOBASE::UPDATE_ROW, TEMPORARY TABLE,
      TABLE LOCK" into 5.5 tree. 5.5 version of fix will be
      committed and pushed separately.
      f93dfd75
    • Dmitry Lenev's avatar
      Fix for bug #11762012 - "54553: INNODB ASSERTS IN · d076be2a
      Dmitry Lenev authored
      HA_INNOBASE::UPDATE_ROW, TEMPORARY TABLE, TABLE LOCK".
      
      Attempt to update an InnoDB temporary table under LOCK TABLES
      led to assertion failure in both debug and production builds
      if this temporary table was explicitly locked for READ. The 
      same scenario works fine for MyISAM temporary tables.
      
      The assertion failure was caused by discrepancy between lock 
      that was requested on the rows of temporary table at LOCK TABLES
      time and by update operation. Since SQL-layer requested a 
      read-lock at LOCK TABLES time InnoDB engine assumed that upcoming
      statements which are going to be executed under LOCK TABLES will 
      only read table and therefore should acquire only S-lock.
      An update operation broken this assumption by requesting X-lock.
      
      Possible approaches to fixing this problem are:
      
      1) Skip locking of temporary tables as locking doesn't make any
         sense for connection-local objects.
      2) Prohibit changing of temporary table locked by LOCK TABLES ... 
         READ.
      
      Unfortunately both of these approaches have drawbacks which make 
      them unviable for stable versions of server.
      
      So this patch takes another approach and changes code in such way
      that LOCK TABLES for a temporary table will always request write
      lock. In 5.1 version of this patch switch from read lock to write
      lock is done inside of InnoDBs handler methods as doing it on 
      SQL-layer causes compatibility troubles with FLUSH TABLES WITH
      READ LOCK.
      d076be2a
    • Tatjana Azundris Nuernberg's avatar
      auto-merge Bug#11745920 · cc694af1
      Tatjana Azundris Nuernberg authored
      cc694af1
    • Sven Sandberg's avatar
      Merged BUG#12574820 from 5.1 to 5.5 · 6ffc69e0
      Sven Sandberg authored
      Two conflicts resolved manually:
      Text conflict in sql/log.cc
      Text conflict in sql/mysqld.cc
      6ffc69e0
    • Sven Sandberg's avatar
      BUG#12574820: binlog.binlog_tmp_table timing out in daily and weekly trunk run · b76c277a
      Sven Sandberg authored
      Problem: MYSQL_BIN_LOG::reset_logs acquires mutexes in wrong order.
      The correct order is first LOCK_thread_count and then LOCK_log. This function
      does it the other way around. This leads to deadlock when run in parallel
      with a thread that takes the two locks in correct order. For example, a thread
      that disconnects will take the locks in the correct order.
      Fix: change order of the locks in MYSQL_BIN_LOG::reset_logs:
      first LOCK_thread_count and then LOCK_log.
      b76c277a
    • Sergey Glukhov's avatar
      5.1 -> 5.5 merge · f52ff493
      Sergey Glukhov authored
      f52ff493
    • Sergey Glukhov's avatar
      Bug#12392636 ASSERTION FAILED: SCALE >= 0 && PRECISION > 0 && SCALE <= PRECISION · aa0c8235
      Sergey Glukhov authored
      Assertion happens due to missing NULL value check in
      Item_func_round::fix_length_and_dec() function.
      The fix: added NULL value check for second parameter.
      aa0c8235
    • Bjorn Munch's avatar
      merge from 5.5-mtr · edcb3b08
      Bjorn Munch authored
      edcb3b08
    • Tor Didriksen's avatar
      Don't check for FIONREAD on windows. · fa86ab02
      Tor Didriksen authored
      Execution of platforms tests are slow/flaky when building on windows.
      in PB:mysql-next-mr-opt-team on 2011-05-18 for win x86 debug_max, i see:
      -- Looking for FIONREAD
      -- Looking for FIONREAD - found
      and the build fails.
      fa86ab02
    • Anitha Gopi's avatar
  3. 25 May, 2011 8 commits
  4. 24 May, 2011 15 commits
  5. 23 May, 2011 2 commits
    • Luis Soares's avatar
      BUG#12558519 · ad826d22
      Luis Soares authored
      Automerged bzr bundle from bug report into latest mysql-5.5.
      ad826d22
    • Luis Soares's avatar
      BUG#12558519: RPL_TYPECONV PRODUCES VALGRIND STACK · d0f6fde3
      Luis Soares authored
      In RBR and in case of converting blob fields, the space allocated
      while unpacking into the conversion field was not freed after
      copying from it into the real field.
      
      We fix this by freeing the conversion field when the conversion
      table is not needed anymore (on close_tables_to_lock).
      d0f6fde3