All of lore.kernel.org
 help / color / mirror / Atom feed
* [4.12-rc1 regression] copy_file_range(2) stuck in infinite loop
@ 2017-05-16 14:09 Eryu Guan
  2017-05-16 15:59 ` Olga Kornievskaia
  0 siblings, 1 reply; 2+ messages in thread
From: Eryu Guan @ 2017-05-16 14:09 UTC (permalink / raw)
  To: linux-nfs; +Cc: Olga Kornievskaia

Hi all,

fstests test generic/430 would hang when testing NFSv4.2 using 4.12-rc1
kernel based client. And this is a regression, 4.11 kernel has no
problem. A simple reproducer is like:

# mount -t nfs -o vers=4.2 nfs-server:/export /mnt/nfs
# xfs_io -fc "pwrite 0 4k" /mnt/nfs/testfile
# xfs_io -fc "copy_range /mnt/nfs/testfile" /mnt/nfs/testfile.copy

The last copy_range command never returns, and xfs_io process is in D
state. Some kernel debug code shows that it stuck in infinite loop in
nfs42_proc_copy(), _nfs42_proc_copy() always returns -EAGAIN.

So this looks like a problem introduced by this commit

commit e092693443b995c8e3a565a73b5fdb05f1260f9b
Author: Olga Kornievskaia <kolga@netapp.com>
Date:   Mon May 8 18:02:24 2017 -0400

    NFS append COMMIT after synchronous COPY

    Instead of messing with the commit path which has been causing issues,
    add a COMMIT op after the COPY and ask for stable copies in the first
    space.

    It saves a round trip, since after the COPY, the client sends a COMMIT
    anyway.

    Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>

Reverting this patch did solve the problem. If you need more info please
let me know.

Thanks,
Eryu

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [4.12-rc1 regression] copy_file_range(2) stuck in infinite loop
  2017-05-16 14:09 [4.12-rc1 regression] copy_file_range(2) stuck in infinite loop Eryu Guan
@ 2017-05-16 15:59 ` Olga Kornievskaia
  0 siblings, 0 replies; 2+ messages in thread
From: Olga Kornievskaia @ 2017-05-16 15:59 UTC (permalink / raw)
  To: Eryu Guan; +Cc: linux-nfs, Olga Kornievskaia

On Tue, May 16, 2017 at 10:09 AM, Eryu Guan <eguan@redhat.com> wrote:
> Hi all,
>
> fstests test generic/430 would hang when testing NFSv4.2 using 4.12-rc1
> kernel based client. And this is a regression, 4.11 kernel has no
> problem. A simple reproducer is like:
>
> # mount -t nfs -o vers=4.2 nfs-server:/export /mnt/nfs
> # xfs_io -fc "pwrite 0 4k" /mnt/nfs/testfile
> # xfs_io -fc "copy_range /mnt/nfs/testfile" /mnt/nfs/testfile.copy
>
> The last copy_range command never returns, and xfs_io process is in D
> state. Some kernel debug code shows that it stuck in infinite loop in
> nfs42_proc_copy(), _nfs42_proc_copy() always returns -EAGAIN.
>
> So this looks like a problem introduced by this commit
>
> commit e092693443b995c8e3a565a73b5fdb05f1260f9b
> Author: Olga Kornievskaia <kolga@netapp.com>
> Date:   Mon May 8 18:02:24 2017 -0400
>
>     NFS append COMMIT after synchronous COPY
>
>     Instead of messing with the commit path which has been causing issues,
>     add a COMMIT op after the COPY and ask for stable copies in the first
>     space.
>
>     It saves a round trip, since after the COPY, the client sends a COMMIT
>     anyway.
>
>     Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
>     Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
>
> Reverting this patch did solve the problem. If you need more info please
> let me know.

Thank you. That was a big typo. Should be if (nfs_write_verifier_cmp)
and not if (!). Sending a fix.

>
> Thanks,
> Eryu
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-05-16 15:59 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-16 14:09 [4.12-rc1 regression] copy_file_range(2) stuck in infinite loop Eryu Guan
2017-05-16 15:59 ` Olga Kornievskaia

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.