1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-13 20:03:16 +03:00
Commit Graph

29393 Commits

Author SHA1 Message Date
Nirbhay Choubey
0c50974573 Bug#11827359 60223: MYSQL_UPGRADE PROBLEM WITH
OPTION SKIP-WRITE-BINLOG

System tables were not getting upgraded when
mysql_upgrade was run with --skip-write-binlog
option. (Same for --write-binlog.) Also, with
this option, mysql_upgrade_info file was not
getting created after the upgrade.

mysql_upgrade makes use of mysql client tool in
order to run upgrade scripts, while doing so it
passes some of the command line options (used to
start mysql_upgrade) directly to mysql client.
The reason behind this bug being, some options
like skip-write-binlog and upgrade-system-tables
were being passed to mysql tool along with other
options, and hence mysql execution failed due
presence of these invalid options.

Fixed this issue by filtering out the above mentioned
options from the list of options that will be passed to
mysql and mysqlcheck tools. However, since --write-binlog
is supported by mysqlcheck, this option would be used
explicitly while running mysqlcheck. (not part of patch,
already there)

Checking the contents of general log after the upgrade
is not doable via an mtr test. So performed manual test.
Added a test to verify the creation of mysql_upgrade_info.
2011-11-15 17:48:42 +05:30
Luis Soares
595a007d4e BUG#11760927: 53375: RBR + NO PK => HIGH LOAD ON SLAVE (TABLE
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.
2011-11-11 17:26:56 +00:00
Marko Mäkelä
907e2b0c81 Merge mysql-5.1 to mysql-5.5. 2011-11-10 16:50:34 +02:00
Marko Mäkelä
dcab3c9393 Bug #12842206 INNODB LOCKING REGRESSION FOR INSERT IGNORE: Add a test case.
The bug was accidentally fixed by fixing
Bug#11759688 52020: InnoDB can still deadlock on just INSERT...ON DUPLICATE KEY
a.k.a. the reintroduction of
Bug#7975 deadlock without any locking, simple select and update
2011-11-10 16:45:47 +02:00
Marko Mäkelä
4841d14341 Add missing sys_vars tests for InnoDB variables. 2012-01-16 16:39:05 +02:00
Sneha Modi
fb2323c082 Bug#11748731 - 37248: SOME 'BIG' TESTS FAILING ON 6.0:
alter_treable-big.test was failing due to the use of RAND() function which is no more 
replication safe.
This has been modified using static values.

Also, 'sleep' has been replaced using 'debug_sync' and the execution time of the 
test has been reduced significantly.

This test is now taken out of the disabled.def file and is being enabled.
2011-11-10 17:18:41 +05:30
Marko Mäkelä
ee25adb945 Merge mysql-5.1 to mysql-5.5. 2011-11-10 13:08:42 +02:00
Marko Mäkelä
d7946a908f Bug#11759688 52020: InnoDB can still deadlock on just INSERT...ON DUPLICATE KEY
a.k.a. Bug#7975 deadlock without any locking, simple select and update

Bug#7975 was reintroduced when the storage engine API was made
pluggable in MySQL 5.1. Instead of looking at thd->lex directly, we
rely on handler::extra(). But, we were looking at the wrong extra()
flag, and we were ignoring the TRX_DUP_REPLACE flag in places where we
should obey it.

innodb_replace.test: Add tests for hopefully all affected statement
types, so that bug should never ever resurface. This kind of tests
should have been added when fixing Bug#7975 in MySQL 5.0.3 in the
first place.

rb:806 approved by Sunny Bains
2011-11-10 12:49:31 +02:00
Sneha Modi
fe1acd6dce Bug#11754170:45729: TEST CASE FOR BUG#28211 IS DISABLED IN QUERY_CACHE.TEST
A patch for this bug has already been pushed. A minor change is made here.
      The database to be used after re-enabling the disabled code is 'TEST'.
      But instead, 'MYSQL' was being used. 
      This is the minor change that is being made here.
2011-11-10 12:04:23 +05:30
Bjorn Munch
3454e60b2b merge 5.5 => 5.5-mtr 2011-11-09 10:06:40 +01:00
Bjorn Munch
a13a8926f6 Followup test fix after 13055685:
Un-needed replace_result accidentally messed up a variable used
  *if* not running parallel.
  Removed the bogus --replace_result
2011-11-09 09:58:18 +01:00
Bjorn Munch
e3ca4792b7 Bug #13055685 NO WAY TO REPLACE NON-DETERMINISTIC FRAGMENTS IN OUTPUT OF MTR'S ECHO
Don't do this for echo, instead:
    1) Enable replacements also for assignment from backquoted SQL
    2) Allow replace_regex to take a variable for the *entire* argument list
  
    With this, the test can be amended, but only in its version in trunk
