From: Petr Vorel <pvorel@suse.cz>
To: Nikita Yushchenko <nikita.yushchenko@virtuozzo.com>
Cc: ltp@lists.linux.it
Subject: Re: [LTP] [PATCH] nfs_lib.sh: run exportfs at "server side" in LTP_NETNS case
Date: Fri, 14 Jan 2022 21:23:40 +0100 [thread overview]
Message-ID: <YeHbzANFrkQguAXh@pevik> (raw)
In-Reply-To: <590378ee-71af-deb6-6c03-1d2af459ed63@virtuozzo.com>
> 13.01.2022 18:50, Petr Vorel wrote:
> > Hi Nikita,
> > [ Cc Alexey ]
> > > In LTP_NETNS case, nfs server is the root namespace and nfs client is
> > > the ltp namespace.
> > > Then, exportfs shall be executed locally, without tst_rhost_run.
> > > Otherwise, things implicitly depend on /var/lib/nfs being the same in
> > > the root namespace and the ltp namespace.
> > Not sure if I understand your use case. Do you run rpc.statd (or what is using
> > /var/lib/nfs) in non-default net namespace?
> 'exportfs' command maintains /var/lib/nfs/etab file, to be read by
> rpc.mountd when processing mount requests.
> 'exportfs' must be executed in the same environment where rpc.mountd runs
> In LTP_NETNS case, rpc.mountd runs on the host's root namespaces
> (and mount runs in ltp's non-root namespace).
> Thus for correctness, must execute 'exportfs' in the root namespace.
Ah, you're right.
> Currently ltp runs 'exportfs' in ltpns, which works only because ltpns does
> not unshare /var from root namespace.
> But not unsharing /var makes AF_UNIX socket for host's rpcbind to become
> available inside ltpns. Then, at nfs3 mount time, kernel creates an instance
> of lockd for ltpns, 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. But that is not found by nfslock01 test because that test
> ignores the errors from the very operations it is intended to test.
> This patch, and the patch that makes nfslock01 to actually fail on errors, is part of fixing all that mess.
+1. FYI I get errno ENOLCK for NFSv3 on both unpatched and patched nfs_lib.sh.
> > > - if ! tst_rhost_run -c "test -d $remote_dir"; then
> > > - tst_rhost_run -s -c "mkdir -p $remote_dir; $export_cmd"
> > > + if [ -n "$LTP_NETNS" ]; then
> > Please use tst_net_use_netns (as in the patch I Cc you just now).
> > Shouldn't be also $LTP_NFS_NETNS_USE_LO considered?
> The rule is - run exportfs in the environment that plays the 'nfs server' role.
> I'm not sure about exact semantics of $LTP_NFS_NETNS_USE_LO, but per
> what I see in the code, it does not affect how address in $mount_dir is
> configured. Then, it also shall not affect the choice of where 'exportfs'
> runs.
Sorry, $LTP_NFS_NETNS_USE_LO is separated thing (mounting does not affect server
setup).
Waiting for Alexey or Martin if they have any comment before merging both fixes on Monday.
Kind regards,
Petr
> Nikita
--
Mailing list info: https://lists.linux.it/listinfo/ltp
next prev parent reply other threads:[~2022-01-14 20:23 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-12 16:19 [LTP] [PATCH] nfs_flock: fail the test if lock/unlock ops fail Nikita Yushchenko via ltp
2022-01-12 16:19 ` [LTP] [PATCH] nfs_lib.sh: run exportfs at "server side" in LTP_NETNS case Nikita Yushchenko via ltp
2022-01-13 15:50 ` Petr Vorel
2022-01-13 16:27 ` Nikita Yushchenko via ltp
2022-01-14 20:23 ` Petr Vorel [this message]
2022-01-14 21:29 ` Nikita Yushchenko via ltp
2022-01-13 17:21 ` [LTP] [PATCH] nfs_flock: fail the test if lock/unlock ops fail Petr Vorel
2022-01-14 9:31 ` Martin Doucha
2022-01-14 20:03 ` Petr Vorel
2023-04-29 19:28 ` 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=YeHbzANFrkQguAXh@pevik \
--to=pvorel@suse.cz \
--cc=ltp@lists.linux.it \
--cc=nikita.yushchenko@virtuozzo.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox