1. 16 Oct, 2010 2 commits
    • unknown's avatar
      Manual merge · 2a6adb10
      unknown authored
      2a6adb10
    • unknown's avatar
      Bug#56118 STOP SLAVE does not wait till trx with CREATE TMP TABLE ends, · 64fe07cc
      unknown authored
                replication aborts
      
      When recieving a 'SLAVE STOP' command, slave SQL thread will roll back the
      transaction and stop immidiately if there is only transactional table updated,
      even through 'CREATE|DROP TEMPOARY TABLE' statement are in it. But These
      statements can never be rolled back. Because the temporary tables to the user
      session mapping remain until 'RESET SLAVE', Therefore it will abort SQL thread
      with an error that the table already exists or doesn't exist, when it restarts
      and executes the whole transaction again.
      
      After this patch, SQL thread always waits till the transaction ends and then stops,
      if 'CREATE|DROP TEMPOARY TABLE' statement are in it.
      
      mysql-test/extra/rpl_tests/rpl_stop_slave.test:
        Auxiliary file which is used to test this bug.
      mysql-test/suite/rpl/t/rpl_stop_slave.test:
        Test case for this bug.
      sql/slave.cc:
        Checking if OPTION_KEEP_LOG is set. If it is set, SQL thread should wait
        until the transaction ends.
      sql/sql_parse.cc:
        Add a debug point for testing this bug.
      64fe07cc
  2. 14 Oct, 2010 2 commits
    • Alexander Nozdrin's avatar
      A patch for Bug#48874 (Test "is_triggers" fails because of wrong charset info). · 49a9df57
      Alexander Nozdrin authored
      The thing is that the following attributes are fixed (remembered) when a trigger
      is created:
        - character_set_client
        - character_set_results
        - collation_connection
      
      There are two triggers created in mysql-test/include/mtr_warnings.sql.
      They were created using "current default" character set / collation.
      is_triggers.test shows definition of these triggers including recorded
      character set information.
      
      The problem was that if "current default" changed, the recorded character
      set information was not accurate.
      
      There might be two ways to fix that:
        a) update is_triggers.test so that it does not put character-set information
           into result-file;
        b) update mtr_warnings.sql so that the triggers are created using
           hard-coded character sets.
      
      This patch implements option b).
      49a9df57
    • Davi Arnaut's avatar
      Bug#56096: STOP SLAVE hangs if executed in parallel with user sleep · c908dd31
      Davi Arnaut authored
      The root of the problem is that to interrupt a slave SQL thread
      wait, the STOP SLAVE implementation uses thd->awake(THD::NOT_KILLED).
      This appears as a spurious wakeup (e.g. from a sleep on a
      condition variable) to the code that the slave SQL thread is
      executing at the time of the STOP. If the code is not written
      to be spurious-wakeup safe, unexpected behavior can occur. For
      the reported case, this problem led to an infinite loop around
      the interruptible_wait() function in item_func.cc (SLEEP()
      function implementation).  The loop was not being properly
      restarted and, consequently, would not come to an end. Since the
      SLEEP function sleeps on a timed event in order to be killable
      and to perform periodic checks until the requested time has
      elapsed, the spurious wake up was causing the requested sleep
      time to be reset every two seconds.
      
      The solution is to calculate the requested absolute time only
      once and to ensure that the thread only sleeps until this
      time is elapsed. In case of a spurious wake up, the sleep is
      restarted using the previously calculated absolute time. This
      restores the behavior present in previous releases. If a slave
      thread is executing a SLEEP function, a STOP SLAVE statement
      will wait until the time requested in the sleep function
      has elapsed.
      
      mysql-test/extra/rpl_tests/rpl_start_stop_slave.test:
        Add test case for Bug#56096.
      mysql-test/suite/rpl/r/rpl_stm_start_stop_slave.result:
        Add test case result for Bug#56096.
      sql/item_func.cc:
        Reorganize interruptible_wait into a class so that the absolute
        time can be preserved across calls to the wait function. This
        allows the sleep to be properly restarted in the presence of
        spurious wake ups, including those generated by a STOP SLAVE.
      c908dd31
  3. 13 Oct, 2010 8 commits
  4. 12 Oct, 2010 3 commits
  5. 11 Oct, 2010 11 commits
  6. 10 Oct, 2010 2 commits
  7. 09 Oct, 2010 2 commits
    • unknown's avatar
      Manual merge · 9e7b8cbc
      unknown authored
      9e7b8cbc
    • unknown's avatar
      Bug#55375 Transaction bigger than max_binlog_cache_size crashes slave · 3ed0e521
      unknown authored
      When slave executes a transaction bigger than slave's max_binlog_cache_size,
      slave will crash. It is caused by the assert that server should only roll back
      the statement but not the whole transaction if the error ER_TRANS_CACHE_FULL 
      happens. But slave sql thread always rollbacks the whole transaction when
      an error happens.
                  
      Ather this patch, we always clear any error set in sql thread(it is different
      from the error in 'SHOW SLAVE STATUS') and it is cleared before rolling back
      the transaction.
      
      
      mysql-test/suite/rpl/r/rpl_binlog_max_cache_size.result:
        SET binlog_cache_size and max_binlog_cache_size for all test cases.
        Add test case for bug#55375.
      mysql-test/suite/rpl/t/rpl_binlog_max_cache_size-master.opt:
        binlog_cache_size and max_binlog_cache_size can be set in the client connection.
        so remove this option file.
      mysql-test/suite/rpl/t/rpl_binlog_max_cache_size.test:
        SET binlog_cache_size and max_binlog_cache_size for all test cases.
        Add test case for bug#55375.
      sql/log_event.cc:
        Some functions don't return the error code, so it is a wrong error code.
        The error should always be set into thd->main_da. So we use 
        slave_rows_error_report to report the right error.
      sql/slave.cc:
        exec_relay_log_event() need call cleanup_context() to clear context. 
        clearup_context() will call end_trans().
                
        Clear thd's error before cleanup_context. It avoid to trigger the assert
        which cause this bug.
      3ed0e521
  8. 08 Oct, 2010 10 commits
    • Davi Arnaut's avatar
      Bug#45288: pb2 returns a lot of compilation warnings on linux · 6ead0ea6
      Davi Arnaut authored
      Fix assorted compiler warnings.
      
      sql/mysqld.cc:
        Do not declare max_page_size twice. If large pages support
        is enabled, the code expects the size in max_desired_page_size.
      storage/innobase/include/ibuf0ibuf.h:
        Remove trailing comma. Only present in C99.
        
        Approved by: Vasil (via IRC)
      storage/innobase/include/row0row.h:
        Remove trailing comma. Only present in C99.
        
        Approved by: Vasil (via IRC)
      strings/my_vsnprintf.c:
        No need to assert the obvious.
      6ead0ea6
    • Alexander Barkov's avatar
      The fix for · 3be64d25
      Alexander Barkov authored
       Bug#55744 GROUP_CONCAT + CASE + ucs return garbage
      revealed problems in how character set aggregation
      code works with prepared statements.
      
      This patch fixes (hopefully) the problems.
      3be64d25
    • Davi Arnaut's avatar
      Bug#42733: Type-punning warnings when compiling MySQL -- strict aliasing violations. · 8f53d3a9
      Davi Arnaut authored
      Due to the extent of aliasing violations in the MySQL source
      code, at this time it is safer to disable strict aliasing related
      optimizations in release builds.
      
      As of this patch, only GCC enables strict aliasing by default.
      Hence, use the -fno-strict-aliasing option to disable the
      aliasing rules.
      
      cmake/build_configurations/mysql_release.cmake:
        Add -fno-strict-aliasing to release builds.
      8f53d3a9
    • Mats Kindahl's avatar
      Merging with mysql-5.5-bugteam. · 26d3e108
      Mats Kindahl authored
      26d3e108
    • Mats Kindahl's avatar
      WL#5363: Thread Pool Service Interface · 710c5811
      Mats Kindahl authored
      Adding a comment to scheduler_types on
      the default values used.
      710c5811
    • Mats Kindahl's avatar
      Bug #57338: Extreneous server variable thread_pool_size · bdd2d574
      Mats Kindahl authored
      The server contained code for the server variable and
      option thread_pool_size, but this server variable where
      not used anywhere.
      
      The variable is probably remains from backporting too
      much from 6.0 (specifically, the thread pool
      implementation was not backported from 6.0, which this
      variable is associated with).
      
      This patch eliminates the variable from the server.
      bdd2d574
    • Davi Arnaut's avatar
      Bug#56822: Add a thread state for sessions waiting on the query cache lock · 8cc8930f
      Davi Arnaut authored
      Only wait for a single debug signal at a time as the signal state
      is global. Also, do not activate the query cache debug sync points
      if the thread has no associated THD session.
      
      mysql-test/t/query_cache_debug.test:
        Only wait for a single debug signal at a time as the signal state
        is global.
      sql/sql_cache.cc:
        Do not execute the debug sync point if the thread has no associated
        THD session. This scenario happens for federated threads.
      8cc8930f
    • Tor Didriksen's avatar
      Bug#57209 valgrind + Assertion failed: dst > buf · 12b8fb96
      Tor Didriksen authored
      Buffer overrun when trying to format DBL_MAX
      
      
      mysql-test/r/func_math.result:
        Add test case for Bug#57209
      mysql-test/t/func_math.test:
        Add test case for Bug#57209
      sql/item_strfunc.cc:
        Allocate a larger buffer for the result.
      12b8fb96
    • Vasil Dimov's avatar
      Adjust results files after innodb_file_per_table became 0. · f1e2a7aa
      Vasil Dimov authored
      In calvin.sun@oracle.com-20101005183830-p81bemgffq8l2en9 the default
      value of innodb_file_per_table was changed from 1 to 0.
      f1e2a7aa
    • Sergey Vojtovich's avatar
      Fixed plugin_load_option failure, when example storage · 0fe0e6b5
      Sergey Vojtovich authored
      engine is not available. We need to add loose prefix
      to example load option.
      0fe0e6b5