- 17 Sep, 2010 1 commit
-
-
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.
-
- 15 Sep, 2010 2 commits
-
-
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.
-
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().
-
- 14 Sep, 2010 1 commit
-
-
Marc Alff authored
-
- 13 Sep, 2010 1 commit
-
-
Marc Alff authored
Implemented post review comments. Added --force to the mysql_upgrade command in the test scripts, so that the test output does not depends on whether other tests involving an upgrade have been executed or not in the same test suite execution.
-
- 10 Sep, 2010 1 commit
-
-
Tor Didriksen authored
-
- 09 Sep, 2010 8 commits
-
-
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.
-
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.
-
Marc Alff authored
-
Tor Didriksen authored
-
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'
-
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
-
Davi Arnaut authored
Add a virtual destructor. Class has virtual functions.
-
Evgeny Potemkin authored
-
- 08 Sep, 2010 3 commits
-
-
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
-
Alexey Botchkov authored
-
Alexey Botchkov authored
-
- 07 Sep, 2010 1 commit
-
-
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.
-
- 06 Sep, 2010 1 commit
-
-
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.
-
- 02 Sep, 2010 3 commits
-
-
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)
-
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
-
Marc Alff authored
Merge cleanup, fixed a build warning: my_getopt.c:156: warning: 'opt_found' may be used uninitialized in this function
-
- 01 Sep, 2010 5 commits
-
-
Alexey Botchkov authored
-
Alexander Nozdrin authored
-
Alexander Nozdrin authored
-
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.
-
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.
-
- 31 Aug, 2010 3 commits
-
-
Alexander Nozdrin authored
-
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.
-
Alexander Nozdrin authored
-
- 30 Aug, 2010 10 commits
-
-
Gleb Shchepa authored
-
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.
-
Alexander Nozdrin authored
-
Magnus Blåudd authored
- Remove include of ha_ndbcluster_tables.h from mysqldump.c
-
Dmitry Shulga authored
so test case has to be updated.
-
Alexander Nozdrin authored
-
Alexander Nozdrin authored
-
Alexander Nozdrin authored
-
Alexey Kopytov authored
-
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
-