- 19 Oct, 2010 5 commits
-
-
Jon Olav Hauglid authored
No conflicts
-
Jon Olav Hauglid authored
No conflicts
-
Jon Olav Hauglid authored
(variables_debug fails) The problem was that "SET GLOBAL debug" could cause a crash on Solaris. The crash happened if the server failed to open the trace file given in the "SET GLOBAL debug" statement. This caused an error message to be printed to stderr containing the process name. However, printing to stderr crashed the server since the pointer to the process name had not been initialized. This patch fixes the problem by initializing the process name properly when doing "SET GLOBAL debug". No test case added as this bug was repeatable with existing test coverage in variables_debug.test.
-
Tor Didriksen authored
-
Tor Didriksen authored
-
- 18 Oct, 2010 7 commits
-
-
Davi Arnaut authored
CMakeLists.txt: Enable the maintainer mode if debug support is enabled. Does not cause it to be enabled if the user explicitly disabled the maintainer mode.
-
Davi Arnaut authored
Enable the MySQL maintainer-specific development environment (which add various warning related options to the compiler flags) if debugging support is enabled. config/ac-macros/maintainer.m4: Enable the maintainer mode if debug support is enabled. configure.in: Move debug argument to before the maintainer mode check.
-
Dmitry Shulga authored
Follow-up for bug#36742: changed results for test ipv4_as_ipv6 because hostname is case-insensitive.
-
Dmitry Shulga authored
-
Dmitry Shulga authored
because currently hostname stored in db in lowercase.
-
Tor Didriksen authored
For crash testing: kill the server without generating core file. include/my_dbug.h Use kill(getpid(), SIGKILL) which cannot be caught by signal handlers. All DBUG_XXX macros should be no-ops in optimized mode, do that for DBUG_ABORT as well. sql/handler.cc Kill server without generating core. sql/log.cc Kill server without generating core.
-
Tor Didriksen authored
For crash testing: kill the server without generating core file. include/my_dbug.h Use kill(getpid(), SIGKILL) which cannot be caught by signal handlers. All DBUG_XXX macros should be no-ops in optimized mode, do that for DBUG_ABORT as well. sql/handler.cc Kill server without generating core. sql/log.cc Kill server without generating core.
-
- 16 Oct, 2010 2 commits
-
-
unknown authored
-
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.
-
- 14 Oct, 2010 4 commits
-
-
Konstantin Osipov authored
sql_show.cc during rqg_info_schema test on Windows". Ensure we do not access freed memory when filling information_schema.views when one of the views could not be properly opened. mysql-test/r/information_schema.result: Update results - a fix for Bug#56540. mysql-test/t/information_schema.test: Add a test case for Bug#56540 sql/sql_base.cc: Push an error into the Diagnostics area when we return an error. This directs get_all_tables() to the execution branch which doesn't involve 'process_table()' when no table/view was opened. sql/sql_show.cc: Do not try to access underlying table fields when opening of a view failed. The underlying table is closed in that case, and accessing its fields may lead to dereferencing a damaged pointer.
-
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).
-
Jon Olav Hauglid authored
|| thd->in_sub_stmt || (thd->state.. Don't rollback statement transactions if we are in a sub-statement. This could for example happen for open_ltable() when opening the general log during execution of a stored procedure.
-
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.
-
- 13 Oct, 2010 11 commits
-
-
Alexander Nozdrin authored
-
Davi Arnaut authored
when checking the ABI with the C Preprocessor. Also, add the new hearders to the cmake based ABI check. cmake/abi_check.cmake: Add headers which were added to the autotools ABI check. Remove trailing spaces. include/mysql/client_plugin.h: Guard the inclusion of system headers.
-
Jon Olav Hauglid authored
thd->in_sub_stmt || (thd->state.. OPTIMIZE TABLE is not directly supported by InnoDB. Instead, recreate and analyze of the table is done. After recreate, the table is closed and locks are released before the table is reopened and locks re-acquired for the analyze phase. This assertion was triggered if OPTIMIZE TABLE failed to acquire thr_lock locks before starting the analyze phase. The assertion tests (among other things) that there no active statement transaction. However, as part of acquiring the thr_lock lock, external_lock() is called for InnoDB tables and this causes a statement transaction to be started. If thr_multi_lock() later fails (e.g. due to timeout), the failure handling code causes this assert to be triggered. This patch fixes the problem by doing rollback of the current statement transaction in case open_ltable (used by OPTIMIZE TABLE) fails to acquire thr_lock locks. Test case added to lock_sync.test.
-
Dmitry Lenev authored
heavy load". rpl_row_sp003.test has sporadically failed when run on machine under heavy load or on slow hardware. This patch fixes races in the test which were causing these failures and also removes unnecessary 100 second wait from it.
-
Luis Soares authored
-
Alexander Nozdrin authored
Some platforms don't work with 4 * STACK_MIN_SIZE. Thus, reverting back to 8 * STACK_MIN_SIZE and waiting for another fix.
-
Konstantin Osipov authored
sql/sql_show.h: Remove an unused declaration.
-
Luis Soares authored
latest mysql-5.1-bugteam.
-
Luis Soares authored
latest mysql-5.1-bugteam.
-
Dmitry Shulga authored
-
Dmitry Shulga authored
mysql-test/r/grant.result: It was added result for test case for bug#36742. mysql-test/t/grant.test: It was added test case for bug#36742. sql/sql_yacc.yy: It was added convertation of host name part of user name to lowercase.
-
- 12 Oct, 2010 4 commits
-
-
Jon Olav Hauglid authored
No conflicts
-
Dmitry Shulga authored
to fix an sp-error.test failure on Sun Sparc system.
-
Alexander Nozdrin authored
-
Alexander Nozdrin authored
-
- 11 Oct, 2010 7 commits
-
-
Vladislav Vaintroub authored
-
Vasil Dimov authored
-
Luis Soares authored
-
Luis Soares authored
for --init-rpl-role. Problem: There are two variables involved in this issue, rpl_status and rpl_role_type. The former is an array containing the description of the possible values for the latter. rpl_status is declared as an enumeration and is stored in a 4 bytes integer. On the other hand, my_getopt, reads enum values into a ulong: *(ulong*)value= arg; This is overwriting the memory used for rpl_role_type, corrupting the first entry in the array. Fix: We fix this by re-declaring rpl_status as a ulong, so that it has space to accommodate the value "parsed" in my_getopt .
-
Jimmy Yang authored
-
Jimmy Yang authored
with concurrent lock/unlock tables Approved by Marko
-
Vasil Dimov authored
-