On Wed, Apr 17, 2019 at 1:04 PM Thomas Munro <thomas.mu...@gmail.com> wrote: > On Mon, Apr 15, 2019 at 7:57 PM <zedaa...@gmail.com> wrote: > > I forgot to mention that this is happening in a docker container. > > Huh, so there may be some configuration of Linux container that can > fail here with EPERM, even though that error that does not appear in > the man page, and doesn't make much intuitive sense. Would be good to > figure out how that happens.
Steve Dodd ran into the same problem in Borg[1]. It looks like what's happening here is that on PowerPC and ARM systems, there is a second system call sync_file_range2 that has the arguments arranged in a better order for their calling conventions (see Notes section of man sync_file_range), and glibc helpfully translates for you, but some container technologies forgot to include sync_file_range2 in their syscall forwarding table. Perhaps we should just handle this with the not_implemented_by_kernel mechanism I added for WSL. [1] https://lists.freedesktop.org/archives/systemd-devel/2019-August/043276.html -- Thomas Munro https://enterprisedb.com