Redundant page state re-checks in buf_LRU_free_from_unzip_LRU_list() and buf_LRU_free_from_common_LRU_list()
Bug #1219833 reported by
Laurynas Biveinis
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Percona Server moved to https://jira.percona.com/projects/PS |
Invalid
|
Undecided
|
Unassigned | ||
5.1 |
Won't Fix
|
Low
|
Unassigned | ||
5.5 |
Fix Released
|
Medium
|
Laurynas Biveinis | ||
5.6 |
Invalid
|
Undecided
|
Unassigned |
Bug Description
buf_LRU_
for (block = UT_LIST_
UNIV_
block = UT_LIST_
mutex_
if (!block-
|| buf_block_
mutex_
goto restart;
}
The if statement is redundant. Neither one of the three conditions checked there may change while the LRU mutex is held, and it's not being released here.
Related branches
lp:~laurynas-biveinis/percona-server/bug1305364-5.5
- Vlad Lesin (community): Approve (g2)
-
Diff: 302 lines (+47/-59)5 files modifiedstorage/innobase/buf/buf0buf.c (+9/-1)
storage/innobase/buf/buf0flu.c (+5/-1)
storage/innobase/buf/buf0lru.c (+22/-55)
storage/innobase/buf/buf0rea.c (+6/-2)
storage/innobase/include/buf0buf.ic (+5/-0)
tags: | added: bp-split low-hanging-fruit xtradb |
To post a comment you must log in.
Likewise in buf_LRU_ free_from_ common_ LRU_list( ).