Merge lp:~laurynas-biveinis/percona-server/bug1269352-5.6 into lp:percona-server/5.6

Proposed by Laurynas Biveinis on 2014-01-16
Status: Merged
Approved by: Laurynas Biveinis on 2014-02-04
Approved revision: 534
Merged at revision: 538
Proposed branch: lp:~laurynas-biveinis/percona-server/bug1269352-5.6
Merge into: lp:percona-server/5.6
Diff against target: 36 lines (+6/-13)
1 file modified
storage/innobase/buf/buf0flu.cc (+6/-13)
To merge this branch: bzr merge lp:~laurynas-biveinis/percona-server/bug1269352-5.6
Reviewer Review Type Date Requested Status
Registry Administrators 2014-01-16 Pending
Review via email: mp+201892@code.launchpad.net

Description of the change

To post a comment you must log in.
Vlad Lesin (vlad-lesin) wrote :

Looks good but there are some doubts about testing. See 5.5 comments.

Vlad -

Please see PQA-10, additionally for 5.6 I'm requesting a manual RQG run before the next release due to significant buffer pool locking rework in 5.6.16.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'storage/innobase/buf/buf0flu.cc'
2--- storage/innobase/buf/buf0flu.cc 2013-12-20 09:31:44 +0000
3+++ storage/innobase/buf/buf0flu.cc 2014-01-16 07:32:37 +0000
4@@ -1380,17 +1380,8 @@
5 mutex_enter(block_mutex);
6 }
7
8- if (UNIV_UNLIKELY(buf_page_get_state(bpage)
9- == BUF_BLOCK_REMOVE_HASH)) {
10-
11- /* In case we don't hold the LRU list mutex, we may see a page
12- that is about to be relocated on the flush list. Do not
13- attempt to flush it. */
14- ut_ad(flush_type == BUF_FLUSH_LIST);
15- return (flushed);
16- }
17-
18- ut_a(buf_page_in_file(bpage));
19+ ut_a(buf_page_in_file(bpage)
20+ || buf_page_get_state(bpage) == BUF_BLOCK_REMOVE_HASH);
21
22 if (buf_flush_ready_for_flush(bpage, flush_type)) {
23 ulint space;
24@@ -1405,8 +1396,10 @@
25
26 /* These fields are protected by the buf_page_get_mutex()
27 mutex. */
28- space = buf_page_get_space(bpage);
29- offset = buf_page_get_page_no(bpage);
30+ /* Read the fields directly in order to avoid asserting on
31+ BUF_BLOCK_REMOVE_HASH pages. */
32+ space = bpage->space;
33+ offset = bpage->offset;
34
35 if (flush_type == BUF_FLUSH_LRU) {
36 mutex_exit(block_mutex);

Subscribers

People subscribed via source and target branches