2011-11-08 15:55:25 +01:00
chuck.bell@oracle.com
3742d6c940 WL#5710 : mysql_plugin client - Windows PB fix
This patch corrects the test mysql_plugin so that it correctly masks
the library extension of the plugin daemon_example.
2011-11-04 08:59:28 -04:00
Sneha Modi
ffd0c80914 BUG#11754168: Reverting back changes as it is making other tests fail. 2011-11-03 12:30:09 +05:30
Sneha MOdi
b51cbbaaf2 BUG#11754170: TEST CASE FOR BUG#28211 IS DISABLED IN QUERY_CACHE.TEST as RENAME DATABASE
and query_cache don't play along nicely.

An alternative for RENAME DATABSE using RENAME TABLE has been used to implement this.
2011-11-02 18:42:52 +05:30
Sneha MOdi
5b0ae07052 BUG#11754168:PARTS OF INDEX_MERGE_INNODB.TEST ARE DISABLED DUE TO EXPLAIN DIFFS
Parts of index_merge_innodb were disabled.These have been enabled with a few changes 
and the test is being made experimental to study it's behaviour.
2011-11-02 16:53:41 +05:30
Andrei Elkin
e066044294 BUG#11763573
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.
2011-10-29 00:07:16 +03:00
Andrei Elkin
9c255bdaf7 merge from 5.5 to local tree. 2011-10-28 16:11:26 +03:00
Andrei Elkin
a7127418a7 Bug#11763573 - 56299: MUTEX DEADLOCK WITH COM_BINLOG_DUMP, BINLOG PURGE, AND PROCESSLIST/KILL
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.
2011-10-27 17:14:41 +03:00
Marko Mäkelä
b36da66bae Revert most of revno 3560.9.1 (Bug#12704861)
This was an attempt to address problems with the Bug#12612184 fix.
Even with this follow-up fix, crash recovery can be broken.
Let us fix the bug later.
2011-10-26 11:44:28 +03:00
Marko Mäkelä
e222777063 Merge mysql-5.1-security to mysql-5.5-security. 2011-10-26 10:06:23 +03:00
Marko Mäkelä
e27623a76c Copy and adapt innodb_misc1.test from innodb to innodb_plugin. 2011-10-26 09:38:28 +03:00
Marko Mäkelä
825f88634b Fix results after Bug#12661768 fix. 2011-10-26 09:34:32 +03:00
Marko Mäkelä
679b636570 Merge mysql-5.1-security to mysql-5.5-security. 2011-10-25 18:06:05 +03:00
Marko Mäkelä
d9c06c2a64 Fix results after Bug#12661768 fix. 2011-10-25 17:58:34 +03:00
Marko Mäkelä
579234694f Bug#13002783 PARTIALLY UNINITIALIZED CASCADE UPDATE VECTOR
In the ON UPDATE CASCADE clause of FOREIGN KEY constraints, the
calculated update vector was not fully initialized. This bug was
introduced in the InnoDB Plugin when implementing support for
ROW_FORMAT=DYNAMIC.

Additionally, the data type information was not initialized, but
apparently it has never been needed in this case.  Nevertheless, it is
not good programming practice to pass uninitialized values around.

calc_row_difference(): Declare the update field uninitialized in
Valgrind. Copy the data type information as well, except when the
field is SQL NULL. In the built-in InnoDB, initialize
ufield->extern_storage = FALSE (an initialization bug that had gone
unnoticed this far). The InnoDB Plugin and later have this flag to
dfield_t and have always initialized it properly.

row_ins_cascade_calc_update_vec(): Reduce the scope of some
pointers. Initialize orig_len. (This caused the bug in InnoDB Plugin
and later.)

row_ins_foreign_check_on_constraint(): Simplify a condition. Declare
the update vector uninitialized.

rb:771 approved by Jimmy Yang
2011-10-25 17:33:38 +03:00
Vasil Dimov
c89cbbc6d3 Merge mysql-5.1-security -> mysql-5.5-security (Fix Bug#12661768) 2011-10-25 16:48:23 +03:00
Vasil Dimov
7312f83cb9 Fix Bug#12661768 UPDATE IGNORE CRASHES SERVER IF TABLE IS INNODB AND IT IS
PARENT FOR OTHER ONE

Do not try to lookup key_nr'th key in 'table' because there may not be such
a key there. key_nr is the number of the key in the _child_ table name, not
in the parent table.

Instead just print the fields of the record that are covered by the first key
defined on the parent table.

This bug gets a better fix in MySQL 5.6, which is too risky for 5.1 and 5.5.

Approved by:	Jon Olav Hauglid (via IM)
2011-10-25 16:46:38 +03:00
Alexander Nozdrin
5f99ed4997 Auto-merge from mysql-5.5. 2011-10-24 13:21:32 +04:00
Alexander Nozdrin
76b20ba14a Auto-merge from mysql-5.1. 2011-10-24 12:44:27 +04:00
Ashish Agarwal
f816d4c479 bug#11758979 - 51252: ARCHIVE TABLES STILL FAIL UNDER STRESS
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.
2011-10-22 17:04:38 +05:30
Ashish Agarwal
ce33b1fafe bug#11758979 - 51252: ARCHIVE TABLES STILL FAIL UNDER STRESS
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.
2011-10-21 16:19:58 +05:30
Sergey Vojtovich
a3491852b2 Merge. 2011-10-21 09:35:07 +04:00
Sergey Vojtovich
ccd019dd26 Merge. 2011-10-21 09:30:56 +04:00
Sergey Vojtovich
3e0491c758 BUG#11757032 - 49030: OPTIMIZE TABLE BREAKS MYISAM TABLE WHEN
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.
2011-10-20 15:03:22 +04:00
Bjorn Munch
27341322e4 Removing copyright headers from test files 2011-10-19 23:44:17 +02:00
Sergey Glukhov
e022f65be4 Bug#12540545 61101: ASSERTION FAILURE IN THREAD 1256741184 IN FILE /BUILDDIR/BUILD/BUILD/MYSQ
The assertion in innodb is triggered in this way:
1. mysql server does lookup on the primary key with full key,
   innodb decides to not store cursor position because
   "any index_next/prev call will return EOF anyway"
2. server asks innodb to return any next record in the index and the
   assertion is triggered because no cursor position is stored.

It happens when a unique search (match_mode=ROW_SEL_EXACT)
in the clustered index is performed. InnoDB has never stored
the cursor position after a unique key lookup in the
clustered index because storing the position is an expensive
operation. The bug was introduced by 
WL3220 'Loose index scan for aggregate functions'.

The fix is to disallow loose index scan optimization
for AGG_FUNC(DISTINCT ...) if GROUP_MIN_MAX quick select
uses clustered key.
2011-10-19 16:07:14 +04:00
Bjorn Munch
8ee8c7aebf Remove copyright header from parser_stack.test 2011-10-19 13:36:57 +02:00
sayantan.dutta@oracle.com
3068eee354 Bug #11754855 46528: NEED A WAY TO PASS A VARIABLE TO MTR COMMANDS
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
2011-10-19 12:53:52 +05:30
chuck.bell@oracle.com
869b596b74 BUG#12968815: mysql_plugin : disable requires plugin name but doesn't use it
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.
2011-10-17 15:30:28 -04:00
Tor Didriksen
add59cfbaf merge 5.1-security => 5.5-security 2011-10-14 11:14:44 +02:00
Tor Didriksen
cf66b6511f merge 5.0-security => 5.1 security 2011-10-14 10:44:27 +02:00
Tor Didriksen
ea2cd838be Bug#12563865 ROUNDED,TMP_BUF,DECIMAL_VALUE STACK CORRUPTION IN ALL VERSIONS >=5.0
Buffer over-run on all platforms, crash on windows, wrong result on other platforms,
when rounding numbers which start with 999999999 and have
precision = 9 or 18 or 27 or 36 ...
2011-10-14 10:09:53 +02:00
Sergey Glukhov
b195e6f943 Bug#11750518 41090: ORDER BY TRUNCATES GROUP_CONCAT RESULT
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.
2011-10-12 17:41:25 +04:00
Georgi Kodinov
665ef20368 merge mysql-5.5->mysql-5.5-security 2011-10-12 15:07:15 +03:00
Georgi Kodinov
492e5b9bce auto-merge mysql-5.1->mysql-5.1-security 2011-10-12 14:34:44 +03:00
Vinay Fisrekar
9de021c753 merge 5.1 -> 5.5
adjust/modify tests as they were failing if system time zone is set differently.
2011-10-12 10:19:46 +05:30
Vinay Fisrekar
c6120de68f bug#11766457 - adjusting/modifying the the tests as tests were failing if system time zone is set differently. 2011-10-12 10:10:52 +05:30
Joerg Bruehe
3cbe8672d9 Test "file_contents" failed in non-community RPMs on SuSE
because the search pattern for the "INFO_*" files was not general enough:
Fixed.
2011-10-10 14:03:29 +02:00
Tatjana Azundris Nuernberg
399f3e6224 manual merge to reconcile with MySQL ticket 27145 2011-10-06 10:55:57 +01:00