Percona Server with XtraDB

Double zip_mutex exit in buf_page_get_gen()

Reported by Laurynas Biveinis on 2013-10-16
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Percona Server
Status tracked in 5.6
5.1
Undecided
Unassigned
5.5
Undecided
Unassigned
5.6
High
Laurynas Biveinis

Bug Description

  if (--bpage->buf_fix_count
      || buf_page_get_io_fix(bpage) != BUF_IO_NONE) {

1. mutex_exit(&buf_pool->zip_mutex);
   /* The block was buffer-fixed or I/O-fixed while
   buf_pool->mutex was not held by this thread.
   Free the block that was allocated and retry.
   This should be extremely unlikely, for example,
   if buf_page_get_zip() was invoked. */

   buf_LRU_block_free_non_file_page(block);
   mutex_exit(&buf_pool->LRU_list_mutex);
2. mutex_exit(&buf_pool->zip_mutex);

A MySQL 5.6.14 merge regression.

tags: added: merge-regression xtradb

The 5.6.14 merge replaced one incorrect locking with another: it added the 1. exit, which actually is the correct one. Thus, before 5.6.14, it was a potential debug build crash in buf_buddy_free_low() called from buf_LRU_block_free_non_file_page() in ut_ad(!mutex_own(&buf_pool->zip_mutex)). That must have been introduced by the buffer pool mutex split patch 5.6 port.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers