-
Committer:
Stewart Smith
-
Date:
2012-09-12 05:19:51 UTC
-
Revision ID:
stewart@flamingspork.com-20120912051951-nb9mxkybij31mvtm
Extract fix for http://bugs.mysql.com/bug.php?id=44140 from innodb_recovery_patches.patch
Description from original bug report:
Description:
Sometimes (it is really rare), We meet the error message during crash recovery of InnoDB.
090405 4:29:47 InnoDB: ERROR: We were only able to scan the log up to 1319 813701532
InnoDB: but a database page a had an lsn 1319 814039859. It is possible that the
InnoDB: database is now corrupt!
I accept the message as,,
"There have been some logged modification to certain page before the last recv_recover_page() for the page"
And I have caught the modification.
#0 0x00000000004a5b60 in log_close ()
#1 0x00000000004d93b9 in mtr_commit ()
#2 0x000000000042e572 in ibuf_delete_rec ()
#3 0x000000000042f314 in ibuf_merge_or_delete_for_page ()
#4 0x000000000049724e in buf_page_io_complete ()
#5 0x00000000004cbdd7 in fil_aio_wait ()
#6 0x000000000040c678 in io_handler_thread ()
I suspect ibuf_merge_or_delete_for_page() from buf_page_io_complete() (triggered by recv_read_in_area()) and recv_recover_page() from recv_apply_hashed_log_recs() can conflict.