Commit graph

461 commits

Author SHA1 Message Date
Mats Kindahl
d40b2cb7af Merging with 5.1-5.1.29-rc 2008-10-08 13:37:13 +02:00
Mats Kindahl
70b18065d0 Bug #34707: Row based replication: slave creates table within wrong database
The failure was caused by executing a CREATE-SELECT statement that creates a
table in another database than the current one. In row-based logging, the
CREATE statement was written to the binary log without the database, hence
creating the table in the wrong database, causing the following inserts to
fail since the table didn't exist in the given database.

Fixed the bug by adding a parameter to store_create_info() that will make
the function print the database name before the table name and used that
in the calls that write the CREATE statement to the binary log. The database
name is only printed if it is different than the currently selected database.

The output of SHOW CREATE TABLE has not changed and is still printed without
the database name.
2008-10-08 11:15:00 +02:00
Georgi Kodinov
3c13410756 fixed test suite failures in 5.1-bugteam 2008-10-07 19:54:12 +03:00
Georgi Kodinov
349fbbbcae merged 5.0-bugteam -> 5.1-bugteam 2008-10-07 18:32:58 +03:00
Georgi Kodinov
b437a0863b merged 5.1-5.1.29-rc -> 5.1-bugteam 2008-10-07 18:19:32 +03:00
Ramil Kalimullin
80505cc9fd Fix for bug#38269: pushbuild gives valgrind error in
ha_statistic_increment for rpl_temporary

Problem: in some cases master send a special event to reconnecting
slave to keep slave's temporary tables (see #17284) and they still 
have references to the "old" SQL slave thread and use them to access
thread's data.

Fix: set temporary tables thread references to the actual SQL slave
thread in such cases.
2008-10-07 18:21:17 +05:00
Mats Kindahl
7a6cac5fc0 Fixing some missing table drops. 2008-10-07 14:22:28 +02:00
Mats Kindahl
c8574b77d7 Post-merge fixes. 2008-10-07 10:25:12 +02:00
Mats Kindahl
2974607a4b Merging 5.1 main into 5.1-rpl. 2008-10-06 10:27:36 +02:00
Mats Kindahl
d19bdf3b30 The test rpl_blackhole was executed even when
there were no blackhole installed. This patch
adds a check for that.
2008-10-03 12:52:01 +02:00
Mats Kindahl
66a3dbceff Merging with 5.1-5.1.29-rc. 2008-10-03 09:36:22 +02:00
Mats Kindahl
3337923cfd Bug #38360: BLACKHOLE replication with RBR is broken
Incremental patch to add comments to test cases.
2008-10-02 21:13:15 +02:00
Mats Kindahl
43fb8633b0 Bug #38360: BLACKHOLE replication with RBR is broken
The Blackhole engine did not support row-based replication
since the delete_row(), update_row(), and the index and range
searching functions were not implemented.

This patch adds row-based replication support for the
Blackhole engine by implementing the two functions mentioned
above, and making the engine pretend that it has found the
correct row to delete or update when executed from the slave
SQL thread by implementing index and range searching functions.

It is necessary to only pretend this for the SQL thread, since
a SELECT executed on the Blackhole engine will otherwise never
return EOF, causing a livelock.
2008-10-02 11:02:38 +02:00
Sven Sandberg
1901da7f51 BUG#38269: pushbuild gives valgrind error in ha_statistic_increment for rpl_temporary
Re-enabling failing test case because server logs were lost in pushbuild, so we need to run it again.
2008-10-01 16:02:04 +02:00
Patrick Crews
03b16815a7 Bug#39803 Test rpl.rpl_truncate_7ndb_2 failing
Fixed bad path in .test file
Moved test to suite/rpl_ndb (per Cluster QA)
Re-recorded .result file to updated expected results.
2008-09-15 15:13:43 -04:00
Georgi Kodinov
7f1734eb22 merged 5.1.29-rc into 5.1-bugteam 2008-09-10 12:44:21 +03:00
Magnus Svensson
54eff66e25 merge 2008-09-06 09:00:03 +02:00
He Zhenxing
6e86e05823 Merge 5.1 main -> 5.1-rpl 2008-09-06 08:51:17 +08:00
Magnus Svensson
e1524b2f1c Bug #38540 rpl_server_id2 uses show slave status unnecessarily 2008-09-05 15:08:55 +02:00
Andrei Elkin
21a08eabad Bug#36099 replicate-do-db affects replaying RBR events with mysqlbinlog
The replication filtering rules were inappropiately applied when
executing BINLOG pseudo-query.  The rules are supposed to be active
only at times when the slave's sql thread executes an event.
            
