diff options
author | Inaam Rana <inaam.rana@oracle.com> | 2013-02-01 09:47:16 -0500 |
---|---|---|
committer | Inaam Rana <inaam.rana@oracle.com> | 2013-02-01 09:47:16 -0500 |
commit | 50c27a1492e149c2e5a2865ee71ae084230b0b9d (patch) | |
tree | ed9789ed8339ca60de63b8258cf4ceb50c02ca2d /storage | |
parent | 49e4ed1fde3be9a1c6063a4099e42df4947412ca (diff) | |
download | mariadb-git-50c27a1492e149c2e5a2865ee71ae084230b0b9d.tar.gz |
Bug#16249505 INNODB REPORTS THAT IT'S GOING TO WAIT FOR I/O BUT THE
I/O IS ASYNC
rb://1934
approved by: Mikael Ronstrom (over email)
When submitting AIO read request don't signal that the thread is
about to wait on DISKIO
Diffstat (limited to 'storage')
-rw-r--r-- | storage/innobase/buf/buf0rea.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/storage/innobase/buf/buf0rea.c b/storage/innobase/buf/buf0rea.c index 40550186191..d12fd3fce31 100644 --- a/storage/innobase/buf/buf0rea.c +++ b/storage/innobase/buf/buf0rea.c @@ -177,7 +177,10 @@ buf_read_page_low( ut_ad(buf_page_in_file(bpage)); - thd_wait_begin(NULL, THD_WAIT_DISKIO); + if (sync) { + thd_wait_begin(NULL, THD_WAIT_DISKIO); + } + if (zip_size) { *err = fil_io(OS_FILE_READ | wake_later, sync, space, zip_size, offset, 0, zip_size, @@ -189,7 +192,10 @@ buf_read_page_low( sync, space, 0, offset, 0, UNIV_PAGE_SIZE, ((buf_block_t*) bpage)->frame, bpage); } - thd_wait_end(NULL); + + if (sync) { + thd_wait_end(NULL); + } if (*err == DB_TABLESPACE_DELETED) { buf_read_page_handle_error(bpage); |