[MDEV-30266] Preparing a mariabackup on a mounted CIFS / SMB file system fails Created: 2022-12-19 Updated: 2023-11-28 |
|
| Status: | Open |
| Project: | MariaDB Server |
| Component/s: | Backup |
| Affects Version/s: | 10.6.11, 10.7.7, 10.8.6, 10.9.4, 10.10.2, 10.11.1 |
| Fix Version/s: | 10.6, 10.11 |
| Type: | Bug | Priority: | Major |
| Reporter: | Hartmut Holzgraefe | Assignee: | Alexander Barkov |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||||||||||
| Description |
|
Running the --backup stage of mariabackup with the target-dir being on a mounted CIFS share works fine, but the --prepare stage then fails early with an IO error:
strace shows that the ibdata1 file can be opened just fine, but reading from it fails with "invalid argument"
For testing I used a Samba 4.16 server on Linux as the CIFS server. |
| Comments |
| Comment by Hartmut Holzgraefe [ 2022-12-19 ] | ||||
|
Turns out this only started with 10.6, earlier versions can prepare the backup on the CIFS share just fine | ||||
| Comment by Hartmut Holzgraefe [ 2022-12-19 ] | ||||
|
Why "Fix for" for 10.3 to 10.5? This only started with 10.6, earlier versions work fine. So it should only be "Fix for" for 10.6 and above? | ||||
| Comment by Daniel Black [ 2022-12-19 ] | ||||
|
I think this is in the general class of bugs that O_DIRECT and CIFS is rather specific about the mount option and the kernel versions. From MDEV-26970, cache=none on the mount options might help or innodb_flush_method=fsync. | ||||
| Comment by Hartmut Holzgraefe [ 2022-12-19 ] | ||||
|
cache=none indeed seems to do the trick not checked innodb_flush_method yet, but as that changed its default value in 10.6 that would explain why I was only hitting it in 10.6+ | ||||
| Comment by Hartmut Holzgraefe [ 2022-12-20 ] | ||||
|
--innnodb-flush-method=fsync on the command line also works fine. I couldn't get it to read such setting from my.cnf though. When trying
I'm just getting the same error, and the variables entry in the --help output still shows O_DIRECT When trying
I see the variable value in --help output change to "fsync", but when running --prepare it still runs into the same error. That's probably material for a separate jira ticket though ... |