Re: [bug] open owner value is always the same

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Oct 6, 2014 at 10:49 AM, Trond Myklebust
<trond.myklebust@xxxxxxxxxxxxxxx> wrote:
> On Mon, Oct 6, 2014 at 10:12 AM, Olga Kornievskaia
> <olga.kornievskaia@xxxxxxxxx> wrote:
>> Aren't sequence slots shared by the same open owners?
>>
>> The problem I'm seeing is that a client with an outstanding open can't
>> respond to a delegation return because sequenced hasn't been
>> confirmed. I think it's problematic when there are two clients each
>> holding delegations and each sending an open. The server tries to
>> recall the delegations but neither clients will reply until the server
>> returns an open to the outstanding open. The server will try and not
>> reply to the outstanding opens until the delegations are returned.
>
> I'm not sure that I understand.
>
> Why should the server refuse to respond to OPEN calls just because a
> delegation recall is outstanding? That sounds like a catastrophic
> design for a server. How is the client going to convert its cached
> open/lock state into open stateids and lock stateids if the server
> won't respond to OPEN calls for that file?
>
> If the server cannot respond to the OPEN because it conflicts with a
> delegation being recalled, then the right thing to do is to return
> NFS4ERR_DELAY. That allows the client to make progress on other OPEN
> requests that may be required in order to return the conflicting
> delegation, and that may be serialised behind that blocked OPEN.
> I can imagine this might be the case if the client holds a delegation
> for a file, and then is asked to OPEN a hard link to the same file.
> The client has no way to know a priori that it is opening the same
> file through the hard link, so it doesn't know that it conflicts with
> the delegation.
>

Sorry I should have provided a clear example. But you are right, the
server is not replying to the open because of the conflicting
opens/delegations.

ClientA opens file A gets a write delegation.
ClientB open files B gets a write delegation.
ClientA sends an open for file B
ClientB sends an open for file A

Thank you for pointing out that a server should/can return
NFS4ERR_DELAY to the open.

I'm still new to this, so I apologize. But to me it seems like at
should be totally reasonable from the server-side to expect for the
delegation to file A to the returned independent of the opening of
file B.


> Cheers
>   Trond
>
>>
>> On Mon, Oct 6, 2014 at 9:57 AM, Trond Myklebust
>> <trond.myklebust@xxxxxxxxxxxxxxx> wrote:
>>> Hi Olga,
>>>
>>> On Mon, Oct 6, 2014 at 9:48 AM, Olga Kornievskaia
>>> <olga.kornievskaia@xxxxxxxxx> wrote:
>>>> The spec says that open owner needs to be different for different
>>>> files yet the code returns the same value.
>>>>
>>>> It is not clear to me what's broken about ida_get_new() that's used
>>>> for generation of the owner ids.
>>>>
>>>> Can somebody comment on this?
>>>>
>>>
>>> As far as I know, there is no requirement in either NFSv4 or NFSv4.1
>>> that open owners be different for each file. In NFSv4.1 there is a
>>> requirement that they be unique to each credential/principal, but only
>>> if you negotiate EXCHGID4_FLAG_BIND_PRINC_STATEID.
>>>
>>> The current choice of scheme where we share open_owners between files
>>> was largely motivated by a desire not to overload the NFSv4.0 servers
>>> with lots of open_owner structures. In NFSv4.0, those structures are
>>> required to be cached by the server for a while after the file has
>>> been closed.
>>>
>>> Cheers
>>>   Trond
>>>
>>>
>>> --
>>> Trond Myklebust
>>>
>>> Linux NFS client maintainer, PrimaryData
>>>
>>> trond.myklebust@xxxxxxxxxxxxxxx
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux