Bug #56685 ibuf_insert_to_index_page() tries to work around empty page
Submitted: 9 Sep 2010 11:31 Modified: 7 Feb 2011 18:20
Reporter: Marko Mäkelä Email Updates:
Status: Closed Impact on me:
Category:MySQL Server: InnoDB storage engine Severity:S3 (Non-critical)
Version:5.5 OS:Any
Assigned to: Marko Mäkelä CPU Architecture:Any
Tags: delete buffering, innodb, innodb_change_buffering

[9 Sep 2010 11:31] Marko Mäkelä
In early development of delete buffering, we did allow B-tree pages to become empty as a result of buffered deletes. That caused fundamental problems. The fix was to refuse buffering purge operations unless the page can be guaranteed to be nonempty.

ibuf_insert_to_index_page() does an attempt to cope with empty pages when merging inserts. It should not.

How to repeat:
Read the code.

Suggested fix:
Unconditionally dump the index page if it is found to be empty.
The patch is at http://lists.mysql.com/commits/117831
[9 Sep 2010 12:20] Marko Mäkelä
No change in documentation needed. Some code was removed in believed-to-be unreachable error handling code. We will now report an error unconditionally when encountering an empty page while merging a buffered insert.
[7 Feb 2011 18:20] Calvin Sun
close it as no documentation change needed.