| 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: | |
| Category: | MySQL Server | Severity: | S3 (Non-critical) |
| Version: | 5.5-rc | OS: | Any |
| Assigned to: | Magnus Blåudd | CPU Architecture: | Any |
| Tags: | SEAGULL | ||
[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

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(); +