- 05 Dec, 2008 1 commit
-
-
Vladislav Vaintroub authored
The problem appears often in conjuction with temp files, when temp-pool is used, so that names of temp files are not unique. The reason is that rapid deletiion and creation of fiiles with the same name on Windows is not guaranteed to succeed. File disappears from the file system only when the last handle to it is closed. If for example a virus scanner, a backup or indexing application opens the temp file just before MySQL deletes it, the file will enter "delete pending" state. In this state,it is not possible to open the file , or create a file with the same name (CreateFile returns ERROR_ACCESS_DENED, posix open returns EACESS) Fix (rather a cheap workarounf) is not to use temp-pool when working with temporary files- this will make filenames unique. With this patch , temp- pool setting will be ignored on anything but Linux(the option only made sense for Linux since its invention anyway).
-
- 04 Dec, 2008 1 commit
-
-
Vladislav Vaintroub authored
The problem here is that embedded server starts handle_thread manager thread on mysql_library_init() does not stop it on mysql_library_end(). At shutdown, my_thread_global_end() waits for thread count to become 0, but since we did not stop the thread it will give up after 5 seconds. Solution is to move shutdown for handle_manager thread from kill_server() (mysqld specific) to clean_up() that is used by both embedded and mysqld. This patch also contains some refactorings - to avoid duplicate code, start_handle_manager() and stop_handle_manager() functions are introduced. Unused variables are eliminated. handle_manager does not rely on global variable abort_loop anymore to stop (abort_loop is not set for embedded). Note: Specifically on Windows and when using DBUG version of libmysqld, the complete solution requires removing obsolete code my_thread_init() from my_thread_var(). This has a side effect that a DBUG statement after my_thread_end() can cause thread counter to be incremented, and embedded will hang for some seconds. Or worse, my_thread_init() will crash if critical sections have been deleted by the global cleanup routine that runs in a different thread. This patch also fixes and revert prior changes for Bug#38293 "Libmysqld crash in mysql_library_init if language file missing". Root cause of the crash observed in Bug#38293 was bug in my_thread_init() described above
-
- 02 Dec, 2008 2 commits
-
-
Georgi Kodinov authored
There was a missing initialization.
-
Georgi Kodinov authored
with non-RSA-requesting client if server uses RSA key matchSuite() may not find a match. It will return error in this case. Added a error checking code that will prevent using uninitialized memory in the code based on the assumption that matchSuite() has found a match.
-
- 01 Dec, 2008 11 commits
-
-
Georgi Kodinov authored
-
Georgi Kodinov authored
-
Georgi Kodinov authored
-
Georgi Kodinov authored
-
Georgi Kodinov authored
-
Georgi Kodinov authored
-
Georgi Kodinov authored
Updated MySQL time handling code to react correctly on UTC leap second additions. MySQL functions that return the OS current time, like e.g. CURDATE(), NOW() etc will return :59:59 instead of :59:60 or 59:61. As a result the reader will receive :59:59 for 2 or 3 consecutive seconds during the leap second. This fix will not affect the values returned by UNIX_TIMESTAMP() for leap seconds. But note that when converting the value returned by UNIX_TIMESTAMP() to broken down time the correction of leap seconds will still be applied. Note that this fix will make a difference *only* if the OS is specially configured to return leap seconds from the OS time calls or when using a MySQL time zone defintion that has leap seconds. Even after this change date/time literals (or other broken down time representations) with leap seconds (ending on :59:60 or 59:61) will still be considered illegal and discarded by the server with an error or a warning depending on the sql mode. Added a test case to demonstrate the effect of the fix.
-
Georgi Kodinov authored
-
Georgi Kodinov authored
by using and taking out a full path.
-
Gleb Shchepa authored
-
Gleb Shchepa authored
TABLE_LIST doesn't free Strings in its string lists (TABLE_LIST::use_index and TABLE_liST::ignore_index), so calling c_ptr_safe() on that Strings leads to memleaks. OTOH "safe" c_ptr_safe() is not necessary there and we can replace it with c_ptr().
-
- 28 Nov, 2008 15 commits
-
-
Ingo Struewing authored
-
Matthias Leich authored
-
Matthias Leich authored
Diff to actual 5.0-bugteam is revno: 2725 only
-
Gleb Shchepa authored
-
Gleb Shchepa authored
leads to an assertion failure Any run-time error in stored function (like recursive function call or update of table that is already updating by statement which invoked this stored function etc.) that was used in some expression of the single-table UPDATE statement caused an assertion failure. Multiple-table UPDATE (as well as INSERT and both single- and multiple-table DELETE) are not affected.
-
Gleb Shchepa authored
an error Even after the fix for bug 28701 visible behaviors of SELECT FROM a view and SELECT FROM a regular table are little bit different: 1. "SELECT FROM regular table USE/FORCE/IGNORE(non existent index)" fails with a "ERROR 1176 (HY000): Key '...' doesn't exist in table '...'" 2. "SELECT FROM view USING/FORCE/IGNORE(any index)" fails with a "ERROR 1221 (HY000): Incorrect usage of USE/IGNORE INDEX and VIEW". OTOH "SHOW INDEX FROM view" always returns empty result set, so from the point of same behaviour view we trying to use/ignore non existent index. To harmonize the behaviour of USE/FORCE/IGNORE(index) clauses in SELECT from a view and from a regular table the "ERROR 1221 (HY000): Incorrect usage of USE/IGNORE INDEX and VIEW" message has been replaced with the "ERROR 1176 (HY000): Key '...' doesn't exist in table '...'" message like for tables and non existent keys.
-
Georgi Kodinov authored
-
Georgi Kodinov authored
-
Georgi Kodinov authored
The SHOW VARIABLES LIKE .../SELECT @@/SELECT ... FROM INFORMATION_SCHEMA.VARIABLES were assuming that all the system variables are in system charset (UTF-8). However the variables that are settable through command line will have a different character set (character_set_filesystem). Fixed the server to remember the correct character set of basedir, datadir, tmpdir, ssl, plugin_dir, slave_load_tmpdir, innodb variables; init_connect and init_slave variables and use it when processing data.
-
Ingo Struewing authored
-
Sergey Glukhov authored
-
Sergey Glukhov authored
-
Ingo Struewing authored
-
Sergey Glukhov authored
-
Sergey Glukhov authored
-
- 27 Nov, 2008 10 commits
-
-
Ingo Struewing authored
-
Ingo Struewing authored
No commit message
-
Tatiana A. Nurnberg authored
-
Tatiana A. Nurnberg authored
-
Tatiana A. Nurnberg authored
-
Horst Hunger authored
-
Ingo Struewing authored
-
Sergey Glukhov authored
-
Sergey Glukhov authored
The bug is repeatable with latest(1.0.1) InnoDB plugin on Linux, Win, If MySQL is compiled with valgrind there are errors about using of uninitialized variable(orig_table). The fix is to set field->orig_table correct value.
-
Horst Hunger authored
Reason for the failing test was that "SELECT count(*) from mysql.general_log;" was not always the same number. That was fixed by "...count(*)>4..." as the minimal fulfilled condition. As Bug 35371 was fixed the testcase with "log_output = 'FILE'" was enabled and changed to have always the same result.
-