Fixed with correcting a condition to call replication rules only if
the slave sql thread executes the event.
2008-09-03 13:01:18 +03:00
Mats Kindahl
bcec321d68 Merging 5.0-bugteam into 5.1-bugteam 2008-09-01 11:00:52 +02:00
He Zhenxing
78e1f5d523 Cherry picking patch for BUG#37051 2008-08-26 18:01:49 +08:00
Andrei Elkin
3a1c50bc53 Bug #36968 rpl_temporary_errors.test produces warning in pushbuild
Backporting fixes to 5.1 from 6.0.
2008-08-25 15:40:44 +03:00
Sven Sandberg
28ce5ab20e Bug#35807 - INSTALL PLUGIN replicates row-based, but not stmt-based
INSTALL PLUGIN and UNINSTALL PLUGIN worked with statement-based and
mixed-mode replication only, but not with row-based replication.

There is no statement-based replication of these statements.
But there was row-based replication of the inserts and deletes
to and from the mysql.plugin table.

The fix is to suppress binlogging during insert and delete to
and from the mysql.plugin table.
2008-08-19 17:35:56 +02:00
Mats Kindahl
e28826766f Merging with 5.1-rpl 2008-08-19 15:42:10 +02:00
Mats Kindahl
f0bf4a47ca Bug #34707: Row based replication: slave creates table within wrong database
The failure was caused by executing a CREATE-SELECT statement that creates a
table in another database than the current one. In row-based logging, the
CREATE statement was written to the binary log without the database, hence
creating the table in the wrong database, causing the following inserts to
fail since the table didn't exist in the given database.

Fixed the bug by adding a parameter to store_create_info() that will make
the function print the database name before the table name and used that
in the calls that write the CREATE statement to the binary log. The database
name is only printed if it is different than the currently selected database.

The output of SHOW CREATE TABLE has not changed and is still printed without
the database name.
2008-08-19 13:18:59 +02:00
Davi Arnaut
fd793526b4 Merge from mysql-5.1 main. 2008-08-15 12:58:19 -03:00
He Zhenxing
c6c2e66c67 Merge 5.1-rpl-testfixes -> 5.1-rpl 2008-08-14 17:38:22 +08:00
He Zhenxing
646c509b18 Auto merge from mysql-5.1 main 2008-08-14 14:27:18 +08:00
Serge Kozlov
35e47b31a2 Bug#18817, removing --binlog-format option from .opt files 2008-08-13 23:12:51 +04:00
He Zhenxing
337029cae2 Auto merge 2008-08-06 18:41:27 +08:00
Sven Sandberg
73e253370b merged 5.1 main to 5.1-rpl
manually resolved conflicts:
Text conflict in client/mysqltest.c
Contents conflict in mysql-test/include/have_bug25714.inc
Text conflict in mysql-test/include/have_ndbapi_examples.inc
Text conflict in mysql-test/mysql-test-run.pl
Text conflict in mysql-test/suite/parts/inc/partition_check_drop.inc
Text conflict in mysql-test/suite/parts/inc/partition_layout.inc
Text conflict in mysql-test/suite/parts/inc/partition_layout_check1.inc
Text conflict in mysql-test/suite/parts/inc/partition_layout_check2.inc
Text conflict in mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result
Text conflict in mysql-test/suite/parts/r/partition_alter1_1_myisam.result
Text conflict in mysql-test/suite/parts/r/partition_alter1_2_myisam.result
Text conflict in mysql-test/suite/parts/r/partition_alter2_myisam.result
Text conflict in mysql-test/suite/parts/r/partition_alter3_innodb.result
Text conflict in mysql-test/suite/parts/r/partition_alter3_myisam.result
Text conflict in mysql-test/suite/parts/r/partition_basic_innodb.result
Text conflict in mysql-test/suite/parts/r/partition_basic_myisam.result
Text conflict in mysql-test/suite/parts/r/partition_basic_symlink_myisam.result
Text conflict in mysql-test/suite/parts/r/partition_engine_myisam.result
Text conflict in mysql-test/suite/parts/r/partition_syntax_myisam.result
Text conflict in mysql-test/suite/rpl_ndb/t/disabled.def
Text conflict in mysql-test/t/disabled.def
2008-08-04 07:04:47 +02:00
He Zhenxing
e6ac8830a4 BUG#37051 Replication rules not evaluated correctly
The problem of this bug is that we need to get the list of tables
to be updated for a multi-table update statement, which requires to
open all the tables referenced by the statement and resolve all
the fields involved in update in order to figure out the list of
tables for update. However if there are replicate filter rules,
some tables might not exist on slave and result in a failure
before we could examine the filter rules.

