Commit graph

256 commits

Author SHA1 Message Date
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
He Zhenxing
90b072cbde Fix cherry picking patch of BUG#37051 2008-08-26 20:11:56 +08:00
He Zhenxing
78e1f5d523 Cherry picking patch for BUG#37051 2008-08-26 18:01:49 +08: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
Davi Arnaut
fd793526b4 Merge from mysql-5.1 main. 2008-08-15 12:58:19 -03:00
He Zhenxing
87b43cf0df Apply tomas's patch to fix rpl_row_basic.test, this can fix BUG#37884,
BUG#38369, enable rpl_row_basic_7ndb test
2008-08-12 17:09:36 +08:00
Mattias Jonsson
07e9a6dc2a Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
partition is corrupt

The main problem was that ALTER TABLE t ANALYZE/CHECK/OPTIMIZE/REPAIR
PARTITION took another code path (over mysql_alter_table instead of
mysql_admin_table) which differs in two ways:
1) alter table opens the tables in a different way than admin tables do
   resulting in returning with error before it tried the command
2) alter table does not start to send any diagnostic rows to the client
   which the lower admin functions continue to use -> resulting in
   assertion crash

The fix:
Remapped ALTER TABLE t ANALYZE/CHECK/OPTIMIZE/REPAIR PARTITION to use
the same code path as ANALYZE/CHECK/OPTIMIZE/REPAIR TABLE t.
Adding check in mysql_admin_table to setup the partition list for
which partitions that should be used.


Partitioned tables will still not work with
REPAIR TABLE/PARTITION USE_FRM, since that requires moving partitions
to tables, REPAIR TABLE t USE_FRM, and check that the data still
fulfills the partitioning function and then move the table back to
being a partition.

NOTE: I have removed the following functions from the handler
interface:
analyze_partitions, check_partitions, optimize_partitions,
repair_partitions
Since they are not longer needed.
THIS ALTERS THE STORAGE ENGINE API
2008-08-11 20:02:03 +02: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
Sven Sandberg
3d5289c2dd BUG#38068: binlog_stm_binlog fails sporadically in pushbuild
Post-push fix: updated some result files that were affected
by the previous fix to this bug.
2008-07-29 17:36:13 +02:00
Kristofer Pettersson
9d83bfb469 merge 5.1->5.1-bugteam 2008-07-22 12:56:36 +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
Joerg Bruehe
241581fb8d Merge 5.1.26-rc to 5.1-build for further pushing it to the main tree. 2008-07-11 20:51:10 +02:00
Mats Kindahl
2a089557a6 BUG#37426: RBR breaks for CHAR() UTF-8 fields > 85 chars
In order to handle CHAR() fields, 8 bits were reserved for
the size of the CHAR field. However, instead of denoting the
number of characters in the field, field_length was used which
denotes the number of bytes in the field.

Since UTF-8 fields can have three bytes per character (and
has been extended to have four bytes per character in 6.0),
an extra two bits have been encoded in the field metadata
work for fields of type Field_string (i.e., CHAR fields).

Since the metadata word is filled, the extra bits have been
encoded in the upper 4 bits of the real type (the most 
significant byte of the metadata word) by computing the
bitwise xor of the extra two bits. Since the upper 4 bits
of the real type always is 1111 for Field_string, this 
means that for fields of length <256, the encoding is
identical to the encoding used in pre-5.1.26 servers, but
for lengths of 256 or more, an unrecognized type is formed,
causing an old slave (that does not handle lengths of 256
or more) to stop.
2008-06-30 22:11:18 +02:00
Gleb Shchepa
954fba4739 Fixed bug #37076: TIMESTAMP/DATETIME/DATE values are not
replicated correctly between machines with
                  mixed endiannes
