All of lore.kernel.org
 help / color / mirror / Atom feed
From: Petr Vorel <pvorel@suse.cz>
To: ltp@lists.linux.it
Cc: NeilBrown <neilb@suse.de>, Cyril Hrubis <chrubis@suse.cz>,
	linux-nfs@vger.kernel.org
Subject: Re: [PATCH 1/1] nfslock01.sh: Don't test on NFS v3 on TCP
Date: Tue, 2 May 2023 11:22:43 +0200	[thread overview]
Message-ID: <20230502092243.GA3625868@pevik> (raw)
In-Reply-To: <20230502075921.3614794-1-pvorel@suse.cz>

Hi,

> Subject: [LTP] [PATCH 1/1] nfslock01.sh: Don't test on NFS v3 on TCP

Obviously, the subject should not contain "on TCP" (first, I removed only TCP
entries in runtest file, but because I expect it would be problematic also on
UDP). Also tst_brk TCONF does not check TCP/UDP either (only NFS v3).

I'll update that before merge (don't send new version).

Kind regards,
Petr

> nfs_flock (run via nfslock01.sh) is known to fail on NFS v3 [1]:

>     not unsharing /var makes AF_UNIX socket for host's rpcbind to become
>     available inside ltp_ns. Then, at NFS v3 mount time, kernel creates
>     an instance of lockd for ltp_ns, and ports for that instance leak to
>     host's rpcbind and overwrite ports for lockd already active for root
>     namespace. This breaks nfs3 file locking.

> Before bd512e733 ("nfs_flock: fail the test if lock/unlock ops fail")
> it run indefinitely with "unhandled error -107":
> [ 2840.099565] lockd: cannot monitor 10.0.0.2
> [ 2840.109353] lockd: cannot monitor 10.0.0.2
> [ 2843.286811] xs_tcp_setup_socket: connect returned unhandled error -107
> [ 2850.198791] xs_tcp_setup_socket: connect returned unhandled error -107

> bd512e733 caused an early abort (therefore only "cannot monitor 10.0.0.2"
> appears).

> Although there is suggestion, how to fix the problem in kernel [2]:

>     > Maybe rpcb_create_local() shall detect that it is not in root
>     > netns, and only try AF_INET connection to > localhost in that case.

>     That would be simple and might be sensible.  IF changing the AF_UNIX
>     path to "/run/rpcbind.sock" isn't sufficient, then testing for the
>     root_ns is probably the best second option.

> Until it's implemented, it's better to:
> * don't test on NFS v3 on both TCP and UDP (remove from the runtest file)
> * skip the test with TCONF in case version 3 is passed on command line

> NOTE: Tested only on TCP (UDP is disabled in kernel by default via
> NFS_DISABLE_UDP_SUPPORT).

> [1] https://lore.kernel.org/ltp/YebcNQg0u5cU1QyQ@pevik/
> [2] https://lore.kernel.org/ltp/164254401568.24166.883582030601071761@noble.neil.brown.name/

> Signed-off-by: Petr Vorel <pvorel@suse.cz>
> ---
>  runtest/net.nfs                              | 4 ----
>  testcases/network/nfs/nfslock01/nfslock01.sh | 6 ++++++
>  2 files changed, 6 insertions(+), 4 deletions(-)

> diff --git a/runtest/net.nfs b/runtest/net.nfs
> index 72cf4b307..a73956015 100644
> --- a/runtest/net.nfs
> +++ b/runtest/net.nfs
> @@ -83,13 +83,9 @@ nfs4_ipv6_08 nfs08.sh -6 -v 4 -t tcp
>  nfs41_ipv6_08 nfs08.sh -6 -v 4.1 -t tcp
>  nfs42_ipv6_08 nfs08.sh -6 -v 4.2 -t tcp

