1. 15 Mar, 2010 9 commits
    • Konstantin Osipov's avatar
      A post-review fix for type-aware metadata locks. · a9520bcf
      Konstantin Osipov authored
      DDL no longer aborts mysql_lock_tables(), and hence
      we no longer need to support need_reopen flag of this
      call. 
      Remove the flag, and all the code in the server
      that was responsible for handling the case when
      it was set. This allowed to simplify: 
      open_and_lock_tables_derived(), the delayed thread,
      multi-update.
      
      Rename MYSQL_LOCK_IGNORE_FLUSH to MYSQL_OPEN_IGNORE_FLUSH,
      since we now only support this flag in open_table().
      
      Rename MYSQL_LOCK_PERF_SCHEMA to MYSQL_LOCK_LOG_TABLE,
      to avoid confusion.
      
      Move the wait for the global read lock for cases
      when we do updates in SELECT f1() or DO (UPDATE) to 
      open_table() from mysql_lock_tables(). When waiting
      for the read lock, we could raise need_reopen flag,
      which is no longer present in mysql_lock_tables().
      Since the block responsible for waiting for GRL
      was moved, MYSQL_LOCK_IGNORE_GLOBAL_READ_LOCK
      was renamed to MYSQL_OPEN_IGNORE_GLOBAL_READ_LOCK.
      a9520bcf
    • Vladislav Vaintroub's avatar
      merge · 74211ed9
      Vladislav Vaintroub authored
      74211ed9
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-trunk. · 9cc2d776
      Alexander Nozdrin authored
      9cc2d776
    • Alexander Nozdrin's avatar
      A patch for Bug#52071 (rpl_ndb.rpl_ndb_ctype_ucs2_def fails). · fa2d2c18
      Alexander Nozdrin authored
      Use new command line options instead of deprecated and removed ones.
      fa2d2c18
    • Alexander Nozdrin's avatar
      d9a074e1
    • Magnus Blåudd's avatar
      Merge · a9541803
      Magnus Blåudd authored
      a9541803
    • Magnus Blåudd's avatar
      Merge in fix for bug#42589 · fda5004d
      Magnus Blåudd authored
      fda5004d
    • Jon Olav Hauglid's avatar
      Bug #51160 Deadlock around SET GLOBAL EVENT_SCHEDULER = ON|OFF · dd69b281
      Jon Olav Hauglid authored
      This deadlock could occour betweeen one connection executing
      SET GLOBAL EVENT_SCHEDULER= ON and another executing SET GLOBAL
      EVENT_SCHEDULER= OFF. The bug was introduced by WL#4738.
      
      The first connection would hold LOCK_event_metadata (protecting
      the global variable) while trying to lock LOCK_global_system_variables
      starting the event scheduler thread (in THD:init()).
      
      The second connection would hold LOCK_global_system_variables
      while trying to get LOCK_event_scheduler after stopping the event
      scheduler inside event_scheduler_update().
      
      This patch fixes the problem by not using LOCK_event_metadata to
      protect the event_scheduler variable. It is still protected using
      LOCK_global_system_variables. This fixes the deadlock as it removes 
      one of the two mutexes used to produce it.
      
      However, this patch opens up the possibility that the event_scheduler
      variable and the real event_scheduler state can become out of sync
      (e.g. variable = OFF, but scheduler running). But this can only
      happen under very unlikely conditions - two concurrent SET GLOBAL
      statments, with one thread interrupted at the exact wrong moment.
      This is preferable to having the possibility of a deadlock.
      
      This patch also fixes a bug where it was possible to exit create_event()
      without releasing LOCK_event_metadata if running out of memory during
      its exection.
      
      No test case added since a repeatable test case would have required
      excessive use of new sync points. Instead we rely on the fact that
      this bug was easily reproduceable using RGQ tests.
      dd69b281
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-trunk. · 27bb4377
      Alexander Nozdrin authored
      27bb4377
  2. 13 Mar, 2010 1 commit
  3. 12 Mar, 2010 8 commits
  4. 11 Mar, 2010 8 commits
  5. 10 Mar, 2010 14 commits