2008-06-19 18:02:04 +05:00
Sven Sandberg
25bddd93c3 BUG#36826: rpl_slave_status fails sporadically in pushbuild
rpl_slave_status failed on pushbuild. The slave stopped with an
error. Adding sync_slave_with_master fixes the problem. Updated
test case.
2008-05-26 15:06:49 +02:00
cmiller@zippy.cornsilk.net
fd6cce83fb Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug36570/my51-bug36570
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-bugteam
2008-05-16 17:37:37 -04:00
gkodinov/kgeorge@magare.gmz
b98922b7cc Merge magare.gmz:/home/kgeorge/mysql/work/B36011-take2-5.0-bugteam
into  magare.gmz:/home/kgeorge/mysql/work/B36011-5.1-bugteam
2008-05-16 19:03:50 +03:00
cmiller@zippy.cornsilk.net
e0ed56df0a Re-record results from unmerged file. 2008-05-16 11:38:13 -04:00
cmiller@zippy.cornsilk.net
1e5fc1089f Fix merge problems and re-record output for legitimate changes. 2008-05-16 11:35:15 -04:00
mats@mats-laptop.(none)
438f2cff3c Fixes to make rpl_insert_id pass in 5.1-bugteam. 2008-05-16 16:08:24 +02:00
cmiller@zippy.cornsilk.net
b59575830a Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug36570/my50-bug36570
into  zippy.cornsilk.net:/home/cmiller/work/mysql/bug36570/my51-bug36570
2008-05-16 09:23:27 -04:00
mats@mats-laptop.(none)
4040b4241a Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.1-bugteam
into  mats-laptop.(none):/home/bkroot/mysql-5.1-bugteam
2008-05-16 10:03:15 +02:00
mats@mats-laptop.(none)
97cf8bd80d Merge mats-laptop.(none):/home/bkroot/mysql-5.1-bugteam
into  mats-laptop.(none):/home/bk/b36197-mysql-5.1-bugteam
2008-05-15 21:04:13 +02:00
sven@riska.(none)
365dbaab21 BUG#36433: rpl_insert_id detects inconsistency on master
Problem: If INSERT is immediately followed by SELECT in another thread,
the newly inserted rows may not be returned by the SELECT statement, if
ENGINE=myisam and @@concurrent_insert=1. This caused sporadic errors in
rpl_insert_id.
Fix: The test now uses ENGINE=$engine_type when creating tables (so that
innodb is used). It also turns off @@concurrent_insert around the critical
place, so that it works if someone in the future writes a test that sets
$engine_type=myisam before sourcing extra/rpl_tests/rpl_insert_id.test.
It also adds ORDER BY to all SELECTs so that the result is deterministic.
2008-05-15 17:22:53 +02:00
mats@mats-laptop.(none)
2a1dda44c3 Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.1-bug36197
into  mats-laptop.(none):/home/bk/b36197-mysql-5.1-bugteam
2008-05-12 20:01:10 +02:00
mats@mats-laptop.(none)
812fa8b24c BUG#36197: flush tables (or little table cache) can cause crash on slave
When flushing tables, there were a slight chance that the flush was occuring
between processing of two table map events. Since the tables are opened
one by one, it might result in that the tables were not valid and that sub-
sequent locking of tables would cause the slave to crash.

The problem is solved by opening and locking all tables at once using
simple_open_n_lock_tables(). Also, the patch contain a change to open_tables()
so that pre-locking only takes place when the trg_event_map is not zero, which
was not the case before (this caused the lock to be placed in thd->locked_tables
instead of thd->lock since the assumption was that triggers would be called
later and therefore the tables should be pre-locked).
2008-05-12 19:50:53 +02:00
mattiasj@client-10-129-10-147.upp.off.mysql.com
46375759a2 Bug#32575: Parse error of stmt with extended comments on slave side
test change for 5.1+ (show create view adds two columns in 5.1)

Patch only for 5.1+
2008-05-08 14:02:09 +02:00
mattiasj@client-10-129-10-147.upp.off.mysql.com
5a340eeaec Merge client-10-129-10-147.upp.off.mysql.com:/Users/mattiasj/clones/topush-50-bugteam
into  client-10-129-10-147.upp.off.mysql.com:/Users/mattiasj/clones/topush-51-bugteam
2008-05-08 13:45:40 +02:00
sven@riska.(none)
0c2a0e8095 Merge riska.(none):/home/sven/bk/b36379-enable_test/gca
into  riska.(none):/home/sven/bkroot/5.1-bugteam
2008-05-07 20:17:37 +02:00
sven@riska.(none)
cf7c15fee8 BUG#36398: 'DROP TEMPORARY TABLE' in ROLLBACK transaction causes transaction to be logged
Temporarily checking in an incorrect test case. Rationale: the impact of
this bug is negligible (it's almost a feature request). We need 5.1 to be
stable, and making a real fix is a bit risky. So the fix is postponed
to 6.0.
2008-05-07 13:02:06 +02:00
sven@riska.(none)
9565c7adc9 BUG#36379: please re-enable rpl_innodb_bug28430
The test suite/rpl/t/rpl_innodb_bug28430.test was disabled because of
BUG#32247, but not re-enabled when BUG#32247 was fixed. I've re-enabled
it. The test and result file needed to be updated too.
2008-05-07 12:57:07 +02:00
aelkin/andrei@mysql1000.dsl.inet.fi
9afdba04d6 Bug #36435 rpl_events uses non-deterministic check
Select of the test could not perform deterministically, because the table remains to be 
updatable by the running event handler.

Fixed with changing verification to use a logical values instead of comparison 
with a pre-recorded results.
2008-04-30 21:41:50 +03:00
aelkin/andrei@mysql1000.(none)
725d07d559 Bug #35762 Failing CREATE-SELECT steels Table map of the following query
Among two claimed artifacts the critical one is in that the Table map of 
a query following the failing with a duplicate key error CREATE-SELECT is skipped from
instantionating (and thus binlogging). That leads to sending a "chopped" group of the data
row-events without the table map head to the slave. 
The slave can not apply the only data row events.
It's not easy to force the slave to react with an error in such a case (the second complaint
on the bug report), because the lack of a table Rows_log_event::do_apply_event the data row event
handler is a common situation which  normally designates the event has to be filtered out
basing on the repliation do/ingore rules decision.

