1. 23 Sep, 2010 1 commit
  2. 21 Sep, 2010 2 commits
  3. 17 Sep, 2010 4 commits
  4. 15 Sep, 2010 2 commits
    • Marc Alff's avatar
      Bug#56761 Segfault on CHECKSUM TABLE performance_schema.EVENTS_WAITS_HISTORY EXTENDED · 623863fd
      Marc Alff authored
      Before this fix, the server could crash inside a memcpy when reading data
      from the EVENTS_WAITS_CURRENT / HISTORY / HISTORY_LONG  tables.
      
      The root cause is that the length used in a memcpy could be corrupted,
      when another thread writes data in the wait record being read.
      Reading unsafe data is ok, per design choice, and the code does sanitize
      the data in general, but did not sanitize the length given to memcpy.
      
      The fix is to also sanitize the schema name / object name / file name
      length when extracting the data to produce a row.
      623863fd
    • Olav Sandstaa's avatar
      Fix for Bug#54478 "mysqld crashes during boot when running mtr with --debug option" · 77844bd1
      Olav Sandstaa authored
            
      The crash during boot was caused by a DBUG_PRINT statement in fill_schema_schemata() (in
      sql_show.cc). This DBUG_PRINT statement contained several instances of %s in the format 
      string and for one of these we gave a NULL pointer as the argument. This caused the
      call to vsnprintf() to crash when running on Solaris.
            
      The fix for this problem is to replace the call to vsnprintf() with my_vsnprintf()
      which handles that a NULL pointer is passed as argumens for %s.
      
      This patch also extends my_vsnprintf() to support %i in the format string.
      
      dbug/dbug.c:
        Replace the use of vsnprintf() with my_vsnprintf(). On some platforms
        vsnprintf() did not handle that a NULL pointer was given as an argument
        for a %s in the format string.
      include/mysql/service_my_snprintf.h:
        Add support for %i in format string to my_vsnprintf().
      strings/my_vsnprintf.c:
        Add support for %i in format string to my_vsnprintf().
      unittest/mysys/my_vsnprintf-t.c:
        Add unit tests for %i in format string to my_vsnprintf().
      77844bd1
  5. 14 Sep, 2010 1 commit
  6. 13 Sep, 2010 1 commit
  7. 10 Sep, 2010 1 commit
  8. 09 Sep, 2010 8 commits
    • Marc Alff's avatar
      Bug#56324 Race Condition while shutting down MySQL: "PSI_server" · bb04ac97
      Marc Alff authored
      Before this fix, the server could crash during shutdown,
      due to race conditions, that occured when killing the server.
      
      In particular, the performance schema instrumentation handle,
      PSI_server, and the performance schema itself would be cleaned up
      too soon, causing race conditions with a running kill server thread.
      
      The specifics of the race condition found are that:
      the main thread executing "PSI_server= NULL" can cause crashes in
      other threads still running, which are executing
      "if (PSI_server != NULL) PSI_server->xxx()"
      as part of the performance schema instrumentation.
      
      While the bug was reported for the kill server thread,
      in theory the same crash could happen with the signal thread,
      as found by code analysis.
      
      The correct fix would be to only shutdown the performance schema
      and set PSI_server to NULL after every other thread is guaranteed
      to be completed, including the kill_server_thread.
      
      However, due to the existing mysqld server design, this is not the case.
      See in particular bug number 56666.
      
      The work around used to fix this race condition is to simply not
      perform the call to shutdown_performance_schema() when the server exits,
      and to keep the PSI_server pointer unchanged.
      
      This will cause memory leaks to be reported by tools like valgrind,
      but no memory leak actually happen because the process is about to exit().
      
      As a result, the file mysql-test/valgrind.supp has been updated
      to filter out these false positive messages.
      
      This code has been tested with running in a loop the following
      tests in parallel, which have been known to fail with race conditions
      in the past:
      - rpl_change_master
      - binlog_max_extension
      - events_restart
      - rpl_heartbeat_basic
      and no crash of test failure has been seen with the changed code.
      bb04ac97
    • Marc Alff's avatar
      Bug#56521 Assertion failed: (m_state == 2), function allocated_to_free, pfs_lock.h (138) · f943a120
      Marc Alff authored
      Before this fix, it was possible to build the server:
      - with the performance schema
      - with a dummy implementation of my_atomic (MY_ATOMIC_MODE_DUMMY).
      
      In this case, the resulting binary will just crash,
      as this configuration is not supported.
      
      This fix enforces that the build will fail with a compilation error in this
      configuration, instead of resulting in a broken binary.
      f943a120
    • Marc Alff's avatar
      local merge · 7193e133
      Marc Alff authored
      7193e133
    • Tor Didriksen's avatar
      fix typo in previous patch · 03393a0d
      Tor Didriksen authored
      03393a0d
    • Vasil Dimov's avatar
      Fix compiler warnings about unused parameters: · a3f7cb4c
      Vasil Dimov authored
      mysys/my_sync.c: In function 'my_sync_dir':
      mysys/my_sync.c:103:29: error: unused parameter 'dir_name'
      mysys/my_sync.c:103:43: error: unused parameter 'my_flags'
      mysys/my_sync.c: In function 'my_sync_dir_by_file':
      mysys/my_sync.c:144:37: error: unused parameter 'file_name'
      mysys/my_sync.c:144:52: error: unused parameter 'my_flags'
      a3f7cb4c
    • Vasil Dimov's avatar
      Fix a compiler warning in my_gethwaddr.c:67: · 7f608a3a
      Vasil Dimov authored
      mysys/my_gethwaddr.c: In function 'my_gethwaddr':
      mysys/my_gethwaddr.c:67:11: error: pointer targets in assignment differ in signedness
      7f608a3a
    • Davi Arnaut's avatar
      Bug#53251: mysql_library_init fails on second execution with embedded library · 9865f9ec
      Davi Arnaut authored
      Add a virtual destructor. Class has virtual functions.
      9865f9ec
    • Evgeny Potemkin's avatar
      Auto-merged. · a5ffc6fa
      Evgeny Potemkin authored
      a5ffc6fa
  9. 08 Sep, 2010 3 commits
    • Marc Alff's avatar
      Bug#56528 Increased server footprint with MTR · c314b3f1
      Marc Alff authored
      With recent changes in the performance schema default sizing parameters,
      the memory used by a mysqld binary increased accordingly.
      
      This negatively affects the MTR test suite,
      because running several tests in parallel now consumes more ressources.
      
      The fix is to leave the default production values unchanged,
      and to configure the MTR environment to limit memory
      used when running tests in the test suite, which is ok
      because only a few objects are typically used within a test script.
      
      This fix:
      - changed the default configuration in MTR to use less memory
      - adjusted the performance schema tests accordingly
      
      Note that 1,000 mutex instances was too short and caused test failures
      in the past in team trees, so the default used is now 10,000 in MTR.
      
      The amount of memory used by the performance schema itself
      can be observed with the statement SHOW ENGINE PERFORMANCE_SCHEMA STATUS
      c314b3f1
    • Alexey Botchkov's avatar
      merging. · c36483a3
      Alexey Botchkov authored
      c36483a3
    • Alexey Botchkov's avatar
      merging. · 3d845625
      Alexey Botchkov authored
      3d845625
  10. 07 Sep, 2010 1 commit
    • Evgeny Potemkin's avatar
      Bug#56271: Wrong comparison result with STR_TO_DATE function · e435df8e
      Evgeny Potemkin authored
      The Item_func_str_to_date class wasn't providing correct integer DATETIME
      representation as expected. This led to wrong comparison result and didn't
      allowed the STR_TO_DATE function to be used with indexes.
      Also, STR_TO_DATE function was inconsisted on throwing warnings/errors.
      Fixed now.
      
      val_int and result_as_longlong methods were added to the Item_func_str_to_date
      class. 
      
      mysql-test/r/func_time.result:
        Test case result adjusted after fixing bug#56271.
      mysql-test/r/parser.result:
        Test case result adjusted after fixing bug#56271.
      mysql-test/r/select.result:
        A test case result adjusted after fixing bug#56271.
      mysql-test/r/strict.result:
        Test case result adjusted after fixing bug#56271.
      mysql-test/r/type_datetime.result:
        Added a test case for the bug#56271.
      mysql-test/t/strict.test:
        Test case adjusted after fixing bug#56271.
      mysql-test/t/type_datetime.test:
        Added a test case for the bug#56271.
      sql/item_timefunc.cc:
        Bug#56271: Wrong comparison result with STR_TO_DATE function
        val_int and result_as_longlong methods were added to the Item_func_str_to_date
        class. 
        Item_func_str_to_date::get_date now throws the ER_WRONG_VALUE_FOR_TYPE warning
        on incorrect value.
      sql/item_timefunc.h:
        Bug#56271: Wrong comparison result with STR_TO_DATE function
        val_int and result_as_longlong methods were added to the Item_func_str_to_date
        class.
      e435df8e
  11. 06 Sep, 2010 2 commits
    • Alfranio Correia's avatar
      BUG#55415 wait_for_update_bin_log enters a condition but does not leave · eab1def4
      Alfranio Correia authored
            
      In sql/log.c, member function wait_for_update_bin_log, a condition is entered with
      THD::enter_cond but is not exited. This might leave dangling references to the
      mutex/condition in the per-thread information area.
            
      To fix the problem, we call exit_cond to properly remove references to the mutex,
      LOCK_log.
      eab1def4
    • Mats Kindahl's avatar
      Bug #55966: "plugin" tests fail in 5.5 · c4913bc3
      Mats Kindahl authored
      On Solaris with version 3.4.6, the ha_example.so shared library is built
      with DTrace and the server is built without DTrace support. This occurs
      because dtrace.cmake disables DTrace support for 3.4.6, but still set
      HAVE_DTRACE, which causes probes_mysql.h to include probes_mysql_dtrace.h
      instead of probes_mysql_nodtrace.h.
      
      This patch fixes this by not setting HAVE_DTRACE on Solaris for GCC 3.4.6.
      c4913bc3
  12. 02 Sep, 2010 3 commits
    • Vladislav Vaintroub's avatar
      Small fixes in CMake: · 744c1013
      Vladislav Vaintroub authored
       create data dir correctly in initial_database target on Windows
       handle case where INSTALL_MYSQLTESTDIR is empty (e.g someone does not want
       to install tests)
      744c1013
    • Alexey Botchkov's avatar
      Bug#53251 mysql_library_init fails on second execution with embedded library · c6024dfc
      Alexey Botchkov authored
                thread-specific variables weren't set when we load error message files.
      
      per-file comments:
        libmysqld/lib_sql.cc
      Bug#53251      mysql_library_init fails on second execution with embedded library
            we need to call my_thread_init() once more. Normally it's called at the my_init()
            stage but that doesn't happen on the second my_init() call.
      
        sql/derror.cc
      Bug#53251      mysql_library_init fails on second execution with embedded library
           use default errors for the embedded server.
      
        sql/mysqld.cc
      Bug#53251      mysql_library_init fails on second execution with embedded library
              unregister server errors in clean_up(). Without it the error list contains
              that on the second mysql_server_init() which is not good.
      
        sql/set_var.cc
      Bug#53251      mysql_library_init fails on second execution with embedded library
              sys_var::cleanup() call instead of the destructor
      
        sql/set_var.h
      Bug#53251      mysql_library_init fails on second execution with embedded library
              sys_var::cleanup() introduced instead of the destructor
              
        sql/sys_vars.h
      Bug#53251      mysql_library_init fails on second execution with embedded library
              Sys_var_charptr::cleanup() implemented
      c6024dfc
    • Marc Alff's avatar
      Bug#55873 short startup options do not work in 5.5 · 7e8d7450
      Marc Alff authored
      Merge cleanup, fixed a build warning:
      
      my_getopt.c:156: warning: 'opt_found' may be used uninitialized in this function
      7e8d7450
  13. 01 Sep, 2010 5 commits
    • Alexey Botchkov's avatar
      merging. · b04e28c8
      Alexey Botchkov authored
      b04e28c8
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-5.5. · d8853211
      Alexander Nozdrin authored
      d8853211
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-5.5-stage. · 7bd80854
      Alexander Nozdrin authored
      7bd80854
    • Alexey Botchkov's avatar
      Bug#54861 Additional connections not handled properly in mtr --embedded · cc81f969
      Alexey Botchkov authored
              When in embedded-serve mode, mysqltest tried to run '--send' commands in the separate thread.
              That upsets some engines (InnoDB particularly) as the transaction has to be executed in the same
              thread completely. So i implemented some different approach. So we create one separate thread for
              each connection and execute all the queries of this connection inside it. Looks even simpler than it was
              for me.
      
      per-file comments:
        client/mysqltest.cc
      Bug#54861      Additional connections not handled properly in mtr --embedded
              Now the connection has one running connection_thread() attached. And sends all the
              query and read-result requests to it.
      cc81f969
    • Alexey Botchkov's avatar
      Bug#54906 Inconsistent license of libmysqld · 49dc22b2
      Alexey Botchkov authored
             made libmysqld/Makefile.am to have same licence as libmysqld/CMakeLists.txt
      
      per-file comments:
        libmysqld/Makefile.am
      Bug#54906      Inconsistent license of libmysqld
              Added GPL license header instead of Library GPL.
      49dc22b2
  14. 31 Aug, 2010 3 commits
    • Alexander Nozdrin's avatar
      99c7536c
    • Alexander Nozdrin's avatar
      Bug#55980 Character sets: supplementary character _bin ordering is wrong · 9e4928af
      Alexander Nozdrin authored
      Problem:
      - ORDER BY for utf8mb4_bin, utf16_bin and utf32_bin returned
        results in a wrong order, because old functions
        (supporting only BMP range) were used to handle these collations.
      - Additionally, utf16_bin did not sort supplementary characters
        between U+D700 and U+E000, as WL#1213 specification specified.
      
      include/m_ctype.h:
        Adding prototypes.
      mysql-test/include/ctype_filesort2.inc:
        Adding a new shared test file.
      mysql-test/t/ctype_utf8mb4.test:
        Adding tests.
      strings/ctype-ucs2.c:
        - Fixing my_strncoll[sp]_utf16_bin to compare
          binary representation instead of code points,
          to make columns with indexes sort correct.
        - Fixing my_collation_handler_utf32_bin and
          my_collation_handler_utf16_bin to use new
          functions.
      strings/ctype-utf8.c:
        - Adding my_strnxfrm[len]_unicode_fill_bin()
          to handle utf8mb4_bin, utf16_bin and utf32_bin,
          using 3 bytes per weight.
          This function also performs special reordering in case of utf16_bin.
        - Fixing my_collation_utf8mb4_bin handler to use the
          new function.
      9e4928af
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-5.5-merge. · 39b8f92f
      Alexander Nozdrin authored
      39b8f92f
  15. 30 Aug, 2010 3 commits
    • Gleb Shchepa's avatar
      da9c598a
    • Gleb Shchepa's avatar
      Bug #53034: Multiple-table DELETE statements not accepting · ccab4d87
      Gleb Shchepa authored
                  "Access compatibility" syntax
      
      The "wild" "DELETE FROM table_name.* ... USING ..." syntax
      for multi-table DELETE statements is documented but it was
      lost in the fix for the bug 30234.
      
      The table_ident_opt_wild parser rule has been added
      to restore the lost syntax.
      
      
      mysql-test/r/delete.result:
        Test case for bug #53034.
      mysql-test/t/delete.test:
        Test case for bug #53034.
      sql/sql_yacc.yy:
        Bug #53034: Multiple-table DELETE statements not accepting
                    "Access compatibility" syntax
        
        The table_ident_opt_wild parser rule has been added
        to restore the lost syntax.
        Note: simple extending of table_ident with opt_wild in
        the table_alias_ref rule is not acceptable, because
        a) it adds one conflict more and b) this conflict resolves
        in the inappropriate way.
      ccab4d87
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-5.5-merge. · f0fe6e4d
      Alexander Nozdrin authored
      f0fe6e4d