Bug #69778 Two uncommitted transactions corrupts the database
Submitted: 18 Jul 2013 12:46 Modified: 22 Sep 2015 11:58
Reporter: Džiugas Baltrūnas Email Updates:
Status: No Feedback Impact on me:
None 
Category:MySQL Server: InnoDB storage engine Severity:S2 (Serious)
Version:5.6.12 OS:Linux (Ubuntu 12.04.2 LTS)
Assigned to: CPU Architecture:Any

[18 Jul 2013 12:46] Džiugas Baltrūnas
Description:
Crash of MySQL ended up in an unrecoverable situation when there were two uncommitted transactions and an attempt to rollback (?) them causes a crash with a signal 6, surrounded by the "supremum not pointed to" and "infimum not pointed to" errors. I was able to start mysqld with innodb_force_recovery set to 3 and those two transactions were visible in the INNODB_TRX table with trx_state RUNNING and trx_mysql_thread_id 0, so there was no way to "kill" them. Setting innodb_force_recovery to any other value also didn't help, since when set to 0, an attempt to rollback these two transactions will always fail with a crash. Since the release notes of 5.6.12 include a fix for trx_rollback_or_clean_recovered, I tried to downgrade to 5.6.11 but that didn't help.

I don't know if it is related or not, but just 28 minutes before the unrecoverable crash (first message below at 15:40) there was "Error: corruption in the tablespace. Bitmap shows insert", but after that the database has survived for a while (until 16:08).

There are only few databases with a few tables running, the most heavily used is the table of 5 columns with ROW_FORMAT=COMPRESSED and KEY_BLOCK_SIZE=4.

I've recovered the data by starting mysqld with innodb_force_recovery=3 and then issuing mysqldump.

How to repeat:
N/A
[18 Jul 2013 12:47] Džiugas Baltrūnas
Excerpts of error.log which relate to the crash

Attachment: error.log (application/octet-stream, text), 359.13 KiB.

[22 Aug 2015 11:58] MySQL Verification Team
The crash is in the insert buffer (change buffer) code.   You should try
5.6.27 once it is released, as there is a related fix there.

You can run with --innodb-change-buffering=none until new version is released.
[23 Sep 2015 1:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".