Fixed: table map creating and binlogging is restored via deploying the standard cleanup call in
select_create::abort().
No error is reported if by chance the table map was not been binlogged.
Leaving this out to resolve with considering how to combine the do/ingore rules with the situation
when erronoulsy the Table_map is not written to binlog.
2008-04-08 10:43:00 +03:00
mkindahl@dl145h.mysql.com
354f4d4cf6 Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.1
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl-merge
2008-04-01 08:45:24 +02:00
kent/mysqldev@mysql.com/production.mysql.com
7cd32aa3ec disabled.def:
Disabled 'rpl_redirect', failure is sporadic and and the test is superfluous
rpl_packet.test, rpl_packet.result:
  Removing race conditions from rpl_packet causing test to fail
2008-03-31 19:01:56 +02:00
mkindahl@dl145h.mysql.com
b9f860f3e6 Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl-merge
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl-merge
2008-03-31 16:34:52 +02:00
gkodinov/kgeorge@magare.gmz
0463ba57a5 Merge bk-internal:/home/bk/mysql-5.1
into  magare.gmz:/home/kgeorge/mysql/work/merge-build-5.1-bugteam
2008-03-31 11:57:18 +03:00
aelkin/andrei@mysql1000.(none)
ba7b1a7e55 Bug #35675 reset master finds assert if a binlog file can not be deleted
If a binlog file is manually replaced with a namesake directory the internal purging did
not handle the error of deleting the file so that eventually
a post-execution guards fires an assert.

Fixed with reusing a snippet of code for bug@18199 to tolerate lack of the file but no other error 
at an attempt to delete it.
The same applied to the index file deletion.

The cset carries pieces of manual merging.
2008-03-30 00:54:08 +02:00
mats@mats-laptop.(none)
476a7bf2d7 Post-merge fixes to remove test failures resulting from merge. 2008-03-28 18:56:43 +01:00
mats@mats-laptop.(none)
c14426aefe Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.1-bugteam
into  mats-laptop.(none):/home/bk/b29020-mysql-5.1-rpl
2008-03-28 14:52:33 +01:00
mats@mats-laptop.(none)
c8c4500a98 BUG#29020 (Event results not correctly replicated to slave in RBR):
The bug allow multiple executing transactions working with non-transactional
to interfere with each others by interleaving the events of different trans-
actions.

Bug is fixed by writing non-transactional events to the transaction cache and
flushing the cache to the binary log at statement commit. To mimic the behavior
of normal statement-based replication, we flush the transaction cache in row-
based mode when there is no committed statements in the transaction cache,
which means we are committing the first one. This means that it will be written
to the binary log as a "mini-transaction" with just the rows for the statement.

Note that the changes here does not take effect when building the server with
HAVE_TRANSACTIONS set to false, but it is not clear if this was possible before
this patch either.

For row-based logging, we also have that when AUTOCOMMIT=1, the code now always
generates a BEGIN/COMMIT pair for single statements, or BEGIN/ROLLBACK pair in the
case of non-transactional changes in a statement that was rolled back. Note that
for the case where changes to a non-transactional table causes a rollback due
to error, the statement will now be logged with a BEGIN/ROLLBACK pair, even
though some changes has been committed to the non-transactional table.
2008-03-28 13:16:41 +01:00
istruewing@stella.local
44fbe74e1e Merge stella.local:/home2/mydev/mysql-5.1-amain
into  stella.local:/home2/mydev/mysql-5.1-axmrg
2008-03-26 10:27:00 +01:00
istruewing@stella.local
b67add660f Post-merge fixes 2008-03-14 21:37:19 +01:00
mkindahl@dl145h.mysql.com
f48aa05fd0 Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.1-new-rpl
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl
2008-03-14 18:18:14 +01:00
mkindahl@dl145h.mysql.com
c5fefc688c Post-merge fixes. 2008-03-14 17:52:57 +01:00
svoj@april.(none)
3a7bcaf7d6 Merge mysql.com:/home/svoj/devel/mysql/BUG13861/mysql-5.0-engines
into  mysql.com:/home/svoj/devel/mysql/BUG13861/mysql-5.1-engines
2008-03-14 17:54:17 +04:00
mkindahl@dl145h.mysql.com
b5ebc67855 Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl
2008-03-12 13:07:35 +01:00