btr0btr.c, buf0buf.c:

  Fix a glitch: under heavy ibuf activity InnoDB could print the whole contents of ibuf tree to the error log
parent b31f909d
......@@ -2310,6 +2310,14 @@ btr_index_rec_validate(
ulint i;
char err_buf[1000];
if (index->type & DICT_UNIVERSAL) {
/* The insert buffer index tree can contain records from any
other index: we cannot check the number of fields or
their length */
return(TRUE);
}
n = dict_index_get_n_fields(index);
if (rec_get_n_fields(rec) != n) {
......
......@@ -1358,11 +1358,6 @@ buf_page_create(
free_block = buf_LRU_get_free_block();
/* Delete possible entries for the page from the insert buffer:
such can exist if the page belonged to an index which was dropped */
ibuf_merge_or_delete_for_page(NULL, space, offset);
mutex_enter(&(buf_pool->mutex));
block = buf_page_hash_get(space, offset);
......@@ -1410,6 +1405,11 @@ buf_page_create(
mutex_exit(&(buf_pool->mutex));
/* Delete possible entries for the page from the insert buffer:
such can exist if the page belonged to an index which was dropped */
ibuf_merge_or_delete_for_page(NULL, space, offset);
/* Flush pages from the end of the LRU list if necessary */
buf_flush_free_margin();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment