MDEV-17482 InnoDB fails to say which fatal error fsync() returned

os_file_fsync_posix(): If fsync() returns a fatal error,
do include errno in the error message.

In the future, we might handle fsync() or write or allocation failures
on InnoDB data files a little more gracefully: flag the affected index
or table as corrupted, and deny any subsequent writes to the table.

If a write to the undo log or redo log fails, an alternative to
killing the server could be to deny any writes to InnoDB tables
until the server has been restarted.
This commit is contained in:
Marko Mäkelä 2019-03-18 12:32:10 +02:00
parent 1d728a98d8
commit 00572a0b0c

View file

@ -2495,18 +2495,10 @@ os_file_fsync_posix(
ut_a(failures < 2000);
break;
case EIO:
ib::error() << "fsync() returned EIO, aborting";
/* fall through */
default:
ut_error;
break;
ib::fatal() << "fsync() returned " << errno;
}
}
ut_error;
return(-1);
}
/** Check the existence and type of the given file.