Bug #26687 rpl_ddl test fails if run with --innodb option
Submitted: 27 Feb 2007 16:54 Modified: 1 Oct 2008 14:22
Reporter: Rafal Somla Email Updates:
Status: Closed Impact on me:
None 
Category:Tests: Replication Severity:S3 (Non-critical)
Version:5.0, 5.1, 5.2, 4.1 OS:Any (Linix)
Assigned to: Matthias Leich CPU Architecture:Any

[27 Feb 2007 16:54] Rafal Somla
Description:
The rpl_ddl test normally passes ok. However, if we add --mysqld=--innodb option to mysql-test-run.pl then it fails. 

This is strange since the test uses InnoDB tables and the option enables innodb storage engine in the server. As far as I can tell, the results returned by rpl_ddl when --innodb option is used are wrong.

If --innodb option causes the innodb engine to be enabled (and otherwise disabled) then it is strange that the test doesn't refuse to work in both cases (it includes have_innodb.inc file).

If --innodb has no effect with respect to innodb engine being enabled or not, then it is strange that the results differ.

BUG#22510 seems related to that one.

How to repeat:
mysql-test-run.pl --mysqld=--innodb rpl_ddl
[28 Feb 2007 10:26] Sveta Smirnova
Thank you for the report.

Verified as described. All versions are affected.
[8 Aug 2008 17:49] Matthias Leich
Interpretation of the observed effects based on experiments
with MySQL 5.0 (set $show_binlog to 1 in rpl_stmt_seq.inc
gives a lot of nice debug output) and reading of the manual
-----------------------------------------------------------

"Standard" run without use of "--innodb":
- Table t1 on slave side uses MyISAM and not InnoDB
  like on master side.
- The Replication uses clever tricks to keep
  - the table t1 on slave side mostly in sync
  - binlogs small
  Observation of binlog shows that only in case of
  explicit or implicit (example CREATE TABLE) COMMIT
  the data modifying statements are written into the
  binlog of the master.
  This does not happen in case of DROP/CREATE TEMPORARY
  TABLE. The DROP/CREATE TEMPORARY TABLE has to be
  written through and this includes unfortunately 
  also the preceding data modifying statements.
  The following ROLLBACK has no effect because a
  INSERT into a MyISAM table is not transactional.

Run with use of "--innodb":
- Table t1 uses InnoDB on master and slave side.
  like on master side.
- The replication mechanism works as above but the
  ROLLBACK after DROP/CREATE TEMPORARY TABLE causes
  that t1 on slave side also looses the just inserted
  record. This means the content of t1 on master and
  slave stays in sync.
- rpl_ddl in MySQL version 5.0
  There are a lot of additional surprising differences
  which are caused by the fact that the slave session
  neither runs with AUTOCOMMIT = 1 nor does commits
  before selecting on t1. IMHO this causes that the
  slave session selects all time on its "historic version"
  of t1 (InnoDB feature).
[12 Aug 2008 16:37] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/51433
[19 Aug 2008 18:22] Patrick Crews
Ok to push.
[22 Aug 2008 17:50] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/52350
[25 Aug 2008 12:21] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/52438
[25 Aug 2008 13:10] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/52454
[28 Aug 2008 13:11] Matthias Leich
Pushed to
5.0-bugteam
5.1-bugteam
6.0-bugeam
[12 Sep 2008 1:44] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/53909

2682 He Zhenxing	2008-09-12 [merge]
      Auto merge
      Update plugin.h.pp for WL#4398
[13 Sep 2008 21:01] Bugs System
Pushed into 6.0.7-alpha  (revid:mleich@mysql.com-20080822174951-gpozxlaclovfkgxb) (version source revid:hakan@mysql.com-20080725175322-8wgujj5xuzrjz3ke) (pib:3)
[18 Sep 2008 7:21] Paul DuBois
Test case changes. No changelog entry needed.

Setting to NDI pending push into 5.1.x.
[26 Sep 2008 12:30] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/54543

2698 He Zhenxing	2008-09-26 [merge]
      Merge 5.1 main -> 5.1-rpl
[1 Oct 2008 16:09] Bugs System
Pushed into 5.1.28  (revid:mleich@mysql.com-20080825130951-c2937jfqtmg6yfsg) (version source revid:mleich@mysql.com-20080825130951-c2937jfqtmg6yfsg) (pib:4)
[28 Oct 2008 21:02] Bugs System
Pushed into 5.1.29-ndb-6.2.17  (revid:mleich@mysql.com-20080825130951-c2937jfqtmg6yfsg) (version source revid:tomas.ulin@sun.com-20081028140209-u4emkk1xphi5tkfb) (pib:5)
[28 Oct 2008 22:21] Bugs System
Pushed into 5.1.29-ndb-6.3.19  (revid:mleich@mysql.com-20080825130951-c2937jfqtmg6yfsg) (version source revid:tomas.ulin@sun.com-20081028194045-0353yg8cvd2c7dd1) (pib:5)
[1 Nov 2008 9:46] Bugs System
Pushed into 5.1.29-ndb-6.4.0  (revid:mleich@mysql.com-20080825130951-c2937jfqtmg6yfsg) (version source revid:jonas@mysql.com-20081101082305-qx5a1bj0z7i8ueys) (pib:5)