Sven, hej.
> Below is the list of changes that have just been committed into a local
> 5.0 repository of sven. When sven does a push these changes
> will be propagated to the main repository and, within 24 hours after the
> push, to the public repository.
> For information on how to access the public repository
> see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
>
> ChangeSet@stripped, 2008-02-28 14:11:14+01:00, sven@riska.(none) +12 -0
> BUG#29288: myisam transactions replicated to a transactional slave leaves slave
> unstable
> Problem: when replicating from myisam to transactional engine with
> autocommit on, no BEGIN/COMMIT is written to the binlog. When the slave
> replicates, it will start a transaction that never ends.
I think you agreed to change the problem description.
Despite we discussed that and I even offered my version: there was no
BEGIN as the tables are of myisam type. It must be autocommit bit that
had been set OFF of the query events that forced the slave to execute
a multi-statement transaction.
It sounds pretty strange to me now, when I wanted to check the failure
scenario, I can not hit this artifact.
Using some of your tests has not helped either.
A test that i made on my own.
master:
create table t (a int) type=myisam
slave:
alter table t (a int) type=innodb
master:
set autcommint = OFF;
begin;
insert into t set a=1;
insert into t set a=2;
commit;
slave:
select * from t; => 1,2
mysql> show variables like 'version';
+---------------+------------------+
| Variable_name | Value |
+---------------+------------------+
| version | 5.0.60-debug-log |
+---------------+------------------+
I expected to see nothing as I thought `set autcommint = OFF' was
remembered in the events and while commit is not comming the innodb
transaction happening on slave won't complete won't commit.
A test that should mimic the test on the desciption page completed
(i checked only innodb type of tables on slave) w/o the issue. In the
end of the test:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Attempt to select from the dropped tables fail as specified:
mysql> select * from t2;
ERROR 1146 (42S02): Table 'tester.t2' doesn't exist
I was puzzling over it for some time ... and remain puzzled.
Could please 1) check the reported problem, 2) check my simple test
above to be certain whether we have or not any issues related to this
bug.
cheers
Andrei