mirror of
https://github.com/MariaDB/server.git
synced 2026-05-15 03:17:20 +02:00
BUG#18283 When InnoDB returns error 'lock table full', MySQL can write
to binlog too much. When InnoDB has to rollback a transaction because the lock table has filled up, it also needs to inform the upper layer that the transaction was rolled back so that the cached transaction is not written to the binary log. sql/ha_innodb.cc: When InnoDB rolls back a transaction in HA_ERR_LOCK_TABLE_FULL, it needs to inform the upper layer to rollback the transaction also.
This commit is contained in:
parent
fd6d45f0b0
commit
367442f754
1 changed files with 7 additions and 0 deletions
|
|
@ -332,6 +332,13 @@ convert_error_code_to_mysql(
|
|||
|
||||
return(HA_ERR_NO_SAVEPOINT);
|
||||
} else if (error == (int) DB_LOCK_TABLE_FULL) {
|
||||
/* Since we rolled back the whole transaction, we must
|
||||
tell it also to MySQL so that MySQL knows to empty the
|
||||
cached binlog for this transaction */
|
||||
|
||||
if (thd) {
|
||||
ha_rollback(thd);
|
||||
}
|
||||
|
||||
return(HA_ERR_LOCK_TABLE_FULL);
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue