[nfsv4] Asking for details about OPEN_DOWNGRADE

Spencer Shepler Spencer.Shepler at Sun.COM
Fri Jun 13 16:53:13 EDT 2008


On Jun 13, 2008, at 3:43 PM, J. Bruce Fields wrote:

> On Fri, Jun 13, 2008 at 03:18:41PM -0500, Spencer Shepler wrote:
>>
>> On Jun 13, 2008, at 3:10 PM, Noveck, Dave wrote:
>>
>>>> Go ahead and have the server enforce the correct behavior and
>>>> maybe the Solaris client will eventually be fixed.
>>>
>>> But the server vendor's customers may be rather annoyed in the
>>> interim.
>>
>> Sure but without a little pressure it won't get fixed.  We can fix
>> it in the development release but the changes will likely not be  
>> pushed
>> to previous releases without the pressure....
>
> The linux server has been enforcing this for a long time, for what  
> it's
> worth.  I vaguely recall this catching bugs in a few clients at  
> testing
> events before (don't remember which clients), but assumed they were
> fixed....
>
> Should the linux server turn this checking *off* for 4.0?  There's

No. It should remain as is.

Spencer

> really no other reason for it than "maybe we'll need this restriction
> some day, so let's try to make sure we complain to clients violating
> it."
>
> --b.
>
>>
>>>
>>>> The scenario that produces the behavior is a little off the beaten
>>>> path so I doubt it will arise that much but putting pressure
>>>> on the implementations to correct themselves is a good thing.
>>>
>>> With v4.1, the pressure can be put on the client implementations  
>>> from
>>> the beginning.  If the servers all check this, then v4.1 clients  
>>> will
>>> have to correct themselves as part of implementing v4.1, which  
>>> would be
>>> a good thing.
>>
>> I agree -- good intentions and hope for the best...
>>
>> Spencer
>>
>>>
>>> -----Original Message-----
>>> From: Spencer Shepler [mailto:Spencer.Shepler at Sun.COM]
>>> Sent: Friday, June 13, 2008 3:38 PM
>>> To: J. Bruce Fields
>>> Cc: nfsv4 at linux-nfs.org; nfsv4 at ietf.org; philippe.deniel at cea.fr
>>> Subject: Re: [nfsv4] Asking for details about OPEN_DOWNGRADE
>>>
>>>
>>>
>>> On Jun 13, 2008, at 2:20 PM, J. Bruce Fields wrote:
>>>
>>>> On Fri, Jun 13, 2008 at 10:33:15AM -0700, Mike Mackovitch wrote:
>>>>> On Fri, Jun 13, 2008 at 10:03:29AM -0700, eric kustarz wrote:
>>>>>>
>>>>>> On Jun 13, 2008, at 9:49 AM, Mike Mackovitch wrote:
>>>>>>
>>>>>>> On Fri, Jun 13, 2008 at 08:01:03AM -0400, Trond Myklebust wrote:
>>>>>>>> On Fri, 2008-06-13 at 11:23 +0200, philippe.deniel at cea.fr  
>>>>>>>> wrote:
>>>>>>>>>     The
>>>>>>>>>    share_access and share_deny bits specified must be exactly
>>>>>>>>> equal to
>>>>>>>>>    the union of the share_access and share_deny bits specified
>>>>>>>>> for some
>>>>>>>>>    subset of the OPENs in effect for current openowner on the
>>>>>>>>> current
>>>>>>>>>    file.
>>>>>>>>
>>>>>>>> It basically means that in order to be allowed to downgrade to
>>>>>>>> OPEN4_SHARE_ACCESS_READ|OPEN4_SHARE_DENY_NONE, then at least
>>>>>>>> one of
>>>>>>>> the
>>>>>>>> OPENs that made up the previous stateid must have been of that
>>>>>>>> type.
>>>>>>>
>>>>>>> What's strange is that it appears that only Linux seems to think
>>>>>>> this is the case.  I can't figure out (1) why they think it must
>>>>>>> work this restrictively (my best guess is that the phrase
>>>>>>> "OPENs in
>>>>>>> effect" is being misinterpreted as "OPENs sent to the server"),
>>>>>>> and
>>>>>>> (2) why they haven't bothered/managed to convince the rest of  
>>>>>>> the
>>>>>>> NFSv4 community of this (and get the spec updated).
>>>>>>>
>>>>>>>> IOW: you cannot just do
>>>>>>>>
>>>>>>>>        OPEN(OPEN4_SHARE_ACCESS_BOTH|OPEN4_SHARE_DENY_NONE)
>>>>>>>>        OPEN_DOWNGRADE(OPEN4_SHARE_ACCESS_READ|
>>>>>>>> OPEN4_SHARE_DENY_NONE) = NFS4ERR_INVAL
>>>>>>>
>>>>>>> This works fine on Solaris server - and the Solaris client
>>>>>>> even behaves exactly this way.
>>>>>>
>>>>>> Yeah, we've got some bugs to fix in this area:
>>>>>> NFSv4 client can send a bogus OPEN_DOWNGRADE
>>>>>> http://bugs.opensolaris.org/view_bug.do?bug_id=4877567
>>>>
>>>> Where are the comments, by the way?  (How hard is it to make the
>>>> client
>>>> do this?)
>>>>
>>>>>>
>>>>>> NFSv4 server should deny bogus OPEN_DOWNGRADE
>>>>>> http://bugs.opensolaris.org/view_bug.do?bug_id=4877573
>>>>>
>>>>> Hmmm...if that's really the agreed upon behavior, I must say it's
>>>>> quite
>>>>> a shame that nobody bothered to fix the spec - not even in  
>>>>> NFSv4.1.
>>>>
>>>> NFSv4.1 actually expands on this a bit:
>>>>
>>>>    After checking for valid values of share_access and share_deny,
>>>> the
>>>>    server replaces the current access and deny modes on the file  
>>>> with
>>>>    share_access and share_deny subject to the following  
>>>> constraints:
>>>>
>>>> 	o  The bits in share_access SHOULD equal the union of the
>>>> 	share_access bits (not including OPEN4_SHARE_WANT_* bits)
>>>> 	specified for some subset of the OPENs in effect for the current
>>>> 	open-owner on the current file.
>>>>
>>>> 	o  The bits in share_deny SHOULD equal the union of the
>>>> 	share_deny bits specified for some subset of the OPENs in effect
>>>> 	for the current open-owner on the current file.
>>>>
>>>>    If the above constraints are not respected, the server SHOULD
>>>> return
>>>>    the error NFS4ERR_INVAL.
>>>>
>>>>> Also, the fact that the Solaris bugs have been around for five  
>>>>> years
>>>>> makes it seem like they'll never be fixed.
>>>>
>>>> But, yeah, it's unfortunate if a server has to ignore the final
>>>> SHOULD
>>>> above in order to interoperating with any existing Solaris client.
>>>
>>> Go ahead and have the server enforce the correct behavior and
>>> maybe the Solaris client will eventually be fixed.
>>>
>>> The scenario that produces the behavior is a little off the beaten
>>> path so I doubt it will arise that much but putting pressure
>>> on the implementations to correct themselves is a good thing.
>>>
>>> Spencer
>>> _______________________________________________
>>> nfsv4 mailing list
>>> nfsv4 at ietf.org
>>> https://www.ietf.org/mailman/listinfo/nfsv4
>>
> _______________________________________________
> nfsv4 mailing list
> nfsv4 at ietf.org
> https://www.ietf.org/mailman/listinfo/nfsv4



More information about the NFSv4 mailing list