Details
-
Bug
-
Status: Confirmed (View Workflow)
-
Major
-
Resolution: Unresolved
-
10.0(EOL), 10.1(EOL), 10.2(EOL), 10.3(EOL)
Description
In FLUSH TABLES, the function buf_flush_or_remove_pages() scans the buf_pool->flush_list and initiates a page write for any pages that it encounters there. But, because pages will not be immediately removed from the flush_list, it is possible (maybe even likely) that due to "goto rescan" the same page will be flushed multiple times.
The flush list membership is removed at I/O completion:
#0 buf_flush_remove (bpage=0x7ffff00cab68)
|
at /mariadb/10.1/storage/xtradb/buf/buf0flu.cc:575
|
#1 0x0000555556210745 in buf_flush_write_complete (bpage=0x7ffff00cab68)
|
at /mariadb/10.1/storage/xtradb/buf/buf0flu.cc:715
|
#2 0x0000555556200fb5 in buf_page_io_complete (bpage=0x7ffff00cab68)
|
at /mariadb/10.1/storage/xtradb/buf/buf0buf.cc:4978
|
#3 0x000055555628206e in fil_aio_wait (segment=4)
|
at /mariadb/10.1/storage/xtradb/fil/fil0fil.cc:6412
|
#4 0x000055555615f0eb in io_handler_thread (arg=0x5555576554a0 <n+32>)
|
at /mariadb/10.1/storage/xtradb/srv/srv0start.cc:585
|
Attachments
Issue Links
- relates to
-
MDEV-13328 ALTER TABLE ... DISCARD TABLESPACE takes a lot of time with large buffer pool (>128G)
- Closed