hpc / mpifileutils

File utilities designed for scalability and performance.
https://hpc.github.io/mpifileutils
BSD 3-Clause "New" or "Revised" License
162 stars 64 forks source link

fiemap error #545

Open kevin-harms opened 1 year ago

kevin-harms commented 1 year ago

Getting the following error when source is Lustre and I request spare support (-S)

[2023-01-30T21:48:23] [1] [/home/harms/working/daos/mpifileutils/src/common/mfu_flist_copy.c:1853] ERROR: fiemap ioctl() failed for src '/soft/daos/mpifileutils/share/man/man1/dsync.1' (errno=22 Invalid argument)

I'm thinking this is because the structure initialization for the ioctl is bad. Running the following Lustre version:

harms@uan-0002:~/working/daos/tools> lfs --version
lfs 2.15.0.6_rc2_cray_14_g2408acc

I don't know if Lustre is strict about maintaining format of ioctl calls between different releases.

adilger commented 1 year ago

This looks like it might be https://jira.whamcloud.com/browse/LU-16480 which fixes a bug in the FIEMAP handling. This needs a small client-side patch to fix.

That said, if this code is using FIEMAP for determining sparseness of a file, it might be better to use lseek(fd, SEEK_HOLE) since this also works for PFL files (otherwise Lustre will return EOPNOTSUPP for FIEMAP calls).

The SEEK_HOLE/SEEK_DATA functionality was added in 2.14, but is a client-only patch.