mariadb/storage
Annamalai Gurusami 91c8a65a80 Bug #13249921 ASSERT !BPAGE->FILE_PAGE_WAS_FREED, USUALLY IN
TRANSACTION ROLLBACK

Description:  During the rollback operation, a blob page 
is removed earlier than desired.  Consider following scenario:

1. create table t1(a int primary key,b blob) engine=innodb;
2. insert into t1 values (1,repeat('b',9000));
3. begin;
4. update t1 set b=concat(b,'b');
5. update t1 set a=a+1;
6. insert into t1 values (1,repeat('b',9000));
7. rollback;

The update operation in line 5 produces 2 undo log record. The first
undo record (TRX_UNDO_DEL_MARK_REC) goes to trx->update_undo and the
second undo record (TRX_UNDO_INSERT_REC) goes to trx->insert_undo.
During rollback, they are executed out of order.

When the undo record TRX_UNDO_DEL_MARK_REC is applied/executed,
the blob ownership is also reset.  Because of this the blob page
is released earlier than desired.  This blob page must have been
freed only as part of applying/executing the undo record
TRX_UNDO_INSERT_REC.

This problem can be avoided by executing the undo records in
order.  This patch will make innodb to execute the undo records
in order.

rb://1125 approved by Marko.
2012-09-28 16:02:58 +05:30
..
archive Updated/added copyright headers 2012-02-15 17:21:38 +01:00
blackhole Updated/added copyright headers 2011-06-30 17:37:13 +02:00
csv Updated/added copyright headers 2011-06-30 17:37:13 +02:00
example Updated/added copyright headers 2011-06-30 17:37:13 +02:00
federated Bug #12876932 - INCORRECT SELECT RESULT ON FEDERATED TABLE 2012-07-26 15:09:22 +05:30
heap Updated/added copyright headers 2012-02-15 17:21:38 +01:00
innobase Bug #13249921 ASSERT !BPAGE->FILE_PAGE_WAS_FREED, USUALLY IN 2012-09-28 16:02:58 +05:30
innodb_plugin Bug #13249921 ASSERT !BPAGE->FILE_PAGE_WAS_FREED, USUALLY IN 2012-09-28 16:02:58 +05:30
myisam Bug #13955256: KEYCACHE CRASHES, CORRUPTIONS/HANGS WITH, 2012-05-16 16:14:27 +05:30
myisammrg Updated/added copyright headers 2011-07-03 17:47:37 +02:00
ndb Merge from mysql-5.1.58-release 2011-07-06 00:56:51 +02:00
Makefile.am Updated/added copyright headers 2011-06-30 17:37:13 +02:00
mysql_storage_engine.cmake Updated/added copyright headers 2011-06-30 17:37:13 +02:00