Details
Description
Was reported by SkySQL folks, in the upgrade context.
What happens is that : my_copystat() function that is called near the end of myisamchk, calls stat(), which , on Windows, with Visual Studio 2010, returns an error on files larger than 4G (the struct stat is an ancient one , with 32bit st_size ).
Ironically, returning an error instead of truncated size is a bugfix introduced in SDK from VS2010 upwards, and was not seen in earlier versions of C runtime library.
There are variations of stat() (stat64, stati64) that can handle large files correctly. my_stat() behavior is correct, because it is using stat64.
Attachments
Activity
Field | Original Value | New Value |
---|---|---|
Description |
Was reported by SkySQL folks, in the upgrade context. What happens is that : my_copystat() function that is called near the end of myisamchk, calls stat(), which , on Windows, with Visual Studio 2010, returns an error on files larger than 4G (the struct stat is an ancient one, and there is only 4 st_size in it). Ironically, returning an error instead of truncated size is a bugfix introduced in SDK from VS2010 upwards, and was not seen in earlier versions of C runtime library. |
Was reported by SkySQL folks, in the upgrade context. What happens is that : my_copystat() function that is called near the end of myisamchk, calls stat(), which , on Windows, with Visual Studio 2010, returns an error on files larger than 4G (the struct stat is an ancient one, and there is only 4 st_size in it). Ironically, returning an error instead of truncated size is a bugfix introduced in SDK from VS2010 upwards, and was not seen in earlier versions of C runtime library. There are variations of stat() (stat64, stati64) that can handle large files correctly. my_stat() behavior is correct, because it is using stat64. |
Description |
Was reported by SkySQL folks, in the upgrade context. What happens is that : my_copystat() function that is called near the end of myisamchk, calls stat(), which , on Windows, with Visual Studio 2010, returns an error on files larger than 4G (the struct stat is an ancient one, and there is only 4 st_size in it). Ironically, returning an error instead of truncated size is a bugfix introduced in SDK from VS2010 upwards, and was not seen in earlier versions of C runtime library. There are variations of stat() (stat64, stati64) that can handle large files correctly. my_stat() behavior is correct, because it is using stat64. |
Was reported by SkySQL folks, in the upgrade context. What happens is that : my_copystat() function that is called near the end of myisamchk, calls stat(), which , on Windows, with Visual Studio 2010, returns an error on files larger than 4G (the struct stat is an ancient one , with 32bit st_size ). Ironically, returning an error instead of truncated size is a bugfix introduced in SDK from VS2010 upwards, and was not seen in earlier versions of C runtime library. There are variations of stat() (stat64, stati64) that can handle large files correctly. my_stat() behavior is correct, because it is using stat64. |
Assignee | Vladislav Vaintroub [ wlad ] | |
Resolution | Fixed [ 1 ] | |
Status | Open [ 1 ] | Closed [ 6 ] |
Workflow | defaullt [ 25507 ] | MariaDB v2 [ 45665 ] |
Workflow | MariaDB v2 [ 45665 ] | MariaDB v3 [ 66358 ] |
Workflow | MariaDB v3 [ 66358 ] | MariaDB v4 [ 146249 ] |