[MDEV-28785] "Can't change size of file" errors from my_chsize() with random error numbers Created: 2022-06-09 Updated: 2022-10-24 Resolved: 2022-07-25 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | None |
| Affects Version/s: | 10.5.9 |
| Fix Version/s: | N/A |
| Type: | Bug | Priority: | Major |
| Reporter: | Hartmut Holzgraefe | Assignee: | Hartmut Holzgraefe |
| Resolution: | Incomplete | Votes: | 0 |
| Labels: | None | ||
| Description |
|
Seeing error messages like
generated by
in mysys/my_chsize.c Looking at the different code paths leading to this error output my_errno seems to always be set either directly in my_chsize() or in the my_seek() and my_write() functions being called by my_chsize(). The case may be related to having an ibdata1 configured with auto-extend, but also with a max. size, although I don't see how this such storage engine level configuration should interact with something as low level as my_chsize() The problem was hit while trying to run "REORGANIZE PARTITION", with plenty of space on the datadir file system and no known other restrictions like file system quota limits. |
| Comments |
| Comment by Hartmut Holzgraefe [ 2022-06-17 ] |
|
No, we don't have anything to reproduce this. |
| Comment by Hartmut Holzgraefe [ 2022-06-17 ] |
|
... but the fact that we get very large values for the error number although these should be less than 200 for OS / libc error codes, and not beyond four digits even when adding MySQL/MariaDB error codes to the mix should allow for checking the different code paths to see where errno is not correctly passed through. I tried this myself, but lack full understanding of how my_write() handles things, someone more familiar with the vio code should have a look at this ... |
| Comment by Sergei Golubchik [ 2022-06-20 ] |
|
hholzgra, I looked at the code but also couldn't see how this large value is possible. I'm afraid that without a way to reproduce this we won't be able to do anything |