> -nfslock3_01 nfslock01.sh -v 3 -t udp
> -nfslock3t_01 nfslock01.sh -v 3 -t tcp
>  nfslock4_01 nfslock01.sh -v 4 -t tcp
>  nfslock41_01 nfslock01.sh -v 4.1 -t tcp
>  nfslock42_01 nfslock01.sh -v 4.2 -t tcp
> -nfslock3_ipv6_01 nfslock01.sh -6 -v 3 -t udp
> -nfslock3t_ipv6_01 nfslock01.sh -6 -v 3 -t tcp
>  nfslock4_ipv6_01 nfslock01.sh -6 -v 4 -t tcp
>  nfslock41_ipv6_01 nfslock01.sh -6 -v 4.1 -t tcp
>  nfslock42_ipv6_01 nfslock01.sh -6 -v 4.2 -t tcp
> diff --git a/testcases/network/nfs/nfslock01/nfslock01.sh b/testcases/network/nfs/nfslock01/nfslock01.sh
> index fbcc3c00f..78904281b 100755
> --- a/testcases/network/nfs/nfslock01/nfslock01.sh
> +++ b/testcases/network/nfs/nfslock01/nfslock01.sh
> @@ -15,6 +15,12 @@ TST_TESTFUNC="do_test"

>  do_setup()
>  {
> +	local i
> +
> +	for i in $VERSION; do
> +		[ "$v" = 3 ] && tst_brk TCONF "Test is known to fail on NFSv3"
> +	done
> +
>  	nfs_setup

>  	tst_res TINFO "creating test files"

WARNING: multiple messages have this Message-ID (diff)
From: Petr Vorel <pvorel@suse.cz>
To: ltp@lists.linux.it
Cc: NeilBrown <neilb@suse.de>, linux-nfs@vger.kernel.org
Subject: Re: [LTP] [PATCH 1/1] nfslock01.sh: Don't test on NFS v3 on TCP
Date: Tue, 2 May 2023 11:22:43 +0200	[thread overview]
Message-ID: <20230502092243.GA3625868@pevik> (raw)
In-Reply-To: <20230502075921.3614794-1-pvorel@suse.cz>

Hi,

> Subject: [LTP] [PATCH 1/1] nfslock01.sh: Don't test on NFS v3 on TCP

Obviously, the subject should not contain "on TCP" (first, I removed only TCP
entries in runtest file, but because I expect it would be problematic also on
UDP). Also tst_brk TCONF does not check TCP/UDP either (only NFS v3).

I'll update that before merge (don't send new version).

Kind regards,
Petr

> nfs_flock (run via nfslock01.sh) is known to fail on NFS v3 [1]:

>     not unsharing /var makes AF_UNIX socket for host's rpcbind to become
>     available inside ltp_ns. Then, at NFS v3 mount time, kernel creates
>     an instance of lockd for ltp_ns, and ports for that instance leak to
>     host's rpcbind and overwrite ports for lockd already active for root
>     namespace. This breaks nfs3 file locking.

> Before bd512e733 ("nfs_flock: fail the test if lock/unlock ops fail")
> it run indefinitely with "unhandled error -107":
> [ 2840.099565] lockd: cannot monitor 10.0.0.2
> [ 2840.109353] lockd: cannot monitor 10.0.0.2
> [ 2843.286811] xs_tcp_setup_socket: connect returned unhandled error -107
> [ 2850.198791] xs_tcp_setup_socket: connect returned unhandled error -107

> bd512e733 caused an early abort (therefore only "cannot monitor 10.0.0.2"
> appears).

> Although there is suggestion, how to fix the problem in kernel [2]:

>     > Maybe rpcb_create_local() shall detect that it is not in root
>     > netns, and only try AF_INET connection to > localhost in that case.

>     That would be simple and might be sensible.  IF changing the AF_UNIX
>     path to "/run/rpcbind.sock" isn't sufficient, then testing for the
>     root_ns is probably the best second option.

> Until it's implemented, it's better to:
> * don't test on NFS v3 on both TCP and UDP (remove from the runtest file)
> * skip the test with TCONF in case version 3 is passed on command line

> NOTE: Tested only on TCP (UDP is disabled in kernel by default via
> NFS_DISABLE_UDP_SUPPORT).

