Bug #62999 InnoDB: The tablespace free space info is corrupt.
Submitted: 28 Oct 2011 18:26 Modified: 18 Jan 2012 16:12
Reporter: Jan Fredriksson Email Updates:
Status: No Feedback Impact on me:
None 
Category:MySQL Server: InnoDB storage engine Severity:S1 (Critical)
Version:5.1.41 OS:Linux (Ubuntu 10.04)
Assigned to: CPU Architecture:Any
Tags: Corrupt database

[28 Oct 2011 18:26] Jan Fredriksson
Description:
*** Begin Logs:
InnoDB: Dump of the tablespace extent descriptor:  len 40; hex 00000000000815fa000080001dae00014000011600000001ffffffffffffffffffffffffffffffff; asc                 @                       ;
InnoDB: Serious error! InnoDB is trying to free page 93558
InnoDB: though it is already marked as free in the tablespace!
InnoDB: The tablespace free space info is corrupt.
InnoDB: You may need to dump your InnoDB tables and recreate the whole
InnoDB: database!
InnoDB: Please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.1/en/forcing-recovery.html
InnoDB: about forcing recovery.
111028 14:48:03  InnoDB: Assertion failure in thread 140296758298368 in file ../../../storage/innobase/fsp/fsp0fsp.c line 3007
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.1/en/forcing-recovery.html
InnoDB: about forcing recovery.
111028 14:48:03 - mysqld got signal 6 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
We will try our best to scrape up some info that will hopefully help diagnose
the problem, but since we have already crashed, something is definitely wrong
and this may fail.

key_buffer_size=268435456
read_buffer_size=131072
max_used_connections=2
max_threads=151
threads_connected=1
It is possible that mysqld could use up to 
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 592255 K
bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

thd: 0x0
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = (nil) thread_stack 0x100000
/usr/sbin/mysqld(my_print_stacktrace+0x29) [0x7f9a121ab1a9]
/usr/sbin/mysqld(handle_segfault+0x404) [0x7f9a11eb8884]
/lib/libpthread.so.0(+0xf8f0) [0x7f9a117298f0]
/lib/libc.so.6(gsignal+0x35) [0x7f9a101a3a75]
/lib/libc.so.6(abort+0x180) [0x7f9a101a75c0]
/usr/sbin/mysqld(+0x554203) [0x7f9a120ad203]
/usr/sbin/mysqld(btr_free_externally_stored_field+0x2a2) [0x7f9a120735b2]
/usr/sbin/mysqld(+0x5a200f) [0x7f9a120fb00f]
/usr/sbin/mysqld(row_purge_step+0x408) [0x7f9a120fba48]
/usr/sbin/mysqld(que_run_threads+0x520) [0x7f9a120e8800]
/usr/sbin/mysqld(trx_purge+0x356) [0x7f9a12117856]
/usr/sbin/mysqld(srv_master_thread+0xfdf) [0x7f9a1210ea9f]
/lib/libpthread.so.0(+0x69ca) [0x7f9a117209ca]
/lib/libc.so.6(clone+0x6d) [0x7f9a1025670d]
The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
information that should help you find out what is causing the crash.
111028 14:48:03 [Warning] No argument was provided to --log-bin, and --log-bin-index was not used; so replication may break when this MySQL server acts as a master and has his hostname changed!! Please use '--log-bin=mysqld-bin' to avoid this problem.
111028 14:48:03 [Note] Plugin 'FEDERATED' is disabled.
InnoDB: Log scan progressed past the checkpoint lsn 6 3059494173
111028 14:48:04  InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
InnoDB: Doing recovery: scanned up to log sequence number 6 3059597210
111028 14:48:04  InnoDB: Starting an apply batch of log records to the database...
InnoDB: Progress in percents: 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 
InnoDB: Apply batch completed
InnoDB: Last MySQL binlog file position 0 110375, file name ./mysqld-bin.009099
111028 14:48:05  InnoDB: Started; log sequence number 6 3059597210
111028 14:48:05 [Note] Recovering after a crash using mysqld-bin
111028 14:48:05 [Note] Starting crash recovery...
111028 14:48:05 [Note] Crash recovery finished.
111028 14:48:05 [Note] Event Scheduler: Loaded 0 events
111028 14:48:05 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.1.41-3ubuntu12.10-log'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  (Ubuntu)
111028 14:48:06  InnoDB: Warning: purge reached the head of the history list,
InnoDB: but its length is still reported as 29513! Make a detailed bug
InnoDB: report, and submit it to http://bugs.mysql.com

How to repeat:
Do not know
[18 Dec 2011 16:12] Valeriy Kravchuk
Looks like a hardware-related corruption problem. Please, check /var/log/messages for possible related messages. If you still think this problem was a result of some bug in MySQL code, please, check if it is still repeatable with a newer version, 5.1.60.
[19 Jan 2012 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".
[3 Apr 2013 12:31] Marko Mäkelä
There is a BLOB free function in the stack trace.

This could be a duplicate of Bug#55284, which I fixed in MySQL 5.1.56.