1. 21 Nov, 2011 3 commits
  2. 18 Nov, 2011 6 commits
  3. 17 Nov, 2011 3 commits
  4. 16 Nov, 2011 2 commits
  5. 15 Nov, 2011 5 commits
    • Dmitry Lenev's avatar
      Fix for bug#12695572 - "IMPROVE MDL PERFORMANCE IN PRE-VISTA · 082e0b95
      Dmitry Lenev authored
      BY CACHING OR REDUCING CREATEEVENT CALLS".
       
      5.5 versions of MySQL server performed worse than 5.1 versions 
      under single-connection workload in autocommit mode on Windows XP.
       
      Part of this slowdown can be attributed to overhead associated
      with constant creation/destruction of MDL_lock objects in the MDL
      subsystem. The problem is that creation/destruction of these
      objects causes creation and destruction of associated
      synchronization primitives, which are expensive on Windows XP.
       
      This patch tries to alleviate this problem by introducing a cache
      of unused MDL_object_lock objects. Instead of destroying such
      objects we put them into the cache and then reuse with a new
      key when creation of a new object is requested.
      
      To limit the size of this cache, a new --metadata-locks-cache-size
      start-up parameter was introduced.
      
      mysql-test/r/mysqld--help-notwin.result:
        Updated test after adding --metadata-locks-cache-size
        parameter.
      mysql-test/r/mysqld--help-win.result:
        Updated test after adding --metadata-locks-cache-size
        parameter.
      mysql-test/suite/sys_vars/r/metadata_locks_cache_size_basic.result:
        Added test coverage for newly introduced --metadata_locks_cache_size
        start-up parameter and corresponding global read-only variable.
      mysql-test/suite/sys_vars/t/metadata_locks_cache_size_basic-master.opt:
        Added test coverage for newly introduced --metadata_locks_cache_size
        start-up parameter and corresponding global read-only variable.
      mysql-test/suite/sys_vars/t/metadata_locks_cache_size_basic.test:
        Added test coverage for newly introduced --metadata_locks_cache_size
        start-up parameter and corresponding global read-only variable.
      sql/mdl.cc:
        Introduced caching of unused MDL_object_lock objects, in order to
        avoid costs associated with constant creation and destruction of
        such objects in single-connection workloads run in autocommit mode.
        Such costs can be pretty high on systems where creation and 
        destruction of synchronization primitives require a system call 
        (e.g. Windows XP).
         
        To implement this cache,a list of unused MDL_object_lock instances 
        was added to MDL_map object. Instead of being destroyed 
        MDL_object_lock instances are put into this list and re-used later 
        when creation of a new instance is required. Also added 
        MDL_lock::m_version counter to allow threads having outstanding 
        references to an MDL_object_lock instance to notice that it has 
        been moved to the unused objects list.
         
        Added a global variable for a start-up parameter that limits
        the size of the unused objects list.
         
        Note that we don't cache MDL_scoped_lock objects since they
        are supposed to be created only during execution of DDL 
        statements and therefore should not affect performance much.
      sql/mdl.h:
        Added a global variable for start-up parameter that limits the
        size of the unused MDL_object_lock objects list and constant
        for its default value.
      sql/sql_plist.h:
        Added I_P_List<>::pop_front() function.
      sql/sys_vars.cc:
        Introduced --metadata-locks-cache-size start-up parameter
        for specifying size of the cache of unused MDL_object_lock
        objects.
      082e0b95
    • Luis Soares's avatar
      BUG#11760927 · b6c0ed99
      Luis Soares authored
      Follow up to fix freebsd compile issue.
      b6c0ed99
    • Luis Soares's avatar
      BUG#11760927 · 5b6ef134
      Luis Soares authored
      Automerged approved bzr bundle in latest mysql-5.5.
      5b6ef134
    • 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
  6. 11 Nov, 2011 3 commits
    • unknown's avatar
      BUG#12929028: mysql_plugin : the --mysqld option is required, but not used · a2f757ea
      unknown authored
      This patch corrects a defect whereby the --mysqld, --my-print-defaults, 
      and --plugin-ini were required. These options are not required and the
      code has been fixed accordingly.
      a2f757ea
    • Luis Soares's avatar
      BUG#11760927: 53375: RBR + NO PK => HIGH LOAD ON SLAVE (TABLE · 8851022f
      Luis Soares authored
                    SCAN/CPU) => SLAVE FAILURE
      
      When a statement containing a large amount of ROWs to be applied on
      the slave, and the slave's table does not contain a PK, it can take a
      considerable amount of time to find and change all the rows that are
      to be changed.
      
      The proper slave enhancement will be implemented in WL 5597. However,
      in this bug we are making it clear to the user what the problem is, by
      printing a message to the error log if the execution time, for a given
      statement in RBR, takes more than LONG_FIND_ROW_THRESHOLD (set to 60
      seconds). This shall help the DBA to diagnose what's happening when
      facing a slave server that is quiet for no apparent reason...
      
      The note is only printed to the error log if log_warnings is set to be
      greater than 1.
      
      
      sql/log_event.cc:
        Core of the patch. 
        
        In Rows_log_event::do_apply_event, sets STMT start 
        timestamp.
        
        In Rows_log_event::find_row, if a PK is not used, then the start 
        timestamp is checked to see if the time spent on this STMT is enough
        to justify the printing of a note (only if it was not printed before).
      sql/log_event.h:
        Defining LONG_FIND_ROW_THRESHOLD.
      sql/rpl_rli.cc:
        Resets long_find_row state in rli->context_cleanup().
      sql/rpl_rli.h:
        Two new rli properties that are necessary to control when to
        emit a note in the error log: 1) timestamp that states when the
        ROW statement started; 2) flag indicating whether the note has
        been emitted for the current statement or not. Also deployed
        accessors.
      8851022f
    • Sneha Modi's avatar
      BUG#11748731 - 37248: SOME 'BIG' TESTS FAILING ON 6.0 : · e13d4c95
      Sneha Modi authored
      A change has been made in the sql/sql_table.cc file to include debug_sync.
      e13d4c95
  7. 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
  8. 09 Nov, 2011 3 commits
  9. 08 Nov, 2011 4 commits
  10. 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