Merge lp:~laurynas-biveinis/percona-server/bug1239062 into lp:percona-server/5.6
Status: | Merged |
---|---|
Approved by: | Stewart Smith |
Approved revision: | no longer in the source branch. |
Merged at revision: | 503 |
Proposed branch: | lp:~laurynas-biveinis/percona-server/bug1239062 |
Merge into: | lp:percona-server/5.6 |
Diff against target: |
55 lines (+16/-7) 2 files modified
Percona-Server/storage/innobase/include/buf0flu.h (+3/-3) Percona-Server/storage/innobase/include/buf0flu.ic (+13/-4) |
To merge this branch: | bzr merge lp:~laurynas-biveinis/percona-server/bug1239062 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Stewart Smith (community) | Approve | ||
Vlad Lesin (community) | g2 | Approve | |
Review via email: mp+193885@code.launchpad.net |
This proposal supersedes a proposal from 2013-10-21.
Description of the change
2nd MP:
- added a note to @return tag in the header comment;
- rebased on the current trunk.
http://
1st MP:
Fix bug 1239062 (InnoDB: Error: semaphore wait has lasted > 600
seconds. InnoDB: We intentionally crash the server, because it appears
to be hung. InnoDB: Assertion failure in thread <nr> in file
srv0srv.cc line 2124. Abort (sig=6) in srv_error_
(III)).
The issue is the backoff loop in log_preflush_
turning into an infinite loop when the function is called with dirty
buffer pool, the innermost loop enters, and a buffer pool flush list
flush that fully cleans the pool starts and fully completes before the
next buf_flush_
returning false until something dirties the buffer pool, which may
never happen.
Fix by adjusting buf_flush_
also in the case when all the buffer pool instances are clean.
http://
I think the fact that buf_flush_ flush_list_ in_progress( ) returns true not only if flush is in progress but also if flush list is clean should be documented in "@return" section.