Bug #74353 Invalid argument during backup operation
Submitted: 13 Oct 2014 10:20 Modified: 26 Feb 2015 17:35
Reporter: Daniël van Eeden (OCA) Email Updates:
Status: Not a Bug Impact on me:
None 
Category:MySQL Enterprise Backup Severity:S4 (Feature request)
Version:3.10.2 OS:Windows (Server 2012 R2)
Assigned to: CPU Architecture:Any
Tags: windows

[13 Oct 2014 10:20] Daniël van Eeden
Description:
A backup operation failed with error 22 (Invalid argument).

141013 11:02:04 mysqlbackup: INFO: Copying log...
141013 11:02:04 mysqlbackup: INFO: Copying D:\MySQL\MySQL Server 5.6\data\ibdata1 (Antelope file format).
 mysqlbackup: ERROR: File_read operation failed for file D:\MySQL\MySQL Server 5.6\data\ibdata1. Error code: 22, Invalid argument
141013 11:02:05 mysqlbackup: INFO: Log copied, lsn 171995787.

mysqlbackup failed with errors!

The server version is 5.6.19 community edition.

How to repeat:
I don't know how to repeat this.

Suggested fix:
- Inspect sourcecode for handling of error 22 during file_read
- Retry operation if needed 
- Return an actionable error / more helpful error message
[13 Oct 2014 10:24] Daniël van Eeden
The same backup command worked fine when I tried it again.
[13 Oct 2014 10:24] Daniël van Eeden
Add tags
[16 Jan 2015 20:09] Sveta Smirnova
Thank you for the report.

This error happens when invalid chunk of data read from data file. I believe stopping backup with error is correct action. Also we can end up with infinite loop or very slow backup if try to re-read same value (or we should stop some time if error persists, but when?).

So I only can verify this as feature request "add new option, allowing retry read operation in case of error", but I personally think this is not good idea. However, if you reply and ask me to verify as such a feature request I will.
[17 Jan 2015 8:46] Daniël van Eeden
I agree that stopping is the correct action when invalid data is being read. Although re-trying once might be helfull in 80% of the cases.

"Error code: 22, Invalid argument" is not a very helpfull error. The full message also states that it's for a read operation on a specific file, but when I see 'invalid argument' my first guess is a missing commandline option or a missing option to a function (which then is probably a bug).

Maybe something can be added to the error message:
Error code: 22, Invalid argument (possible data read failure)
[22 Jan 2015 20:39] Sveta Smirnova
Thank you for the feedback.

Please explain why "Error code: 22, Invalid argument (possible data read failure)" is better than "File_read operation failed for file D:\MySQL\MySQL Server 5.6\data\ibdata1. Error code: 22, Invalid argument"? I believe that "File_read operation failed" means exactly "possible data read failure".
[24 Jan 2015 9:33] Daniël van Eeden
> Please explain why 
> "Error code: 22, Invalid argument (possible data read failure)" 
> is better than 
> "File_read operation failed for file D:\MySQL\MySQL Server 5.6\data\ibdata1. Error code: 22, Invalid argument"
> ? I believe that "File_read operation failed" means exactly "possible data read failure".

There are a few really small differences:
- In the first message "Invalid argument" and (possible data read failure / File_read operation failed) are closer together. I think this makes it easier for my brain to connect the two.
- On the second message it might be interpreted as a cause (Invalid argument) and effect (File_read operation failed), which isn't true, but might be confusing.
- For someone with a UNIX background an 'Invalid argument' might be anything but an I/O error.

Feel free to close this bug as 'Not a Bug' if you believe the error message to be sufficient as it is.
[26 Feb 2015 17:35] Sveta Smirnova
Thank you for the feedback.

I personally interpret easier when words "File_read operation failed" occur earlier in the message, so I think this is matter of taste. Closing as "Not a Bug"