4645 kevin.lewis@stripped 2012-11-21
Bug#15882860 - WINDOWS: DEBUG BUILD CAN'T HANDLE LARGE INNODB_LOG_FILE_SIZE
The change for WL6494 (InnoDB: Handle redo log file size mismatch),
exposed an existing problem on Windows 64-bit platforms where any _stat()
call will fail on any file larger than 4Gb. This became evident when
setting -innodb-log-file-size=4G or larger. The patch mentioned above
started using os_file_rename_func() for redo log files. That function
makes calls to os_file_status() in debug using ut_ad() to make sure that
the source name exists and the destination name does not.
An assert, ut_ad(exists), failed because the call to _stat failed, since
the file was too big to store the size in a 4 byte integer.
The fix is to exchange _stat with _stat64 in two places where _stat() is
called by Windows-only code. The function _stat64() works on both 32-bit
and 64-bit versions of Windows and the compatibility list goes all the way
back to Windows 95.
Approved at http://rb.no.oracle.com/rb/r/1583/ by Marko
modified:
storage/innobase/os/os0file.cc
4644 Harin Vadodaria 2012-11-21 [merge]
Bug#15883127: PORT FIX FOR BUG #13904906 TO MYSQL 5.1
Description: Null merge from 5.5 to 5.6
=== modified file 'storage/innobase/os/os0file.cc'
--- a/storage/innobase/os/os0file.cc revid:harin.vadodaria@stripped
+++ b/storage/innobase/os/os0file.cc revid:kevin.lewis@stripped
@@ -3003,9 +3003,9 @@ os_file_status(
{
#ifdef __WIN__
int ret;
- struct _stat statinfo;
+ struct _stat64 statinfo;
- ret = _stat(path, &statinfo);
+ ret = _stat64(path, &statinfo);
if (ret && (errno == ENOENT || errno == ENOTDIR)) {
/* file does not exist */
*exists = FALSE;
@@ -3078,9 +3078,9 @@ os_file_get_status(
int ret;
#ifdef __WIN__
- struct _stat statinfo;
+ struct _stat64 statinfo;
- ret = _stat(path, &statinfo);
+ ret = _stat64(path, &statinfo);
if (ret && (errno == ENOENT || errno == ENOTDIR)) {
/* file does not exist */
No bundle (reason: useless for push emails).
| Thread |
|---|
| • bzr push into mysql-5.6 branch (kevin.lewis:4644 to 4645) Bug#15882860 | kevin.lewis | 21 Nov |