1. 01 Nov, 2011 2 commits
  2. 31 Oct, 2011 2 commits
  3. 28 Oct, 2011 2 commits
    • Andrei Elkin's avatar
      BUG#11763573 · b3b1e4c7
      Andrei Elkin authored
      post-push fixes for show_slave_io_error= 1 of wait_for_slave_io_error.inc;
      Unix and win format path specifically so few tests have to change show_slave_io_error
      to zero.
      b3b1e4c7
    • Andrei Elkin's avatar
      merge from 5.5 to local tree. · c4f98591
      Andrei Elkin authored
      c4f98591
  4. 27 Oct, 2011 5 commits
    • Andrei Elkin's avatar
      Bug#11763573 - 56299: MUTEX DEADLOCK WITH COM_BINLOG_DUMP, BINLOG PURGE, AND PROCESSLIST/KILL · 95fdeb89
      Andrei Elkin authored
      The bug case is similar to one fixed earlier bug_49536.
      Deadlock involving LOCK_log appears to be possible because the purge running thread
      is holding LOCK_log whereas there is no sense of doing that and which fact was
      exploited by the earlier bug fixes.
      
      Fixed with small reengineering of rotate_and_purge(), adding two new methods and
      setting up a policy to execute those instead of the former
      rotate_and_purge(RP_LOCK_LOG_IS_ALREADY_LOCKED).
      The policy for using rotate(), purge() is that if the caller acquires LOCK_log itself,
      it should call rotate(), release the mutex and run purge().
      
      Side effect of this patch is refining error message of bug@11747416 to print
      the whole path.
      
      
      
      mysql-test/suite/rpl/r/rpl_cant_read_event_incident.result:
        the file name printing is changed to a relative path instead of just the file name.
      mysql-test/suite/rpl/r/rpl_log_pos.result:
        the file name printing is changed to a relative path instead of just the file name.
      mysql-test/suite/rpl/r/rpl_manual_change_index_file.result:
        the file name printing is changed to a relative path instead of just the file name.
      mysql-test/suite/rpl/r/rpl_packet.result:
        the file name printing is changed to a relative path instead of just the file name.
      mysql-test/suite/rpl/r/rpl_rotate_purge_deadlock.result:
        new result file is added.
      mysql-test/suite/rpl/t/rpl_cant_read_event_incident.test:
        The test of that bug can't satisfy windows and unix backslash interpretation so windows
        execution is chosen to bypass.
      mysql-test/suite/rpl/t/rpl_rotate_purge_deadlock-master.opt:
        new opt file is added.
      mysql-test/suite/rpl/t/rpl_rotate_purge_deadlock.test:
        regression test is added as well as verification of a 
        possible side effect of the fixes is tried.
      sql/log.cc:
        LOCK_log is never taken during execution of log purging routine.
        The former MYSQL_BIN_LOG::rotate_and_purge is made to necessarily 
        acquiring and releasing LOCK_log. 
        If caller takes the mutex itself it has to use a new rotate(), purge() 
        methods combination and to never let purge() be run with LOCK_log grabbed.
        
        
        
        split apart to allow
        the caller to chose either it
        Simulation of concurrently rotating/purging threads is added.
      sql/log.h:
        new rotate(), purge() methods are added to be used instead of
        the former rotate_and_purge(RP_LOCK_LOG_IS_ALREADY_LOCKED).
        rotate_and_purge() signature is changed. Caller should not call rotate_and_purge()
        but rather {rotate(), purge()} if LOCK_log is acquired by it.
      sql/rpl_injector.cc:
        changes to reflect the new rotate_and_purge() signature.
      sql/sql_class.h:
        unnecessary constants are removed.
      sql/sql_parse.cc:
        changes to reflect the new rotate_and_purge() signature.
      sql/sql_reload.cc:
        changes to reflect the new rotate_and_purge() signature.
      sql/sql_repl.cc:
        followup for bug@11747416: the file name printing is changed to a relative 
        path instead of just the file name.
      95fdeb89
    • Marko Mäkelä's avatar
      Merge mysql-5.1 to mysql-5.5. · bd71cfc4
      Marko Mäkelä authored
      bd71cfc4
    • Marko Mäkelä's avatar
      Bug #12884631 62146: TABLES ARE LOST FOR DDL · 1d9c841c
      Marko Mäkelä authored
      row_rename_table_for_mysql(): Return DB_ERROR instead of DB_SUCCESS
      when fil_rename_tablespace() returns an error. This bug was introduced
      in the InnoDB Plugin.
      
      Approved by Sunny Bains over IM.
      1d9c841c
    • Jimmy Yang's avatar
      Fix Bug #11835889 - INNODB ASSERTS ON BAD FILE READ, INDEX TRANSLATION · 93da3330
      Jimmy Yang authored
      TABLE ERROR, RECOVERY
                  
      rb://792 approved by Sunny Bains
      93da3330
    • Alexander Nozdrin's avatar
      Null-merge from mysql-5.1. · 1b7276ff
      Alexander Nozdrin authored
      1b7276ff
  5. 26 Oct, 2011 2 commits
  6. 24 Oct, 2011 2 commits
  7. 23 Oct, 2011 1 commit
    • Dmitry Lenev's avatar
      Fix for bug #13116518 - "OPEN_TABLES() SHOULD NOT ALLOCATE AND FREE · a656ff83
      Dmitry Lenev authored
      NEW_FRM_MEM WITHOUT NEEDING TO".
      
      During the process of opening tables for a statement, we allocated
      memory which was used only during view loading even in cases when the
      statement didn't use any views. Such an unnecessary allocation (and
      corresponding freeing) might have caused significant performance
      overhead in some workloads. For example, it caused up to 15% slowdown
      in a simple stored routine calculating Fibonacci's numbers.
      
      This memory was pre-allocated as part of "new_frm_mem" MEM_ROOT
      initialization at the beginning of open_tables(). 
      
      This patch addresses this issue by turning off memory pre-allocation
      during initialization for this MEM_ROOT. Now, memory on this root
      will be allocated only at the point when the first .FRM for a view is 
      opened.
      
      The patch doesn't contain a test case since it is hard to test the
      performance improvements or the absence of memory allocation in our
      test framework.
      a656ff83
  8. 22 Oct, 2011 1 commit
  9. 21 Oct, 2011 7 commits
  10. 20 Oct, 2011 1 commit
    • Sergey Vojtovich's avatar
      BUG#11757032 - 49030: OPTIMIZE TABLE BREAKS MYISAM TABLE WHEN · de8c70e7
      Sergey Vojtovich authored
                     USING MYISAM_USE_MMAP ON WINDOWS
      
      When OPTIMIZE/REPAIR TABLE is switching to new data file,
      old data file is removed while memory mapping is still
      active.
      
      With 5.1 implementation of nt_share_delete() it is not
      permitted to remove mmaped file.
      
      This fix disables memory mapping for mi_repair() operations.
      
      mysql-test/r/myisam.result:
        A test case for BUG#11757032.
      mysql-test/t/myisam.test:
        A test case for BUG#11757032.
      storage/myisam/ha_myisam.cc:
        mi_repair*() functions family use file I/O even if memory
        mapping is available.
        
        Since mixing mmap I/O and file I/O may cause various artifacts,
        memory mapping must be disabled.
      storage/myisam/mi_delete_all.c:
        Clean-up: do not attempt to remap file after truncate, since
        there is nothing to map.
      de8c70e7
  11. 19 Oct, 2011 4 commits
  12. 18 Oct, 2011 2 commits
  13. 17 Oct, 2011 2 commits
    • unknown's avatar
      BUG#12968567: mysql_plugin : incorrect return from bootstrap failure · 3c869a52
      unknown authored
      This patch corrects a defect whereby the bootstrap_server() method was
      returning 0 instead of the error code generated. The code has been changed to
      return the correct value returned from the bootstrap command.
      3c869a52
    • unknown's avatar
      BUG#12968815: mysql_plugin : disable requires plugin name but doesn't use it · d1846e3b
      unknown authored
      This patch corrects a defect in the building of the DELETE commands for
      disabling a plugin whereby only the original plugin data was deleted. If there
      were other plugins, the delete did not remove the rows. The code has been
      changed to remove all rows from the mysql.plugin table that were inserted when
      the plugin was loaded. The test has also been changed to correctly identify if
      all rows have been deleted.
      d1846e3b
  14. 14 Oct, 2011 1 commit
  15. 13 Oct, 2011 2 commits
  16. 12 Oct, 2011 4 commits
    • Sergey Glukhov's avatar
      automerge · 8a2286ba
      Sergey Glukhov authored
      8a2286ba
    • Sergey Glukhov's avatar
      Bug#11750518 41090: ORDER BY TRUNCATES GROUP_CONCAT RESULT · bd4785a6
      Sergey Glukhov authored
      When temporary tables is used for result sorting
      result field for gconcat function is created using
      group_concat_max_len size. It leads to result truncation
      when character_set_results is multi-byte character set due
      to insufficient tmp table field size.
      The fix is to increase temporary table field size for
      gconcat. Method make_string_field() is overloaded
      for Item_func_group_concat class and uses
      max_characters * collation.collation->mbmaxlen size for
      result field. max_characters is maximum number of characters
      what can fit into max_length size.
      
      
      mysql-test/r/ctype_utf16.result:
        test result
      mysql-test/r/ctype_utf32.result:
        test result
      mysql-test/r/ctype_utf8.result:
        test result
      mysql-test/t/ctype_utf16.test:
        test case
      mysql-test/t/ctype_utf32.test:
        test case
      mysql-test/t/ctype_utf8.test:
        test case
      sql/item.h:
        make Item::make_string_field() virtual
      sql/item_sum.cc:
        added Item_func_group_concat::make_string_field(TABLE *table) method
        which uses max_characters * collation.collation->mbmaxlen size for
        result item. max_characters is maximum number of characters what can
        fit into max_length size.
      sql/item_sum.h:
        added Item_func_group_concat::make_string_field(TABLE *table) method
      bd4785a6
    • Marko Mäkelä's avatar
      Merge mysql-5.1 to mysql-5.5. · 5dc19b9c
      Marko Mäkelä authored
      5dc19b9c
    • Marko Mäkelä's avatar
      Bug#13006367 62487: innodb takes 3 minutes to clean up the adaptive · 6d590649
      Marko Mäkelä authored
      hash index at shutdown
      
      btr_search_disable(): Just drop the entire adaptive hash index,
      without dropping every record separately.
      
      buf_pool_clear_hash_index(): Renamed and simplified from
      buf_pool_drop_hash_index(). Set block->index = NULL for every block in
      the buffer pool. Do not release the btr_search_latch. The caller will
      have to adjust other data structures.
      
      Remove block->is_hashed. It is redundant, should be always equal to
      block->index != NULL.
      
      Remove btr_search_fully_disabled, btr_search_enabled_mutex, and
      SYNC_SEARCH_SYS_CONF. We drop the AHI in one pass, without releasing
      the btr_search_latch in between.
      
      Replace void* with const rec_t* and add assertions on btr_search_latch
      and btr_search_enabled to ha0ha.h, ha0ha.ic, ha0ha.c.
      
      page_set_max_trx_id(): Ignore the adaptive hash index. I forgot to
      push this in rb:750.
      
      btr0sea.c: Always after acquiring btr_search_latch, check for
      block->index==NULL or !btr_search_enabled. We can now set
      block->index=NULL while only holding btr_search_latch in exclusive
      mode. Always acquire btr_search_latch before reading block->index,
      except in shortcuts when testing for block->index == NULL.
      
      ha_clear(), ha_search(): Unused function, remove.
      
      buf_page_peek_if_search_hashed(): Remove. This function may avoid
      latching a page at the cost of doing a duplicate buf_pool->page_hash
      lookup.
      
      rb:775 approved by Inaam Rana
      6d590649