> [1] https://lore.kernel.org/ltp/YebcNQg0u5cU1QyQ@pevik/
> [2] https://lore.kernel.org/ltp/164254401568.24166.883582030601071761@noble.neil.brown.name/

> Signed-off-by: Petr Vorel <pvorel@suse.cz>
> ---
>  runtest/net.nfs                              | 4 ----
>  testcases/network/nfs/nfslock01/nfslock01.sh | 6 ++++++
>  2 files changed, 6 insertions(+), 4 deletions(-)

> diff --git a/runtest/net.nfs b/runtest/net.nfs
> index 72cf4b307..a73956015 100644
> --- a/runtest/net.nfs
> +++ b/runtest/net.nfs
> @@ -83,13 +83,9 @@ nfs4_ipv6_08 nfs08.sh -6 -v 4 -t tcp
>  nfs41_ipv6_08 nfs08.sh -6 -v 4.1 -t tcp
>  nfs42_ipv6_08 nfs08.sh -6 -v 4.2 -t tcp

> -nfslock3_01 nfslock01.sh -v 3 -t udp
> -nfslock3t_01 nfslock01.sh -v 3 -t tcp
>  nfslock4_01 nfslock01.sh -v 4 -t tcp
>  nfslock41_01 nfslock01.sh -v 4.1 -t tcp
>  nfslock42_01 nfslock01.sh -v 4.2 -t tcp
> -nfslock3_ipv6_01 nfslock01.sh -6 -v 3 -t udp
> -nfslock3t_ipv6_01 nfslock01.sh -6 -v 3 -t tcp
>  nfslock4_ipv6_01 nfslock01.sh -6 -v 4 -t tcp
>  nfslock41_ipv6_01 nfslock01.sh -6 -v 4.1 -t tcp
>  nfslock42_ipv6_01 nfslock01.sh -6 -v 4.2 -t tcp
> diff --git a/testcases/network/nfs/nfslock01/nfslock01.sh b/testcases/network/nfs/nfslock01/nfslock01.sh
> index fbcc3c00f..78904281b 100755
> --- a/testcases/network/nfs/nfslock01/nfslock01.sh
> +++ b/testcases/network/nfs/nfslock01/nfslock01.sh
> @@ -15,6 +15,12 @@ TST_TESTFUNC="do_test"

>  do_setup()
>  {
> +	local i
> +
> +	for i in $VERSION; do
> +		[ "$v" = 3 ] && tst_brk TCONF "Test is known to fail on NFSv3"
> +	done
> +
>  	nfs_setup

>  	tst_res TINFO "creating test files"

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

  reply	other threads:[~2023-05-02  9:22 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-02  7:59 [PATCH 1/1] nfslock01.sh: Don't test on NFS v3 on TCP Petr Vorel
2023-05-02  7:59 ` [LTP] " Petr Vorel
2023-05-02  9:22 ` Petr Vorel [this message]
2023-05-02  9:22   ` Petr Vorel
2023-05-02 12:25 ` Jeff Layton
2023-05-02 12:25   ` [LTP] " Jeff Layton
2023-05-02 13:41   ` Petr Vorel
2023-05-02 13:41     ` [LTP] " Petr Vorel
2023-05-08  2:50     ` Nikita Yushchenko
2023-05-08  2:50       ` [LTP] " Nikita Yushchenko
2023-05-09 23:00       ` NeilBrown
2023-05-09 23:00         ` [LTP] " NeilBrown
2023-05-10  2:44         ` Nikita Yushchenko
2023-05-10  2:44           ` [LTP] " Nikita Yushchenko
2023-05-02 21:21   ` NeilBrown
2023-05-02 21:21     ` [LTP] " NeilBrown
2023-05-04 20:37 ` Petr Vorel
2023-05-04 20:37   ` [LTP] " Petr Vorel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230502092243.GA3625868@pevik \
    --to=pvorel@suse.cz \
    --cc=chrubis@suse.cz \
    --cc=linux-nfs@vger.kernel.org \
    --cc=ltp@lists.linux.it \
    --cc=neilb@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.