1. 17 Sep, 2010 1 commit
    • Marc Alff's avatar
      Bug#56832 perfschema.server_init test output not consistent · bffb4c1f
      Marc Alff authored
      Before this fix, the test output for perfschema.server_init would
      vary between executions, because some of the objects tested were
      not guaranteed to exist in all configurations / code paths.
      
      This fix removes these weak tests.
      
      Also, comments referring to abandonned code have been cleaned up.
      bffb4c1f
  2. 15 Sep, 2010 2 commits
    • Marc Alff's avatar
      Bug#56761 Segfault on CHECKSUM TABLE performance_schema.EVENTS_WAITS_HISTORY EXTENDED · c5ec3b3b
      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.
      c5ec3b3b
    • Olav Sandstaa's avatar
      Fix for Bug#54478 "mysqld crashes during boot when running mtr with --debug option" · 172716d3
      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().
      172716d3
  3. 14 Sep, 2010 1 commit
  4. 13 Sep, 2010 1 commit
  5. 10 Sep, 2010 1 commit
  6. 09 Sep, 2010 8 commits
    • Marc Alff's avatar
      Bug#56324 Race Condition while shutting down MySQL: "PSI_server" · 1e90c0a5
      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.
      1e90c0a5
    • Marc Alff's avatar
      Bug#56521 Assertion failed: (m_state == 2), function allocated_to_free, pfs_lock.h (138) · c0442c21
      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.
      c0442c21
    • Marc Alff's avatar
      local merge · 970f7fb3
      Marc Alff authored
      970f7fb3
    • Tor Didriksen's avatar
      fix typo in previous patch · 46ebd2d6
      Tor Didriksen authored
      46ebd2d6
    • Vasil Dimov's avatar
      Fix compiler warnings about unused parameters: · 221b28fb
      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'
      221b28fb
    • Vasil Dimov's avatar
      Fix a compiler warning in my_gethwaddr.c:67: · 95c2a52e
      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
      95c2a52e
    • Davi Arnaut's avatar
      Bug#53251: mysql_library_init fails on second execution with embedded library · 4247e444
      Davi Arnaut authored
      Add a virtual destructor. Class has virtual functions.
      4247e444
    • Evgeny Potemkin's avatar
      Auto-merged. · 60386f26
      Evgeny Potemkin authored
      60386f26
  7. 08 Sep, 2010 3 commits
    • Marc Alff's avatar
      Bug#56528 Increased server footprint with MTR · 51c35108
      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
      51c35108
    • Alexey Botchkov's avatar
      merging. · 4598743f
      Alexey Botchkov authored
      4598743f
    • Alexey Botchkov's avatar
      merging. · 5a52649a
      Alexey Botchkov authored
      5a52649a
  8. 07 Sep, 2010 1 commit
    • Evgeny Potemkin's avatar
      Bug#56271: Wrong comparison result with STR_TO_DATE function · 34c510d6
      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.
      34c510d6
  9. 06 Sep, 2010 1 commit
    • Mats Kindahl's avatar
      Bug #55966: "plugin" tests fail in 5.5 · 32206489
      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.
      32206489
  10. 02 Sep, 2010 3 commits
    • Vladislav Vaintroub's avatar
      Small fixes in CMake: · 1d8b4691
      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)
      1d8b4691
    • Alexey Botchkov's avatar
      Bug#53251 mysql_library_init fails on second execution with embedded library · d5330f34
      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
      d5330f34
    • Marc Alff's avatar
      Bug#55873 short startup options do not work in 5.5 · 68b34ff1
      Marc Alff authored
      Merge cleanup, fixed a build warning:
      
      my_getopt.c:156: warning: 'opt_found' may be used uninitialized in this function
      68b34ff1
  11. 01 Sep, 2010 5 commits
    • Alexey Botchkov's avatar
      merging. · d64dcd4a
      Alexey Botchkov authored
      d64dcd4a
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-5.5. · d52824f7
      Alexander Nozdrin authored
      d52824f7
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-5.5-stage. · b9662aaa
      Alexander Nozdrin authored
      b9662aaa
    • Alexey Botchkov's avatar
      Bug#54861 Additional connections not handled properly in mtr --embedded · c0413b74
      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.
      c0413b74
    • Alexey Botchkov's avatar
      Bug#54906 Inconsistent license of libmysqld · 56e82c22
      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.
      56e82c22
  12. 31 Aug, 2010 3 commits
    • Alexander Nozdrin's avatar
      6fa0df0f
    • Alexander Nozdrin's avatar
      Bug#55980 Character sets: supplementary character _bin ordering is wrong · 8b4af2a2
      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.
      8b4af2a2
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-5.5-merge. · e0622c5a
      Alexander Nozdrin authored
      e0622c5a
  13. 30 Aug, 2010 10 commits
    • Gleb Shchepa's avatar
      af604962
    • Gleb Shchepa's avatar
      Bug #53034: Multiple-table DELETE statements not accepting · 07024ab7
      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.
      07024ab7
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-5.5-merge. · 8a50a7a2
      Alexander Nozdrin authored
      8a50a7a2
    • Magnus Blåudd's avatar
      Bug#56117 ha_ndbcluster_tables.h included by mysqldump but not used · 90eef290
      Magnus Blåudd authored
       - Remove include of ha_ndbcluster_tables.h from mysqldump.c
      90eef290
    • Dmitry Shulga's avatar
      Follow-up for Bug#29751: FLUSH LOGS doesn't create -old file, · 9a9e7a2f
      Dmitry Shulga authored
      so test case has to be updated.
      9a9e7a2f
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-5.5. · e2dd2e73
      Alexander Nozdrin authored
      e2dd2e73
    • Alexander Nozdrin's avatar
      c5ca4142
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-5.5-bugfixing. · bef62cb6
      Alexander Nozdrin authored
      bef62cb6
    • Alexey Kopytov's avatar
      Automerge. · c2a3d3c5
      Alexey Kopytov authored
      c2a3d3c5
    • unknown's avatar
      Bug #54579 Wrong unsafe warning for INSERT DELAYED in SBR · 3b1a7ebb
      unknown authored
            
      The lock_type is upgrade to TL_WRITE from TL_WRITE_DELAYED for
      INSERT DELAYED when inserting multi values in one statement.
      It's safe. But it causes an unsafe warning in SBR.
            
      Make INSERT DELAYED safe by logging it as INSERT without DELAYED.
      
      
      mysql-test/extra/binlog_tests/binlog_insert_delayed.test:
        Updated the test file to test multi INSERT DELAYED statement
        is no longer causes an unsafe warning and binlogged as INSERT
        without DELAYED.
      mysql-test/extra/rpl_tests/create_recursive_construct.inc:
        Updated for the patch of bug#54579.
      mysql-test/suite/binlog/r/binlog_row_binlog.result:
        Updated for the patch of bug#54579.
      mysql-test/suite/binlog/r/binlog_statement_insert_delayed.result:
        Test result for BUG#54579.
      mysql-test/suite/binlog/r/binlog_stm_binlog.result:
        Updated for the patch of bug#54579.
      mysql-test/suite/binlog/r/binlog_unsafe.result:
        Updated for the patch of bug#54579.
      mysql-test/suite/binlog/t/binlog_unsafe.test:
        Updated for the patch of bug#54579.
      sql/sql_insert.cc:
        Added code to genetate a new query string for removing
        DELAYED keyword for multi INSERT DEALAYED statement.
      sql/sql_yacc.yy:
        Added code to record the DELAYED keyword position and remove the setting
        of unsafe statement for INSERT DELAYED statement
      3b1a7ebb