Bug #48946 seemingly bogus error: Operating system error number 1450 in a file operation.
Submitted: 20 Nov 2009 15:49 Modified: 27 Sep 2010 14:24
Reporter: Shane Bester (Platinum Quality Contributor) Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server: InnoDB Plugin storage engine Severity:S3 (Non-critical)
Version:5.1.41 OS:Microsoft Windows (XP64)
Assigned to: CPU Architecture:Any

[20 Nov 2009 15:49] Shane Bester
Description:
Reporting this as a potential bug now, to check if anybody else notices similar behaviour, because windows users will surely be hitting it with innodb plugin.

During an alter table on a large table, innodb plugin gets into a loop and prints out this continuously:

091120 16:50:31  InnoDB: Operating system error number 1450 in a file operation.
InnoDB: The error means that there are no sufficient system resources or quota to complete the operation.
091120 16:50:32  InnoDB: Operating system error number 1450 in a file operation.
InnoDB: The error means that there are no sufficient system resources or quota to complete the operation.
091120 16:50:32  InnoDB: Operating system error number 1450 in a file operation.
InnoDB: The error means that there are no sufficient system resources or quota to complete the operation.
091120 16:50:32  InnoDB: Operating system error number 1450 in a file operation.
InnoDB: The error means that there are no sufficient system resources or quota to complete the operation.

Machine/disk isn't near any memory limitations so somewhere there is a mishandling.. this happened with both 32-bit and 64-bit Windows binaries, even when mysqld.exe consumes only 450M of memory (on server that can use >2G with builtin innodb).

How to repeat:
any large alter table testcase ( bug #48935 and bug #48792 ) is good enough to repeat the problem when running mysqld.exe with these parameters:

--no-defaults --port=3310 --socket=sock --skip-grant-tables --skip-name-resolve --innodb_flush_log_at_trx_commit=0  --ignore-builtin-innodb 
--plugin-load=innodb=ha_innodb_plugin.dll --innodb_lock_wait_timeout=1 --innodb_buffer_pool_size=200M --innodb_file_per_table=1 --innodb_file_format=barracuda --innodb_doublewrite=0 --innodb-checksums=0 --innodb_log_buffer_size=200M --innodb_log_file_size=40M 
--console --open-files-limit=2000

Suggested fix:
fix the typo in the error message.
find out root cause of error message.
[20 Nov 2009 21:04] Shane Bester
potential build error here...need second opinion.  the plugin .dll is built with a 10000000 byte stack reserve size for each thread. this means each innodb thread will transparently consume just under 10M of memory, and this will not show in task manager, or in the innodb status.  the mysqld.exe itself has a stack reserve of 1M which is fine ( remember bug #20815 )
[26 Nov 2009 6:49] Calvin Sun
Shane - you may try to build the plugin into the server (as a static library), to see whether you can reproduce the problem. Also, monitor the "Paged Pool" size of mysqld when the problem occurs.

How about reduce the open-files-limit from 2000 to a much smaller number?
[27 Sep 2010 14:24] Shane Bester
haven't seen the error 1450 in many versions..