- 11 Nov, 2011 1 commit
-
-
Luis Soares authored
SCAN/CPU) => SLAVE FAILURE When a statement containing a large amount of ROWs to be applied on the slave, and the slave's table does not contain a PK, it can take a considerable amount of time to find and change all the rows that are to be changed. The proper slave enhancement will be implemented in WL 5597. However, in this bug we are making it clear to the user what the problem is, by printing a message to the error log if the execution time, for a given statement in RBR, takes more than LONG_FIND_ROW_THRESHOLD (set to 60 seconds). This shall help the DBA to diagnose what's happening when facing a slave server that is quiet for no apparent reason... The note is only printed to the error log if log_warnings is set to be greater than 1. sql/log_event.cc: Core of the patch. In Rows_log_event::do_apply_event, sets STMT start timestamp. In Rows_log_event::find_row, if a PK is not used, then the start timestamp is checked to see if the time spent on this STMT is enough to justify the printing of a note (only if it was not printed before). sql/log_event.h: Defining LONG_FIND_ROW_THRESHOLD. sql/rpl_rli.cc: Resets long_find_row state in rli->context_cleanup(). sql/rpl_rli.h: Two new rli properties that are necessary to control when to emit a note in the error log: 1) timestamp that states when the ROW statement started; 2) flag indicating whether the note has been emitted for the current statement or not. Also deployed accessors.
-
- 01 Nov, 2011 2 commits
-
-
Tor Didriksen authored
-
Tor Didriksen authored
Also fixed possibly uninitialized use of need_copy_table_res.
-
- 31 Oct, 2011 2 commits
-
-
Tor Didriksen authored
-
Tor Didriksen authored
-
- 28 Oct, 2011 2 commits
-
-
Andrei Elkin authored
post-push fixes for show_slave_io_error= 1 of wait_for_slave_io_error.inc; Unix and win format path specifically so few tests have to change show_slave_io_error to zero.
-
Andrei Elkin authored
-
- 27 Oct, 2011 5 commits
-
-
Andrei Elkin authored
The bug case is similar to one fixed earlier bug_49536. Deadlock involving LOCK_log appears to be possible because the purge running thread is holding LOCK_log whereas there is no sense of doing that and which fact was exploited by the earlier bug fixes. Fixed with small reengineering of rotate_and_purge(), adding two new methods and setting up a policy to execute those instead of the former rotate_and_purge(RP_LOCK_LOG_IS_ALREADY_LOCKED). The policy for using rotate(), purge() is that if the caller acquires LOCK_log itself, it should call rotate(), release the mutex and run purge(). Side effect of this patch is refining error message of bug@11747416 to print the whole path. mysql-test/suite/rpl/r/rpl_cant_read_event_incident.result: the file name printing is changed to a relative path instead of just the file name. mysql-test/suite/rpl/r/rpl_log_pos.result: the file name printing is changed to a relative path instead of just the file name. mysql-test/suite/rpl/r/rpl_manual_change_index_file.result: the file name printing is changed to a relative path instead of just the file name. mysql-test/suite/rpl/r/rpl_packet.result: the file name printing is changed to a relative path instead of just the file name. mysql-test/suite/rpl/r/rpl_rotate_purge_deadlock.result: new result file is added. mysql-test/suite/rpl/t/rpl_cant_read_event_incident.test: The test of that bug can't satisfy windows and unix backslash interpretation so windows execution is chosen to bypass. mysql-test/suite/rpl/t/rpl_rotate_purge_deadlock-master.opt: new opt file is added. mysql-test/suite/rpl/t/rpl_rotate_purge_deadlock.test: regression test is added as well as verification of a possible side effect of the fixes is tried. sql/log.cc: LOCK_log is never taken during execution of log purging routine. The former MYSQL_BIN_LOG::rotate_and_purge is made to necessarily acquiring and releasing LOCK_log. If caller takes the mutex itself it has to use a new rotate(), purge() methods combination and to never let purge() be run with LOCK_log grabbed. split apart to allow the caller to chose either it Simulation of concurrently rotating/purging threads is added. sql/log.h: new rotate(), purge() methods are added to be used instead of the former rotate_and_purge(RP_LOCK_LOG_IS_ALREADY_LOCKED). rotate_and_purge() signature is changed. Caller should not call rotate_and_purge() but rather {rotate(), purge()} if LOCK_log is acquired by it. sql/rpl_injector.cc: changes to reflect the new rotate_and_purge() signature. sql/sql_class.h: unnecessary constants are removed. sql/sql_parse.cc: changes to reflect the new rotate_and_purge() signature. sql/sql_reload.cc: changes to reflect the new rotate_and_purge() signature. sql/sql_repl.cc: followup for bug@11747416: the file name printing is changed to a relative path instead of just the file name.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
row_rename_table_for_mysql(): Return DB_ERROR instead of DB_SUCCESS when fil_rename_tablespace() returns an error. This bug was introduced in the InnoDB Plugin. Approved by Sunny Bains over IM.
-
Jimmy Yang authored
TABLE ERROR, RECOVERY rb://792 approved by Sunny Bains
-
Alexander Nozdrin authored
-
- 26 Oct, 2011 2 commits
-
-
Karen Langford authored
-
Hery Ramilison authored
-
- 24 Oct, 2011 2 commits
-
-
Nirbhay Choubey authored
-
Nirbhay Choubey authored
Fixed a misplaced parenthesis, injected due to syncing from libedit CVS head.
-
- 23 Oct, 2011 1 commit
-
-
Dmitry Lenev authored
NEW_FRM_MEM WITHOUT NEEDING TO". During the process of opening tables for a statement, we allocated memory which was used only during view loading even in cases when the statement didn't use any views. Such an unnecessary allocation (and corresponding freeing) might have caused significant performance overhead in some workloads. For example, it caused up to 15% slowdown in a simple stored routine calculating Fibonacci's numbers. This memory was pre-allocated as part of "new_frm_mem" MEM_ROOT initialization at the beginning of open_tables(). This patch addresses this issue by turning off memory pre-allocation during initialization for this MEM_ROOT. Now, memory on this root will be allocated only at the point when the first .FRM for a view is opened. The patch doesn't contain a test case since it is hard to test the performance improvements or the absence of memory allocation in our test framework.
-
- 22 Oct, 2011 1 commit
-
-
Ashish Agarwal authored
TESTS: CRASH, CORRUPTION, 4G MEMOR Issue: Valgrind errors due to checksum and optimize query against archive tables with null columns. Table record buffer was not initialized. Solution: Initialize the record buffer.
-
- 21 Oct, 2011 7 commits
-
-
Nirbhay Choubey authored
-
Nirbhay Choubey authored
BREAKS SOURCE RELEASE BUILD Some of the required files were not getting copied while performing 'make dist' and hence the build failed for the created distribution source. Added the missing files to Makefile.am.
-
Ashish Agarwal authored
TESTS: CRASH, CORRUPTION, 4G MEMOR Issue: Valgrind errors due to checksum and optimize query angaist archive tables with null columns. Table record buffer was not initialized. Solution: Initialize the record buffer.
-
Sergey Vojtovich authored
-
Sergey Vojtovich authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
btr_record_not_null_field_in_rec(): Remove the parameter rec. Use rec_offs_nth_sql_null() instead of rec_get_nth_field(). rb:788 approved by Jimmy Yang
-
- 20 Oct, 2011 1 commit
-
-
Sergey Vojtovich authored
USING MYISAM_USE_MMAP ON WINDOWS When OPTIMIZE/REPAIR TABLE is switching to new data file, old data file is removed while memory mapping is still active. With 5.1 implementation of nt_share_delete() it is not permitted to remove mmaped file. This fix disables memory mapping for mi_repair() operations. mysql-test/r/myisam.result: A test case for BUG#11757032. mysql-test/t/myisam.test: A test case for BUG#11757032. storage/myisam/ha_myisam.cc: mi_repair*() functions family use file I/O even if memory mapping is available. Since mixing mmap I/O and file I/O may cause various artifacts, memory mapping must be disabled. storage/myisam/mi_delete_all.c: Clean-up: do not attempt to remap file after truncate, since there is nothing to map.
-
- 19 Oct, 2011 4 commits
-
-
Bjorn Munch authored
-
Joerg Bruehe authored
-
Bjorn Munch authored
-
unknown authored
modified function do_get_error in mysqltest.cc to handle multiple variable passed added test case to mysqltest.test to verify handling to multiple errors passed
-
- 18 Oct, 2011 2 commits
-
-
Nirbhay Choubey authored
-
Nirbhay Choubey authored
WITH LIBEDIT Libedit won't build on platforms that do not provide "sys/cdefs.h". Removed the inclusion of cdefs.h from all files other that sys.h, which includes this file only when the header is found while configuring.
-
- 17 Oct, 2011 2 commits
-
-
unknown authored
This patch corrects a defect whereby the bootstrap_server() method was returning 0 instead of the error code generated. The code has been changed to return the correct value returned from the bootstrap command.
-
unknown authored
This patch corrects a defect in the building of the DELETE commands for disabling a plugin whereby only the original plugin data was deleted. If there were other plugins, the delete did not remove the rows. The code has been changed to remove all rows from the mysql.plugin table that were inserted when the plugin was loaded. The test has also been changed to correctly identify if all rows have been deleted.
-
- 14 Oct, 2011 1 commit
-
-
Alfranio Correia authored
warnings are converted to errors, the compiler complains about the fact that binlog_can_be_corrupted is defined but never used. We need to check if this is a dead code or if someone removed any code by mistake.
-
- 13 Oct, 2011 2 commits
-
-
Nirbhay Choubey authored
-
Nirbhay Choubey authored
Updated libedit library.
-
- 12 Oct, 2011 3 commits
-
-
Sergey Glukhov authored
-
Sergey Glukhov authored
When temporary tables is used for result sorting result field for gconcat function is created using group_concat_max_len size. It leads to result truncation when character_set_results is multi-byte character set due to insufficient tmp table field size. The fix is to increase temporary table field size for gconcat. Method make_string_field() is overloaded for Item_func_group_concat class and uses max_characters * collation.collation->mbmaxlen size for result field. max_characters is maximum number of characters what can fit into max_length size. mysql-test/r/ctype_utf16.result: test result mysql-test/r/ctype_utf32.result: test result mysql-test/r/ctype_utf8.result: test result mysql-test/t/ctype_utf16.test: test case mysql-test/t/ctype_utf32.test: test case mysql-test/t/ctype_utf8.test: test case sql/item.h: make Item::make_string_field() virtual sql/item_sum.cc: added Item_func_group_concat::make_string_field(TABLE *table) method which uses max_characters * collation.collation->mbmaxlen size for result item. max_characters is maximum number of characters what can fit into max_length size. sql/item_sum.h: added Item_func_group_concat::make_string_field(TABLE *table) method
-
Marko Mäkelä authored
-