Commit c88f2f61 authored by Vasil Dimov's avatar Vasil Dimov

Followup to Bug#51920, fix binlog.binlog_killed

This is a followup to the fix of

Bug#51920 Innodb connections in row lock wait ignore KILL until lock wait
timeout

in that fix (rb://279) the behavior was changed to honor when a trx is
interrupted during lock wait, but the returned error code was still
"lock wait timeout" when it should be "interrupted".

This change fixes the non-deterministically failing test binlog.binlog_killed,
that failed like this:

binlog.binlog_killed 'stmt'              [ fail ]
        Test ended at 2010-05-12 11:39:08

CURRENT_TEST: binlog.binlog_killed
mysqltest: At line 208: query 'reap' failed with wrong errno 1205: 'Lock wait timeout exceeded; try restarting transaction', instead of 0...

Approved by:	Sunny Bains (rb://344)
parent 510eda61
...@@ -522,6 +522,7 @@ handle_new_error: ...@@ -522,6 +522,7 @@ handle_new_error:
case DB_CANNOT_ADD_CONSTRAINT: case DB_CANNOT_ADD_CONSTRAINT:
case DB_TOO_MANY_CONCURRENT_TRXS: case DB_TOO_MANY_CONCURRENT_TRXS:
case DB_OUT_OF_FILE_SPACE: case DB_OUT_OF_FILE_SPACE:
case DB_INTERRUPTED:
if (savept) { if (savept) {
/* Roll back the latest, possibly incomplete /* Roll back the latest, possibly incomplete
insertion or update */ insertion or update */
......
...@@ -1644,12 +1644,16 @@ srv_suspend_mysql_thread( ...@@ -1644,12 +1644,16 @@ srv_suspend_mysql_thread(
innodb_lock_wait_timeout, because trx->mysql_thd == NULL. */ innodb_lock_wait_timeout, because trx->mysql_thd == NULL. */
lock_wait_timeout = thd_lock_wait_timeout(trx->mysql_thd); lock_wait_timeout = thd_lock_wait_timeout(trx->mysql_thd);
if (trx_is_interrupted(trx) if (lock_wait_timeout < 100000000
|| (lock_wait_timeout < 100000000 && wait_time > (double) lock_wait_timeout) {
&& wait_time > (double) lock_wait_timeout)) {
trx->error_state = DB_LOCK_WAIT_TIMEOUT; trx->error_state = DB_LOCK_WAIT_TIMEOUT;
} }
if (trx_is_interrupted(trx)) {
trx->error_state = DB_INTERRUPTED;
}
} }
/********************************************************************//** /********************************************************************//**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment