Linux NFS development
 help / color / mirror / Atom feed
From: Chuck Lever III <chuck.lever@oracle.com>
To: Olga Kornievskaia <aglo@umich.edu>
Cc: Linux NFS Mailing List <linux-nfs@vger.kernel.org>
Subject: Re: sm notify (nlm) question
Date: Tue, 14 May 2024 21:08:54 +0000	[thread overview]
Message-ID: <2C80B5BC-AAEC-41F8-BEB6-C920F88C89BB@oracle.com> (raw)
In-Reply-To: <CAN-5tyFBn3C_CTrsftuYeWJHe7KWxd82YFCyrN9t=az8J4RU0w@mail.gmail.com>



> On May 14, 2024, at 2:56 PM, Olga Kornievskaia <aglo@umich.edu> wrote:
> 
> Hi folks,
> 
> Given that not everything for NFSv3 has a specification, I post a
> question here (as it concerns linux v3 (client) implementation) but I
> ask a generic question with respect to NOTIFY sent by an NFS server.

There is a standard:

https://pubs.opengroup.org/onlinepubs/9629799/chap11.htm


> A NOTIFY message that is sent by an NFS server upon reboot has a monitor
> name and a state. This "state" is an integer and is modified on each
> server reboot. My question is: what about state value uniqueness? Is
> there somewhere some notion that this value has to be unique (as in
> say a random value).
> 
> Here's a problem. Say a client has 2 mounts to ip1 and ip2 (both
> representing the same DNS name) and acquires a lock per mount. Now say
> each of those servers reboot. Once up they each send a NOTIFY call and
> each use a timestamp as basis for their "state" value -- which very
> likely is to produce the same value for 2 servers rebooted at the same
> time (or for the linux server that looks like a counter). On the
> client side, once the client processes the 1st NOTIFY call, it updates
> the "state" for the monitor name (ie a client monitors based on a DNS
> name which is the same for ip1 and ip2) and then in the current code,
> because the 2nd NOTIFY has the same "state" value this NOTIFY call
> would be ignored. The linux client would never reclaim the 2nd lock
> (but the application obviously would never know it's missing a lock)
> --- data corruption.
> 
> Who is to blame: is the server not allowed to send "non-unique" state
> value? Or is the client at fault here for some reason?

The state value is supposed to be specific to the monitored
host. If the client is indeed ignoring the second reboot
notification, that's incorrect behavior, IMO.


--
Chuck Lever



  reply	other threads:[~2024-05-14 21:09 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-14 20:56 sm notify (nlm) question Olga Kornievskaia
2024-05-14 21:08 ` Chuck Lever III [this message]
2024-05-14 21:21   ` Olga Kornievskaia
2024-05-14 21:36   ` Frank Filz
2024-05-14 21:49     ` Olga Kornievskaia
2024-05-14 22:13       ` Frank Filz
2024-05-22 13:57         ` Olga Kornievskaia
2024-05-22 16:20           ` Trond Myklebust
2024-05-22 17:18             ` Tom Talpey

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=2C80B5BC-AAEC-41F8-BEB6-C920F88C89BB@oracle.com \
    --to=chuck.lever@oracle.com \
    --cc=aglo@umich.edu \
    --cc=linux-nfs@vger.kernel.org \
    /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