Details
-
Bug
-
Status: Confirmed (View Workflow)
-
Major
-
Resolution: Unresolved
-
10.6.18, 10.11.8, 11.4.2, 11.8, 12.2
-
Can result in unexpected behaviour
Description
After MDEV-33613 fix IORequest::PUNCH became an alias of IORequest::WRITE_ASYNC. Moreover, it looks like even PUNCH was not an alias of WRITE_ASYNC asynchronous write wouldn't punch holes. Here is call hierarchy:
▾ os_file_punch_hole
|
▸ fil_ibd_create
|
▾ fil_space_t::io
|
▸ buf_dblwr_t::recover
|
▸ buf_dblwr_t::flush_buffered_writes_completed
|
▸ buf_page_t::flush
|
▸ buf_read_page_low
|
• recv_sys_t::recover_deferred
|
▾ IORequest::punch_hole
|
▾ IORequest::maybe_punch_hole
|
▾ os_file_io
|
▾ os_file_pwrite
|
▾ os_file_write_func
|
▸ innodb_init
|
▸ pfs_os_file_write_func
|
▸ log_t::resize_write_buf
|
▸ os_aio
|
▸ os_file_pread
|
▸ fil_import_compress_fwrite
|
os_aio() invokes os_file_write_func() only for synchronous write. fil_space_t::io() invokes os_file_punch_hole() only for PUNCH_RANGE.
Attachments
Issue Links
- relates to
-
MDEV-13023 mariabackup does not preserve "holes punched" for tables with page_compressed=1
-
- Closed
-
-
MDEV-33613 InnoDB may still hang when temporarily running out of buffer pool
-
- Closed
-