It is likely the same bug as "23067038" in MySQL 8.0.0, fixed by the following commit there:
commit cbc524750c486e9fde8266439979476964917bbb
Author: Shaohua Wang <email address hidden>
Date: Wed Jun 8 10:29:10 2016 +0800
BUG#23067038 ASSERTION FAILURE: BUF0BUF.CC:2861:BUF_PAGE_IN_FILE(BPAGE) LEADS TO CORRUPT DATA
It's a regression of wl#8423 InnoDB: Split the buffer pool mutex.
There is a race: Thread 1, we set buf_fix_count to 0 in buf_page_init().
Thread 2, we decrease buf_fix_count to 0xffffffff in buf_page_optimistic_get().
Thread 2, we increase buf_fix_count to 0 in buf_page_get_gen(). Thread 3,
we evict the page from LRU list. Thread 2, assert fails: buf_page_in_file().
The root cause is missing block mutex protection for buf_page_init().
It is likely the same bug as "23067038" in MySQL 8.0.0, fixed by the following commit there:
commit cbc524750c486e9 fde826643997947 6964917bbb
Author: Shaohua Wang <email address hidden>
Date: Wed Jun 8 10:29:10 2016 +0800
BUG#23067038 ASSERTION FAILURE: BUF0BUF. CC:2861: BUF_PAGE_ IN_FILE( BPAGE)
LEADS TO CORRUPT DATA
It's a regression of wl#8423 InnoDB: Split the buffer pool mutex.
There is a race: Thread 1, we set buf_fix_count to 0 in buf_page_init(). optimistic_ get().
Thread 2, we decrease buf_fix_count to 0xffffffff in buf_page_
Thread 2, we increase buf_fix_count to 0 in buf_page_get_gen(). Thread 3,
we evict the page from LRU list. Thread 2, assert fails: buf_page_in_file().
The root cause is missing block mutex protection for buf_page_init().
Reviewed-by: Debarun Banerjee <email address hidden>
RB: 12456