Re: [Maria-developers] [Commits] 8edbb1117a9: MDEV-12741: innodb.ibuf_not_empty failed in buildbot with "InnoDB: Trying to do I/O to a tablespace which does not exist"
On Thu, May 11, 2017 at 11:25 AM, jan <jan.lindstrom@mariadb.com> wrote:
revision-id: 8edbb1117a9e1fd81fbd08b8f1d06c72efe38f44 (mariadb-10.2.5-168- g8edbb1117a9) parent(s): f4df8c00c957146f04db031f1f9f80aab229d1d2 author: Jan Lindström committer: Jan Lindström timestamp: 2017-05-11 11:15:37 +0300 message:
MDEV-12741: innodb.ibuf_not_empty failed in buildbot with "InnoDB: Trying to do I/O to a tablespace which does not exist"
Background thread is doing ibuf merge, in buf0rea.cc buf_read_ibuf_merge_pages(). It first tries to get page_size and if space is not found it deletes them, but as we do not hold any mutexes, space can be marked as stopped between that and buf_read_page_low() for same space. This naturally leads seen error message on log.
buf_read_page_low(): Add parameter ignore_missing_space = false that is passed to fil_io()
[snip]
@@ -178,7 +180,7 @@ buf_read_page_low(
*err = fil_io( request, sync, page_id, page_size, 0, page_size.physical(), - dst, bpage); + dst, bpage, ignore_missing_space);
if (sync) { thd_wait_end(NULL);
Can you please add the parameter to the IORequest? It would seem to be a more appropriate place for this. (Ideally, fil_io() would only take the request as a parameter, but we do not want to do such a big refactoring right now.) Marko
participants (1)
-
Marko Mäkelä