1. 29 Jul, 2010 2 commits
  2. 28 Jul, 2010 3 commits
  3. 26 Jul, 2010 1 commit
    • Davi Arnaut's avatar
      Bug#45377: ARCHIVE tables aren't discoverable after OPTIMIZE · ed434ce0
      Davi Arnaut authored
      The problem was that the optimize method of the ARCHIVE storage
      engine was not preserving the FRM embedded in the ARZ file when
      rewriting the ARZ file for optimization. The ARCHIVE engine stores
      the FRM in the ARZ file so it can be transferred from machine to
      machine without also copying the FRM -- the engine restores the
      embedded FRM during discovery.
      
      The solution is to copy over the FRM when rewriting the ARZ file.
      In addition, some initial error checking is performed to ensure
      garbage is not copied over.
      ed434ce0
  4. 28 Jul, 2010 1 commit
  5. 27 Jul, 2010 1 commit
  6. 26 Jul, 2010 5 commits
  7. 25 Jul, 2010 1 commit
    • Vladislav Vaintroub's avatar
      Cleanup after bild team push. · 99a26e0f
      Vladislav Vaintroub authored
      * Fixed obvious errors (HAVE_BROKEN_PREAD is not true for on any
      of systems we use, definitely not on HPUX)
      
      * Remove other junk flags for OSX and HPUX
      
      * Avoid checking type sizes in universal builds on OSX, again 
      (CMake2.8.0 fails is different architectures return different results)
      
      * Do not compile template instantiation stuff unless 
      EXPLICIT_TEMPLATE_INSTANTIATION is used.
      
      * Some cleanup (make gen_lex_hash simpler, avoid dependencies)
      
      * Exclude some unused files from compilation (strtol.c etc)
      99a26e0f
  8. 24 Jul, 2010 4 commits
  9. 23 Jul, 2010 11 commits
  10. 22 Jul, 2010 3 commits
    • Luis Soares's avatar
      BUG#55387: binlog.binlog_tmp_table crashes the server · 2773385d
      Luis Soares authored
                 sporadically
      
      There are two problems:
      
      1. When closing temporary tables, during the THD clean up - and
         after the session connection was already closed, there is a
         chance we can push an error into the THD diagnostics area, if
         the writing of the implicit DROP event to the binary log fails
         for some reason. As a consequence an assertion can be
         triggered, because at that point the diagnostics area is
         already set.
      
      2. Using push_warning with MYSQL_ERROR::WARN_LEVEL_ERROR is a 
         bug.
      
      Given that close_temporary_tables is mostly called from
      THD::cleanup - ie, with the session already closed, we fix
      problem #1 by allowing the diagnostics area to be
      overwritten. There is one other place in the code that calls
      close_temporary_tables - while applying Start_log_event_v3. To
      cover that case, we make close_temporary_tables to return the
      error, thus, propagating upwards in the stack.
      
      To fix problem #2, we replace push_warning with sql_print_error.
      2773385d
    • Vasil Dimov's avatar
    • Sunny Bains's avatar
      Remove code that was added during the flush list mutex refactoring. We cannot · b00f1560
      Sunny Bains authored
      release a dirty page in the middle of a mini-transaction. Replace the code
      with an assertion that checks for this condition.
      
      Original svn revision was: r6330.
      b00f1560
  11. 21 Jul, 2010 4 commits
    • Sunny Bains's avatar
      Bug#54583 InnoDB: Assertion failure sync/sync0sync.c:1226 · 7c6d9a94
      Sunny Bains authored
            
      Silence the UNIV_SYNC_DEBUG assertion failure while upgrading old data files
      to multiple rollback segments during server startup. Because the upgrade
      takes place while InnoDB is running a single thread, we can safely ignore the
      latching order checks without fearing deadlocks.
            
      innobase_start_or_create_for_mysql(): Set srv_is_being_started = FALSE
      only after trx_sys_create_rsegs() has completed.
            
      sync_thread_add_level(): If srv_is_being_started, ignore latching order
      violations for SYNC_TRX_SYS_HEADER and SYNC_IBUF_BITMAP.
      
      Create all the non-IO threads after creating the extra rollback segments.
      
      Patch originally from Marko with some additions by Sunny.
      7c6d9a94
    • Sunny Bains's avatar
      Bug 54617 - During shutdown: Failing assertion: arr->n_reserved == 0 · 043e9e24
      Sunny Bains authored
        
      Get rid of at least on suspicious path. Ensure that the purge thread
      doesn't acquire a mutex after it has signalled shutdown.
      043e9e24
    • Vasil Dimov's avatar
      Increment InnoDB version to 1.1.2 · 6a8e6ac4
      Vasil Dimov authored
      InnoDB 1.1.1 was released with MySQL 5.5.5-m3
      6a8e6ac4
    • Vasil Dimov's avatar
      Merge mysql-trunk-bugfixing -> mysql-trunk-innodb · 8152cd0a
      Vasil Dimov authored
      (resolving conflicts in mysql-test/suite/rpl/t/rpl_sync-slave.opt and
      configure.cmake)
      8152cd0a
  12. 20 Jul, 2010 3 commits
    • Calvin Sun's avatar
      Improve InnoDB synchronization primitives on Windows · abacbed6
      Calvin Sun authored
      This patch was originally developed by Vladislav Vaintroub.
      The main changes are:
      
       * Use TryEnterCriticalSection in os_fast_mutex_trylock().
       * Use lightweight condition variables on Vista or later Windows;
         but fall back to events on older Windows, such as XP.
      
      This patch also fixes the following bugs:
        bug# 52102 InnoDB Plugin shows performance drop compared to InnoDB
                   on Windows
        bug# 53204 os_fastmutex_trylock is implemented incorrectly on Windows
      
      rb://363 approved by Inaam Rana
      abacbed6
    • Matthias Leich's avatar
      Bug#53102 perfschema.pfs_upgrade fails on sol10 sparc64 max in parallel mode · 6a029cc5
      Matthias Leich authored
      The reason for the bug above is unclear but
      - Modify pfs_upgrade so that it's result is easier to analyze in case something fails
      - Fix several minor weaknesses which could cause that a successing test (either an
        already existing or a to be developed one) fails because of imperfect cleanup,
        too slow disconnected sessions etc.
      should either fix the bug or reduce it's probability or at least
      make the analysis of failures easier.
      6a029cc5
    • Davi Arnaut's avatar
      9e01fddb
  13. 23 Jul, 2010 1 commit
    • Davi Arnaut's avatar
      Bug#22320: my_atomic-t unit test fails · 3a22d332
      Davi Arnaut authored
      Bug#52261: 64 bit atomic operations do not work on Solaris i386
                 gcc in debug compilation
      
      One of the various problems was that the source operand to
      CMPXCHG8b was marked as a input/output operand, causing GCC
      to use the EBX register as the destination register for the
      CMPXCHG8b instruction. This could lead to crashes as the EBX
      register is also implicitly used by the instruction, causing
      the value to be potentially garbaged and a protection fault
      once the value is used to access a position in memory.
      
      Another problem was the lack of proper clobbers for the atomic
      operations and, also, a discrepancy between the implementations
      for the Compare and Set operation. The specific problems are
      described and fixed by Kristian Nielsen patches:
      
      Patch: 1
      
      Fix bugs in my_atomic_cas*(val,cmp,new) that *cmp is accessed
      after CAS succeds.
      
      In the gcc builtin implementation, problem was that *cmp was
      read again after atomic CAS to check if old *val == *cmp;
      this fails if CAS is successful and another thread modifies
      *cmp in-between.
      
      In the x86-gcc implementation, problem was that *cmp was set
      also in the case of successful CAS; this means there is a
      window where it can clobber a value written by another thread
      after successful CAS.
      
      Patch 2:
      
      Add a GCC asm "memory" clobber to primitives that imply a
      memory barrier.
      
      This signifies to GCC that any potentially aliased memory
      must be flushed before the operation, and re-read after the
      operation, so that read or modification in other threads of
      such memory values will work as intended.
      
      In effect, it makes these primitives work as memory barriers
      for the compiler as well as the CPU. This is better and more
      correct than adding "volatile" to variables.
      3a22d332