Bug #54160 InnoDB should retry on failed read or write, not immediately panic
Submitted: 1 Jun 2010 21:05 Modified: 17 Dec 2012 21:14
Reporter: Ben Krug Email Updates:
Status: Closed Impact on me:
Category:MySQL Server: InnoDB storage engine Severity:S4 (Feature request)
Version: OS:Any
Assigned to: Inaam Rana CPU Architecture:Any

[1 Jun 2010 21:05] Ben Krug
On a failed read or write, InnoDB can panic and crash.  It should retry first.  (As it does in Windows, for OS error 995 - see bug 3139.)

How to repeat:
Not sure how to repeat predictably - simulate read or pwrite/write error?

Suggested fix:
InnoDB should retry for a bit before panicking and crashing.
[6 Jun 2010 17:41] Valeriy Kravchuk
Thank you for the feature request.
[29 Dec 2011 5:30] MySQL Verification Team
(innodb should retry partial reads/writes where errno was 0)
[17 Dec 2012 21:14] John Russell
Added to changelog for 5.7.0: 

On Linux systems, certain I/O requests that read or wrote fewer than
the requested number of bytes could cause the server to crash. This
issue could happen more frequently with asynchronous I/O requests.
The messages did not clearly identify what type of error occurred:

InnoDB: Operating system error number 0 in a file operation.
InnoDB: Error number 0 means 'Success'.

With this fix, MySQL retries the
operation several times before giving up. (The number of retries is
defined by the constant NUM_RETRIES_ON_PARTIAL_IO in the source code,
default value 10.)