MDEV-12253 post-push fix: buf_read_page_low() can return DB_ERROR

The function buf_read_page_low() invokes fil_io(), which can return
DB_ERROR when the requested page is out of bounds (such as when
restoring a buffer pool dump). The callers should be handling that.
This commit is contained in:
Marko Mäkelä 2017-05-06 23:10:52 +03:00
parent c92168fcd2
commit 9d2c1d09aa
2 changed files with 10 additions and 2 deletions

View File

@ -1,7 +1,7 @@
/*****************************************************************************
Copyright (c) 1995, 2013, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2015, 2017, MariaDB Corporation. All Rights Reserved.
Copyright (c) 2015, 2017, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
@ -366,6 +366,7 @@ read_ahead:
switch(err) {
case DB_SUCCESS:
case DB_ERROR:
break;
case DB_TABLESPACE_DELETED:
ib_logf(IB_LOG_LEVEL_WARN,
@ -503,6 +504,7 @@ buf_read_page_async(
tablespace_version, offset);
switch(err) {
case DB_SUCCESS:
case DB_ERROR:
break;
case DB_TABLESPACE_DELETED:
ib_logf(IB_LOG_LEVEL_ERROR,
@ -784,6 +786,7 @@ buf_read_ahead_linear(
switch(err) {
case DB_SUCCESS:
case DB_ERROR:
break;
case DB_TABLESPACE_DELETED:
ib_logf(IB_LOG_LEVEL_WARN,
@ -885,6 +888,7 @@ buf_read_ibuf_merge_pages(
switch(err) {
case DB_SUCCESS:
case DB_ERROR:
break;
case DB_TABLESPACE_DELETED:

View File

@ -1,7 +1,7 @@
/*****************************************************************************
Copyright (c) 1995, 2013, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2013, 2017, MariaDB Corporation. All Rights Reserved.
Copyright (c) 2013, 2017, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
@ -416,6 +416,7 @@ read_ahead:
switch(err) {
case DB_SUCCESS:
case DB_ERROR:
break;
case DB_TABLESPACE_DELETED:
ib_logf(IB_LOG_LEVEL_WARN,
@ -557,6 +558,7 @@ buf_read_page_async(
switch(err) {
case DB_SUCCESS:
case DB_ERROR:
break;
case DB_TABLESPACE_DELETED:
ib_logf(IB_LOG_LEVEL_ERROR,
@ -848,6 +850,7 @@ buf_read_ahead_linear(
switch(err) {
case DB_SUCCESS:
case DB_ERROR:
break;
case DB_TABLESPACE_DELETED:
ib_logf(IB_LOG_LEVEL_WARN,
@ -950,6 +953,7 @@ buf_read_ibuf_merge_pages(
switch(err) {
case DB_SUCCESS:
case DB_ERROR:
break;
case DB_TABLESPACE_DELETED: