Bug #29570 original error lost in write_event on slave
Submitted: 5 Jul 2007 10:00 Modified: 6 Sep 2007 9:30
Reporter: Tomas Ulin Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Replication Severity:S3 (Non-critical)
Version: OS:Any
Assigned to: Tomas Ulin CPU Architecture:Any

[5 Jul 2007 10:00] Tomas Ulin
Description:
      error= do_exec_row(table);
      table->in_use = old_thd;
      switch (error)
      {
        /* Some recoverable errors */
      case HA_ERR_RECORD_CHANGED:
      case HA_ERR_KEY_NOT_FOUND:	/* Idempotency support: OK if
                                           tuple does not exist */
	error= 0;
      case 0:
	break;

      default:
	slave_print_msg(ERROR_LEVEL, rli, thd->net.last_errno,
                        "Error in %s event: row application failed",
                        get_type_str());
	thd->query_error= 1;
	break;
      }

How to repeat:
.
[5 Jul 2007 10:01] 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/30357

ChangeSet@1.2578, 2007-07-05 12:03:57+02:00, tomas@whalegate.ndb.mysql.com +1 -0
  Bug #29570 original error lost in write_event on slave
  - quick fix for CGE 6.1
[5 Jul 2007 12:31] Tomas Ulin
I get this if I induce an in ndb write row and run rpl_ndb_UUID

(will attach patch to induce error)

070705 15:31:24 [ERROR] Slave SQL: Error in Write_rows event: error during transaction execution on table test.t2, Error_code: 0
070705 15:31:29 [ERROR] Slave SQL: Error in Write_rows event: row application failed, Error_code: 0
070705 15:31:29 [ERROR] Slave SQL: Error in Write_rows event: error during transaction execution on table test.t2, Error_code: 0
070705 15:31:34 [ERROR] Slave SQL: Error in Write_rows event: row application failed, Error_code: 0
070705 15:31:34 [ERROR] Slave SQL: Error in Write_rows event: error during transaction execution on table test.t2, Error_code: 0
070705 15:31:34 [ERROR] Slave SQL thread retried transaction 10 time(s) in vain, giving up. Consider raising the value of the slave_transaction_retries variable.
[5 Jul 2007 12:34] Tomas Ulin
patch to induce error 899 in the ndb handler

Attachment: tmp.patch (text/x-patch), 424 bytes.

[5 Jul 2007 14:55] Tomas Ulin
suggested bug fix

Attachment: bug.patch (text/x-patch), 1.18 KiB.

[5 Jul 2007 18:06] Andrei Elkin
Patch looks good.

I'd suggest to add printing of thd->net.last_error at a similar call inside of
the while loop.
[6 Jul 2007 10:36] 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/30429

ChangeSet@1.2555, 2007-07-06 12:39:03+02:00, tomas@whalegate.ndb.mysql.com +1 -0
  Bug #29570 original error lost in write_event on slave
  - make sure error gets propagated to thd->net by calling print_error
  - also print the full error message
[9 Jul 2007 7:33] 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/30515

ChangeSet@1.2556, 2007-07-09 09:35:27+02:00, tomas@whalegate.ndb.mysql.com +2 -0
  Bug #29570
  - correct result files
[10 Jul 2007 6:57] 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/30585

ChangeSet@1.2543, 2007-07-10 09:00:15+02:00, tomas@whalegate.ndb.mysql.com +2 -0
  Bug #29570
  - correct result files
[10 Jul 2007 13:27] Bugs System
Pushed into 5.1.21-beta
[4 Sep 2007 11:14] Lars Thalmann
Fix ensured that storage engine error conditions in row-based
replication were correctly reported to user.
[6 Sep 2007 9:30] Jon Stephens
Thank you for your bug report. This issue has already been fixed in the latest released version of that product, which you can download at

  http://www.mysql.com/downloads/

Documented in 5.1.21 changelog per Lars' comment.

Also documented in mysql-5.1.15-ndb-6.1.18 changelog (fix was backported to telco-6.1).