I think the whole problem can not be solved on slave alone,
the master must record and send the information of tables
involved for update to slave, so that the slave do not need to
open all the tables referenced by the multi-table update statement to
figure out which tables are involved for update.

So a status variable is added to Query_log event to store the
value of table map for update on master. And on slave, it will
try to get the value of this variable and use it to examine
filter rules without opening any tables on slave, if this values
is not available, the old approach is used and thus the bug will
still occur for when replicating from old masters.
2008-07-31 14:24:27 +08:00
Sven Sandberg
1562db45f1 merge 5.1 main -> 5.1-rpl-testfixes
all changes automerged without conflicts
2008-07-29 19:55:46 +02:00
Serge Kozlov
f763a96d2b Bug#37732 2008-07-25 21:23:50 +04:00
Sven Sandberg
7750753312 BUG#37733: rpl.rpl_flushlog_loop 'row' fails sporadically on pushbuild
BUG#37884: rpl_row_basic_2myisam and rpl_row_basic_3innodb fail sporadically in pushbuild
These have been fixed in 5.1-rpl. Re-applying fix for BUG#37884
in 5.1-bugteam, and disabling rpl_flushlog_loop for BUG#37733 in
5.1-bugteam.
2008-07-23 16:34:02 +02:00
Sven Sandberg
b6545b30fa BUG#37717: rpl.rpl_stm_until 'stmt' fails sporadically on pushbuild
Problem: After START SLAVE, the Slave_IO_Status column of
SHOW SLAVE STATUS goes from No to Yes asynchronously. That
caused sporadic failures on pushbuild in rpl_stm_until since
the test contains SHOW SLAVE STATUS right after START SLAVE.
Fix: Wait until Slave_IO_Status becomes Yes after each
START SLAVE.
2008-07-23 13:23:52 +02:00
Sven Sandberg
bb945f70a1 BUG#37493: rpl_trunc_temp.test nondeterministic
Problem: the test waits for a 'DROP TEMPORARY TABLE' event to
appear in the master's binlog, then checks on the slave whether
the number of temporary tables has decreased. The slave does
not sync, causing a race.
Fix: check for the 'DROP TEMPORARY TABLE' event on slave
instead of on master.
2008-07-23 12:13:55 +02:00
Sven Sandberg
5ca789693b BUG#38269: pushbuild gives valgrind error in ha_statistic_increment for rpl_temporary
This does not fix the bug. It only disables the failing test.
2008-07-21 21:05:06 +02:00
Sven Sandberg
38376746e3 BUG#38077: rpl_incident At line 22: query 'SELECT * ...' Table 'test.t1' doesn't exist
This is not a fix to the bug. It only adds debug info, so
that we can analyze the bug better next time it happens.
Please revert the patch after the bug is fixed.
2008-07-18 15:07:14 +02:00
Andrei Elkin
a5d1e6101e Bug #36818 rpl_server_id1 fails expecting slave has stopped
the reason for the failure is that io thread passes through a sequence of state
changes before it eventually got stuck at the expect running state as NO.
It's unreasonble to wait for the running status while the whole idea of the test is
to get to the IO thread error.

