[nfsv4] Asking for details about OPEN_DOWNGRADE

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


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 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



More information about the NFSv4 mailing list