Bug #58082 injector::transaction need rollback support
Submitted: 9 Nov 2010 13:08 Modified: 3 Mar 2011 2:19
Reporter: Magnus Blåudd Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:5.5-rc OS:Any
Assigned to: Magnus Blåudd CPU Architecture:Any
Tags: SEAGULL

[9 Nov 2010 13:08] Magnus Blåudd
Description:
ha_ndbcluster_binlog need support for injector::transaction::rollback in order to implement --no-log-empty-epochs

When code detects that nothing has been written to during the whole epoch, it will rollback the transaction.

How to repeat:
.

Suggested fix:
This is the code for 7.0, but it looks like it need to use the functions from transaction.h to do the rollback. Maybe as simple as calling trans_rollback(m_thd).

=== modified file 'sql/rpl_injector.cc'
--- sql/rpl_injector.cc	2010-01-28 21:51:40 +0000
+++ sql/rpl_injector.cc	2010-10-14 14:39:26 +0000
@@ -90,6 +93,14 @@
 
+int injector::transaction::rollback()
+{
+   DBUG_ENTER("injector::transaction::rollback()");
+   ha_autocommit_or_rollback(m_thd, 1 /* error to get rollback */);
+   end_trans(m_thd, ROLLBACK);
+   DBUG_RETURN(0);
+}
+

=== modified file 'sql/rpl_injector.h'
--- sql/rpl_injector.h	2007-05-10 09:59:39 +0000
+++ sql/rpl_injector.h	2010-10-14 14:39:26 +0000
@@ -210,6 +213,14 @@
       int commit();
 
+      /*
+        Rollback a transaction.
+
+        This member function will clean up after a sequence of *_row calls by,
+        for example, releasing resource and unlocking files.
+      */
+      int rollback();
+
[1 Feb 2011 8:53] 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/130107
[1 Feb 2011 14:34] 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/130132

3586 Magnus Blåudd	2011-02-01 [merge]
      Merge of fix for bug#58082
[1 Feb 2011 14:35] Bugs System
Pushed into mysql-trunk 5.6.2 (revid:magnus.blaudd@oracle.com-20110201143429-zy98jul6okjlpudf) (version source revid:magnus.blaudd@oracle.com-20110201143429-zy98jul6okjlpudf) (merge vers: 5.6.2) (pib:24)
[3 Mar 2011 2:19] Paul DuBois
Noted in 5.6.2 changelog.

injector::transaction did not have support for rollback.

CHANGESET - http://lists.mysql.com/commits/130132