1. 07 Dec, 2010 10 commits
    • Luis Soares's avatar
      BUG#46166 · 16b2ca1f
      Luis Soares authored
      Post merge fixes for mysql-5.5-bugteam.
      16b2ca1f
    • Luis Soares's avatar
      BUG#46166 · 26ee8f53
      Luis Soares authored
      Manual merge from mysql-5.1-bugteam into mysql-5.5-bugteam.
      
      Conflicts
      =========
      
      Text conflict in sql/log.cc
      Text conflict in sql/log.h
      Text conflict in sql/slave.cc
      Text conflict in sql/sql_parse.cc
      Text conflict in sql/sql_priv.h
      26ee8f53
    • Luis Soares's avatar
      BUG#46166 · ffc16a2d
      Luis Soares authored
      Post merge fix. In write_incident, check if binlog file is
      opened before actually trying to write the incident event.
      ffc16a2d
    • Luis Soares's avatar
      BUG#46166 · b1e163c2
      Luis Soares authored
      Automerged bzr bundle from bug report.
      b1e163c2
    • Luis Soares's avatar
      BUG#58416 · 209df6a6
      Luis Soares authored
      Null merge to from mysql-5.1-bugteam to mysql-5.5-bugteam.
      Test case does not exist in 5.5 tree.
      209df6a6
    • Luis Soares's avatar
      BUG#58416 · 3cecccff
      Luis Soares authored
      Automerging bzr bundle from bug report into latest 
      mysql-5.1-bugteam.
      3cecccff
    • Marc Alff's avatar
      Valgrind 3.5.0 cleanup, continued · 7f67060e
      Marc Alff authored
      7f67060e
    • Marc Alff's avatar
      Valgrind 3.5.0 cleanup · 2f228bd1
      Marc Alff authored
      2f228bd1
    • Nirbhay Choubey's avatar
      Bug#58139 : default-auth option not recognized in MySQL standard · e3922b8b
      Nirbhay Choubey authored
                  command line clients.
      
      Command line tools like mysqladmin and mysqldump did not recognize
      default-auth and plugin-dir options.
      
      Support for these options was found missing in these command line
      tools.
      
      Fixed by adding support for the same.
      
      
      client/mysqladmin.cc:
        Bug#58139 : default-auth option not recognized in MySQL standard
                    command line clients.
        
        Introduced two new variables to hold values from default-auth and
        plugin-dir options and further pushed them to client's st_mysql
        instance.
      client/mysqldump.c:
        Bug#58139 : default-auth option not recognized in MySQL standard
                    command line clients.
        
        Introduced two new variables to hold values from default-auth and
        plugin-dir options and further pushed them to client's st_mysql
        instance.
      mysql-test/r/plugin_auth.result:
        Added test case for Bug#58139.
      mysql-test/t/plugin_auth.test:
        Added test case for Bug#58139.
      e3922b8b
    • Jonathan Perkin's avatar
      bug#58766: Server binary was compiled without fast-mutexes · 5046dc16
      Jonathan Perkin authored
      Re-enable fast mutexes on Linux for release builds.
      5046dc16
  2. 06 Dec, 2010 1 commit
  3. 05 Dec, 2010 1 commit
  4. 03 Dec, 2010 4 commits
  5. 02 Dec, 2010 6 commits
  6. 01 Dec, 2010 15 commits
    • Mats Kindahl's avatar
      65faf729
    • Mattias Jonsson's avatar
      Bug#58147: ALTER TABLE w/ TRUNCATE PARTITION fails · 2737a722
      Mattias Jonsson authored
                 but the statement is written to binlog
      
      TRUNCATE PARTITION was written to the binlog
      even if it failed before calling any partition's
      truncate function.
      
      Solved by adding an argument to truncate_partition,
      to flag if it should be written to the binlog or not.
      
      It should be written to the binlog when a call to any
      partitions truncate function is done.
      
      mysql-test/r/partition_binlog.result:
        New result file
      mysql-test/t/partition_binlog.test:
        New test file, including DROP PARTITION binlog test
      sql/ha_partition.cc:
        Added argument to avoid binlogging failed truncate_partition that
        have not yet changed any data.
      sql/ha_partition.h:
        Added argument to avoid excessive binlogging
      sql/sql_partition_admin.cc:
        Avoid to binlog TRUNCATE PARTITION if it fails before
        any partition has tried to truncate.
      2737a722
    • Mats Kindahl's avatar
      9c87ae9b
    • Marc Alff's avatar
      Local merge · c2a655f0
      Marc Alff authored
      c2a655f0
    • Marc Alff's avatar
      Local merge · 4b86f399
      Marc Alff authored
      4b86f399
    • Marc Alff's avatar
      Local merge · 989e682b
      Marc Alff authored
      989e682b
    • Marc Alff's avatar
      Local merge · 9c5e4362
      Marc Alff authored
      9c5e4362
    • Mats Kindahl's avatar
      BUG#58246: INSTALL PLUGIN not secure & crashable · fc9f3efa
      Mats Kindahl authored
      When installing plugins, there is a missing check
      for slash (/) in the path on Windows. Note that on
      Windows, both / and \ can be used to separate
      directories.
      
      This patch fixes the issue by:
      - Adding a FN_DIRSEP symbol for all platforms
        consisting of a string of legal directory
        separators.
      - Adding a charset-aware version of strcspn().
      - Adding a check_valid_path() function that uses
        my_strcspn() to check if any FN_DIRSEP character
        is in the supplied string.
      - Using the check_valid_path() function in
        sql_plugin.cc and sql_udf.cc (which means
        replacing the existing test there).
      
      include/config-netware.h:
        Adding FN_DIRSEP
        ******
        Adding FN_DIRSEP
      include/config-win.h:
        Adding FN_DIRSEP
        ******
        Adding FN_DIRSEP
      include/m_ctype.h:
        Adding my_strspn() and my_strcspn().
        
        ******
        Adding my_strspn() and my_strcspn().
      include/my_global.h:
        Adding FN_DIRSEP
        ******
        Adding FN_DIRSEP
      mysql-test/t/plugin_not_embedded.test:
        Adding test that file names containing / is
        disallowed on *all* platforms.
        ******
        Adding test that file names containing / is
        disallowed on *all* platforms.
      sql/sql_plugin.cc:
        Introducing check_if_path() function for
        checking if filename is a path to include
        / on Windows.
        ******
        Introducing check_if_path() function for
        checking if filename is a path to include
        / on Windows.
      sql/sql_udf.cc:
        Switching to use check_if_path() function.
        ******
        Switching to use check_if_path() function.
      strings/my_strchr.c:
        Adding my_strspn() and my_strcspn().
        ******
        Adding my_strspn() and my_strcspn().
      fc9f3efa
    • Mikael Ronstrom's avatar
    • Marc Alff's avatar
      Bug#53696 Performance schema engine violates the PSEA API by calling my_error() · 4372875a
      Marc Alff authored
      This is a code cleanup.
      
      The implementation of a storage engine (subclasses of handler) is not supposed
      to call my_error() directly inside the engine implementation, 
      but only return error codes, and report errors later at the demand
      of the sql layer only (if needed), using handler::print_error().
      
      This fix removes misplaced calls to my_error(),
      and provide an implementation of print_error() instead.
      
      Given that the sql layer implementation of create table, ha_create_table(),
      does not use print_error() but returns ER_CANT_CREATE_TABLE directly,
      the return code for create table statements using the performance schema
      has changed to ER_CANT_CREATE_TABLE.
      
      Adjusted the test suite accordingly.
      4372875a
    • Marc Alff's avatar
      Bug#56618 Thread_ID is not assigned in ascending sequence (after disconnect) · ea35bf7a
      Marc Alff authored
      Before this fix, the test thread_cache failed with spurious failures.
      
      The test used:
      -- disconnect X
      -- connect Y
      
      while assuming that connection Y would reuse connection X slot in the thread cache.
      
      For this to happen, the disconnect X operation must be given enough time to complete,
      otherwise connect Y can be executed in the server before X actually finishes.
      
      This fix uses wait conditions to make the test execution more controlled,
      and more reproductible.
      ea35bf7a
    • Marc Alff's avatar
      Bug#58512 Performance_schema.myisam_file_io fails sporadically in PB2 · 639b2598
      Marc Alff authored
      Before this fix, the test myisam_file_io executed:
      - (a) an update on setup_instrument to disable non myisam file io instruments
      - (b) a truncate on events_waits_history_long
      and later
      - (c) a select on events_waits_history_long
      
      Surprisingly, events that were supposed to be disabled in (a) and removed in (b)
      still were found in (c).
      
      This happened for events such as 
        wait/io/file/innodb/innodb_data_file fil0fil.c: sync  
      because the sync was started before (a) and completed after (b),
      and as a consequence was added in the performance schema history, as expected.
      
      Presence of these records in the history made the test fail. 
      
      This fix makes the test script more robust to account for extra spill waits records in (c).
      639b2598
    • Marc Alff's avatar
      Bug#58621 perfschema.dml_ews_by_thread_by_event_name test failure · b1f25ee9
      Marc Alff authored
      This fix affects the test suite only.
      
      Before this fix, performance schema tests dml_*.test could
      fail with spurious failure, depending on the table content.
      
      This fix simplifies the SELECT tests in the dml_*.test scripts,
      to only verify that the SELECT operation passed the security checks
      and succeeded, which was the original intent of the test.
      
      Usage of 
        --replace_column 1 # 2 # 3 # 4 # ...
      to discard the test output was replaced by a simpler and more maintainable 
        --disable_result_log
      which also work for empty tables.
      b1f25ee9
    • Nirbhay Choubey's avatar
      Merging from mysql-5.1-bugteam · 45e17739
      Nirbhay Choubey authored
      45e17739
    • Nirbhay Choubey's avatar
      Additional fix for bug#54899 · 2d81ad5b
      Nirbhay Choubey authored
      Fixing the testcase to use the database name
      as connected_db instead of 'test' database.
      
      mysql-test/r/mysql.result:
        Additional fix in the test for bug#54899.
      mysql-test/t/mysql.test:
        Additional fix in the test for bug#54899.
      2d81ad5b
  7. 30 Nov, 2010 3 commits
    • Luis Soares's avatar
      BUG#46166: MYSQL_BIN_LOG::new_file_impl is not propagating error · 647c6193
      Luis Soares authored
                 when generating new name.
            
      If find_uniq_filename returns an error, then this error is not
      being propagated upwards, and execution does not report error to
      the user (although a entry in the error log is generated).
                        
      Additionally, some more errors were ignored in new_file_impl:
      - when writing the rotate event
      - when reopening the index and binary log file
                        
      This patch addresses this by propagating the error up in the
      execution stack. Furthermore, when rotation of the binary log
      fails, an incident event is written, because there may be a
      chance that some changes for a given statement, were not properly
      logged. For example, in SBR, LOAD DATA INFILE statement requires
      more than one event to be logged, should rotation fail while
      logging part of the LOAD DATA events, then the logged data would
      become inconsistent with the data in the storage engine.
      
      mysql-test/include/restart_mysqld.inc:
        Refactored restart_mysqld so that it is not hardcoded for
        mysqld.1, but rather for the current server.
      mysql-test/suite/binlog/t/binlog_index.test:
        The error on open of index and binary log on new_file_impl 
        is now caught. Thence the user will get an error message. 
        We need to accomodate this change in the test case for the
        failing FLUSH LOGS.
      mysql-test/suite/rpl/t/rpl_binlog_errors-master.opt:
        Sets max_binlog_size to 4096.
      mysql-test/suite/rpl/t/rpl_binlog_errors.test:
        Added some test cases for asserting that the error is found 
        and reported.
      sql/handler.cc:
        Catching error now returned by unlog (in ha_commit_trans) and 
        returning it.
      sql/log.cc:
        Propagating errors from new_file_impl upwards. The errors that
        new_file_impl catches now are:
        - error on generate_new_name
        - error on writing the rotate event
        - error when opening the index or the binary log file.
      sql/log.h:
        Changing declaration of:
        - rotate_and_purge
        - new_file
        - new_file_without_locking
        - new_file_impl
        - unlog
        They now return int instead of void.
      sql/mysql_priv.h:
        Change signature of reload_acl_and_cache so that write_to_binlog
        is an int instead of bool.
      sql/mysqld.cc:
        Redeclaring not_used var as int instead of bool.
      sql/rpl_injector.cc:
        Changes to catch the return from rotate_and_purge.
      sql/slave.cc:
        Changes to catch the return values for new_file and rotate_relay_log.
      sql/slave.h:
        Changes to rotate_relay_log declaration (now returns int 
        instead of void).
      sql/sql_load.cc:
        In SBR, some logging of LOAD DATA events goes through
        IO_CACHE_CALLBACK invocation at mf_iocache.c:_my_b_get. The
        IO_CACHE implementation is ignoring the return value for from
        these callbacks (pre_read and post_read), so we need to find out
        at the end of the execution if the error is set or not in THD.
      sql/sql_parse.cc:
        Catching the rotate_relay_log and rotate_and_purge return values.
        Semantic change in reload_acl_and_cache so that we report errors
        in binlog interactions through the write_to_binlog output parameter.
        If there was any failure while rotating the binary log, we should
        then report the error to the client when handling SQLCOMM_FLUSH.
      647c6193
    • Davi Arnaut's avatar
      2f0c4841
    • Davi Arnaut's avatar
      Bug#56760: my_atomics failures on osx10.5-x86-64bit · cfe8acb1
      Davi Arnaut authored
      The problem was due to a misuse of GCC asm constraints used to
      implement a atomic load. On x86_64, the load was implemented
      as a cmpxchg which implicitly uses the eax register as a
      source and destination operand, yet the dummy value used for
      comparison wasn't being properly loaded into eax (and other
      problems).
      
      The core problem is that cmpxchg is unnecessary as a load
      on x86_64 as there are other simpler instructions such
      as xadd. Even though, such instructions are only used to
      have a memory barrier as load and stores are atomic by
      definition. Hence, the solution is to explicitly issue the
      required CPU and compiler barriers.
      
      include/atomic/x86-gcc.h:
        Issue a synchronizing instruction before loading the value.
        Afterwards, issue a compiler barrier to prevent reordering.
      cfe8acb1