Fixed with changing the waiting condition.
2008-07-18 14:53:16 +03:00
Sven Sandberg
e5d1324d80 BUG#38178: rpl_loaddata_map fails sporadically in pushbuild
Problem: master binlog has 'create table t1'. Master binlog
was removed before slave could replicate it. In test's cleanup
code, master did 'drop table t1', which caused slave sql
thread to stop with an error since slave sql thread did not
know about t1.
Fix: t1 is just an auxiliary construction, only needed on
master. Hence, we turn off binlogging before t1 is created,
drop t1 as soon as we don't need it anymore, and then turn
on binlogging again.
2008-07-18 13:34:19 +02:00
Andrei Elkin
58cb8cbeb4 Bug #34647 rpl_temporary discovers more than one dump thread and fails to select
Many dump threads can exist due to a way the new version of mtr governs suites.

For this immediate problem the test is refined not to use I_S but rather to reconnect
explicitly with preserving logics of a an old target bug fixes verification.
2008-07-18 11:20:55 +03:00
Sven Sandberg
e77957eecb BUG#38170: rpl_variables failed on pushbuild: could not sync with master
Problem: the test set @@global.init_slave to garbage at a time
which was not guaranteed to be after the time when the slave's
SQL thread used it. That would cause the slave's SQL thread to
stop in rare cases.
Fix: The test does not care about the value of
@@global.init_slave, except that it should be different on
master and slave. Hence, we set @@global.init_slave to
something that is valid SQL.
2008-07-17 18:26:59 +02:00
Sven Sandberg
ed8a08ba0c BUG#37733: rpl.rpl_flushlog_loop 'row' fails sporadically on pushbuild
Post-post-push fix. The result file for rpl_rbr_to_sbr needs to be 
updated. While I was there, made rpl_rbr_to_sbr clean up after itself
by reverting @@binlog_format to the value it had before the test
started.
2008-07-16 11:17:10 +02:00
Sven Sandberg
c697802855 local merge in 5.1-rpl 2008-07-14 10:31:07 +02:00
Sven Sandberg
a49577cc2f test case rpl.rpl000018 does not exist but has option files.
removing the option files
2008-07-10 19:25:04 +02:00
Sven Sandberg
78c8bfdddf BUG#37975: wait_for_slave_* should increase the timeout
Problem 1: tests often fail in pushbuild with a timeout when waiting
for the slave to start/stop/receive error.
Fix 1: Updated the wait_for_slave_* macros in the following way:
- The timeout is increased by a factor ten
- Refactored the macros so that wait_for_slave_param does the work for
the other macros.
Problem 2: Tests are often incorrectly written, lacking a
source include/wait_for_slave_to_[start|stop].inc.
Fix 2: Improved the chance to get it right by adding
include/start_slave.inc and include/stop_slave.inc, and updated tests
to use these.
Problem 3: The the built-in test language command
wait_for_slave_to_stop is a misnomer (does not wait for the slave io
thread) and does not give as much debug info in case of failure as
the otherwise equivalent macro
source include/wait_for_slave_sql_to_stop.inc
Fix 3: Replaced all calls to the built-in command by a call to the
macro.
Problem 4: Some, but not all, of the wait_for_slave_* macros had an
implicit connection slave. This made some tests confusing to read,
and made it more difficult to use the macro in circular replication
scenarios, where the connection named master needs to wait.
Fix 4: Removed the implicit connection slave from all
wait_for_slave_* macros, and updated tests to use an explicit
connection slave where necessary.
Problem 5: The macros wait_slave_status.inc and wait_show_pattern.inc
were unused. Moreover, using them is difficult and error-prone.
Fix 5: remove these macros.
Problem 6: log_bin_trust_function_creators_basic failed when running
tests because it assumed @@global.log_bin_trust_function_creators=1,
and some tests modified this variable without resetting it to its
original value.
Fix 6: All tests that use this variable have been updated so that
they reset the value at end of test.
2008-07-10 18:09:39 +02:00
Mats Kindahl
87d1603700 Ensuring that master and slave both issue a RESET MASTER and RESET SLAVE
when resetting replication tests.  If not, circular replication setups
will leave cruft in the slaves binary log.
2008-07-09 14:34:00 +02:00
Sven Sandberg
9a10e967b3 merged in disabled test cases 2008-07-08 12:59:23 +02:00