Missing synchronization between LRU manager and page cleaner threads on shutdown

Bug #1689552 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
Status tracked in 5.7
5.5
Invalid
Undecided
Unassigned
5.6
Fix Released
Medium
Laurynas Biveinis
5.7
Fix Released
Medium
Laurynas Biveinis

Bug Description

LRU manager thread loops while srv_shutdown_state == SRV_SHUTDOWN_NONE or SRV_SHUTDOWN_CLEANUP, and quits on SRV_SHUTDOWN_FLUSH_PHASE.

Page cleaner thread loops on SRV_SHUTDOWN_NONE and SRV_SHUTDOWN_CLEANUP too, and then does the final flush on SRV_SHUTDOWN_FLUSH_PHASE. The exit condition for that loop is no previous flush list flush running or successfully flushed at least one page.

The problem is that on setting SRV_SHUTDOWN_FLUSH_PHASE, the LRU thread might still do its last iteration before quitting. If it finds dirty pages, it marks them for flushing, causing the page cleaner thread final loop skip over those pages, and potentially stopping flushing prematurely.

This might have caused bug 1676822

tags: added: lru-flusher xtradb
Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote :
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-1805

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.