Double zip_mutex exit in buf_page_get_gen()

Bug #1240371 reported by Laurynas Biveinis
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Percona Server moved to https://jira.percona.com/projects/PS
Fix Released
High
Laurynas Biveinis
5.1
Invalid
Undecided
Unassigned
5.5
Invalid
Undecided
Unassigned
5.6
Fix Released
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.

Related branches

tags: added: merge-regression xtradb
Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote :

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.

Revision history for this message
Shahriyar Rzayev (rzayev-sehriyar) wrote :

Percona now uses JIRA for bug reports so this bug report is migrated to: https://jira.percona.com/browse/PS-737

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

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.