1. 15 Nov, 2011 2 commits
    • Nirbhay Choubey's avatar
      Bug#11827359 60223: MYSQL_UPGRADE PROBLEM WITH · 4df195a4
      Nirbhay Choubey authored
                          OPTION SKIP-WRITE-BINLOG
      
      System tables were not getting upgraded when
      mysql_upgrade was run with --skip-write-binlog
      option. (Same for --write-binlog.) Also, with
      this option, mysql_upgrade_info file was not
      getting created after the upgrade.
      
      mysql_upgrade makes use of mysql client tool in
      order to run upgrade scripts, while doing so it
      passes some of the command line options (used to
      start mysql_upgrade) directly to mysql client.
      The reason behind this bug being, some options
      like skip-write-binlog and upgrade-system-tables
      were being passed to mysql tool along with other
      options, and hence mysql execution failed due
      presence of these invalid options.
      
      Fixed this issue by filtering out the above mentioned
      options from the list of options that will be passed to
      mysql and mysqlcheck tools. However, since --write-binlog
      is supported by mysqlcheck, this option would be used
      explicitly while running mysqlcheck. (not part of patch,
      already there)
      
      Checking the contents of general log after the upgrade
      is not doable via an mtr test. So performed manual test.
      Added a test to verify the creation of mysql_upgrade_info.
      
      
      client/mysql_upgrade.c:
        Bug#11827359 60223: MYSQL_UPGRADE PROBLEM WITH
                            OPTION SKIP-WRITE-BINLOG
        
        With this patch, --upgrade-system-tables and
        --write-binlog options will not be added to the
        list of options, used to start mysql and mysqlcheck
        tools.
      mysql-test/r/mysql_upgrade.result:
        Added a testcase for Bug#11827359.
      mysql-test/t/mysql_upgrade.test:
        Added a testcase for Bug#11827359.
      4df195a4
    • Tor Didriksen's avatar
      Bug#13261955 TRUNCATE(DBL_MAX) RETURNS DBL_MAX RATHER THAN 'INF' · 38138943
      Tor Didriksen authored
      my_double_round(DBL_MAX, -12, ....)
      should return 'inf' rather than DBL_MAX
      
      The problem is that floor(value/tmp) * tmp
      is inlined, and optimized away.
      
      The solution seems to be to prevent inlining by pre-computing value/tmp and
      storing it in a variable.
      
      No new test case: main.type_float fails without this patch.
      38138943
  2. 11 Nov, 2011 2 commits
  3. 10 Nov, 2011 8 commits
    • Marko Mäkelä's avatar
      Merge mysql-5.1 to mysql-5.5. · d8bce94a
      Marko Mäkelä authored
      d8bce94a
    • Marko Mäkelä's avatar
      Bug #12842206 INNODB LOCKING REGRESSION FOR INSERT IGNORE: Add a test case. · 8c886b3b
      Marko Mäkelä authored
      The bug was accidentally fixed by fixing
      Bug#11759688 52020: InnoDB can still deadlock on just INSERT...ON DUPLICATE KEY
      a.k.a. the reintroduction of
      Bug#7975 deadlock without any locking, simple select and update
      8c886b3b
    • Sneha Modi's avatar
      Bug#11748731 - 37248: SOME 'BIG' TESTS FAILING ON 6.0: · a9150f00
      Sneha Modi authored
      alter_treable-big.test was failing due to the use of RAND() function which is no more 
      replication safe.
      This has been modified using static values.
      
      Also, 'sleep' has been replaced using 'debug_sync' and the execution time of the 
      test has been reduced significantly.
      
      This test is now taken out of the disabled.def file and is being enabled.
      a9150f00
    • Marko Mäkelä's avatar
      Merge mysql-5.1 to mysql-5.5. · 1f746cb0
      Marko Mäkelä authored
      1f746cb0
    • Marko Mäkelä's avatar
      Bug#11759688 52020: InnoDB can still deadlock on just INSERT...ON DUPLICATE KEY · a0a51251
      Marko Mäkelä authored
      a.k.a. Bug#7975 deadlock without any locking, simple select and update
      
      Bug#7975 was reintroduced when the storage engine API was made
      pluggable in MySQL 5.1. Instead of looking at thd->lex directly, we
      rely on handler::extra(). But, we were looking at the wrong extra()
      flag, and we were ignoring the TRX_DUP_REPLACE flag in places where we
      should obey it.
      
      innodb_replace.test: Add tests for hopefully all affected statement
      types, so that bug should never ever resurface. This kind of tests
      should have been added when fixing Bug#7975 in MySQL 5.0.3 in the
      first place.
      
      rb:806 approved by Sunny Bains
      a0a51251
    • Sergey Vojtovich's avatar
      No commit message · 08d5cbf1
      Sergey Vojtovich authored
      No commit message
      08d5cbf1
    • Sergey Vojtovich's avatar
      BUG#11763882 - 56652: VALGRIND WARNINGS FOR MEMORY LEAK IN · cdb19df7
      Sergey Vojtovich authored
                            ALTER TABLE AND/OR PLUGIN/SEMISYNC
      
      If a plugin was uninstalled, thread local values for plugin
      variables of string type with PLUGIN_VAR_MEMALLOC flag were
      not freed.
      
      With this patch these variables are freed when thread is
      done (like all other variables).
      
      sql/sql_class.h:
        Added variable which stores memory hunks allocated
        for PLUGIN_VAR_MEMALLOC values.
      sql/sql_plugin.cc:
        Normally all memory allocated for dynamic variables values must
        be freed by cleanup_variables().
        
        But if a plugin was uninstalled, descriptors of it's system
        variables are lost. Still some memory may be occupied for thread
        local values. It is ok for most kinds of variables, as they're
        stored on dynamic_variables_ptr and freed when thread is done.
        
        Values for PLUGIN_VAR_MEMALLOC variables are stored separately.
        These lost values are handled by plugin_var_memalloc_free().
      cdb19df7
    • Sneha Modi's avatar
      Bug#11754170:45729: TEST CASE FOR BUG#28211 IS DISABLED IN QUERY_CACHE.TEST · b61c2e0b
      Sneha Modi authored
            
            A patch for this bug has already been pushed. A minor change is made here.
            The database to be used after re-enabling the disabled code is 'TEST'.
            But instead, 'MYSQL' was being used. 
            This is the minor change that is being made here.
      b61c2e0b
  4. 09 Nov, 2011 3 commits
  5. 08 Nov, 2011 4 commits
  6. 07 Nov, 2011 3 commits
    • Marko Mäkelä's avatar
      Merge mysql-5.1 to mysql-5.5. · 19b9de6b
      Marko Mäkelä authored
      19b9de6b
    • Marko Mäkelä's avatar
      Add debug assertions to catch Bug#13345378 earlier. · b003b629
      Marko Mäkelä authored
      In all callers of row_sel_convert_mysql_key_to_innobase(), assert
      that the converted key is empty or nonempty when it should be.
      b003b629
    • Marko Mäkelä's avatar
      Bug#13340047 LATCHING ORDER VIOLATION IN IBUF_SET_ENTRY_COUNTER() · 6852a326
      Marko Mäkelä authored
      ibuf_insert_low(), the only caller of ibuf_set_entry_counter(), will
      have latched an insert buffer bitmap page in bitmap_mtr before
      invoking ibuf_set_entry_counter(). The latching order forbids any
      further pages to be latched.
      
      ibuf_set_entry_counter(): Renamed to ibuf_get_entry_counter(),
      simplified the code and added comments.
      
      Added the following symbols for predefined field numbers in change
      buffer records:
      
      #define IBUF_REC_FIELD_SPACE	0	/*!< in the pre-4.1 format,
      					the page number. later, the space_id */
      #define IBUF_REC_FIELD_MARKER	1	/*!< starting with 4.1, a marker
      					consisting of 1 byte that is 0 */
      #define IBUF_REC_FIELD_PAGE	2	/*!< starting with 4.1, the
      					page number */
      #define IBUF_REC_FIELD_METADATA	3	/* the metadata field */
      #define IBUF_REC_FIELD_USER	4	/* first user field */
      
      rb:802 approved by Sunny Bains
      6852a326
  7. 04 Nov, 2011 1 commit
  8. 03 Nov, 2011 5 commits
  9. 02 Nov, 2011 3 commits
  10. 01 Nov, 2011 2 commits
  11. 31 Oct, 2011 2 commits
  12. 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
  13. 27 Oct, 2011 3 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