Project

General

Profile

Actions

Bug #417

closed

Stale OpenOwner entries are not reaped for active clients

Added by Albert Lee almost 13 years ago. Updated about 11 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
kernel
Start date:
2010-11-15
Due date:
% Done:

0%

Estimated time:
Difficulty:
Medium
Tags:
needs-triage
Gerrit CR:
External Bug:

Description

This is a mirror of 6976554 Stale OpenOwner entries are not reaped for active clients (http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6976554).

"Apparently, unused OpenOwner entries are not disposed after some period of time
in case the client is active somehow. They are disposed only for inactive
clients. It is visible in rfs4_openowner_expiry()."


Related issues

Related to illumos gate - Bug #1927: nfs4 stale clientid loop (OI server, Linux client)ResolvedMarcel Telka2011-12-23

Actions
Actions #1

Updated by Albert Lee almost 13 years ago

<Triskelios> http://hg.openindiana.org/illumos-gate/file/24c98ecd58de/usr/src/uts/common/fs/nfs/nfs4_state.c#2025
<gwr> That looks OK to me, given a brief look.
<gwr> Using rfs4_lease_time instead of rfs4_openowner_cache_time seems odd, but that would make it timeout earlier...
<gwr> Isn't the bug that these are not being cleaned up?
<Triskelios> the issue is that clients will accumulate unused open_owners while they're still active for any reason
* kart_ has quit (Ping timeout: 265 seconds)
<gwr> Ah, I can see why that would be.  It's using ->rc_last_access, which is updated for _any_ activity on that client, not activity for this specific "open owner" object.
* kart_ (~kartik@122.169.94.204) has joined #nexenta-kernel
<Triskelios> right
<gwr> OK, so it needs something to replace oo->ro_client->rc_last_access
<gwr> and that new thing needs to be updated in the appropriate places...
<gwr> I think we understand the bug now, so you should update the issue with that before going too much further.
Actions #2

Updated by Albert Lee over 12 years ago

http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=7005717 is a closely related bug for LockStateID, this will also be addressed.

Actions #3

Updated by Juho Juopperi over 12 years ago

  • Difficulty set to Medium
  • Tags set to needs-triage

Will the fix mentioned in http://lists.illumos.org/pipermail/developer/2010-December/001162.html be integrated in illumos-gate?

Actions #4

Updated by Vitaliy Gusev over 11 years ago

Juho Juopperi wrote:

Will the fix mentioned in http://lists.illumos.org/pipermail/developer/2010-December/001162.html be integrated in illumos-gate?

No, but we are working on it.

Actions #5

Updated by Vitaliy Gusev over 11 years ago

rfs4_openowner_expiry() doesn't return TRUE if client is active (sends RENEW on time). Due to this number of openowner entries grows till to 1M entries.

Really openowner should be freed in lease time if no any "openstateid" associated with this owner. Therefore rfs4_openowner_expiry() should always return TRUE (refcnt == 1)

Actions #6

Updated by Vitaliy Gusev over 11 years ago

rfs4_state_expiry() does needed lease time delay.

Actions #7

Updated by Vitaliy Gusev over 11 years ago

  • Assignee changed from Albert Lee to Vitaliy Gusev
Actions #8

Updated by Albert Lee over 11 years ago

The rfs4_state_t objects are not released until the client is in the grace period, and the expiration is prevented if the associated file is not closed, so it looks like the ref held by them on openowner objects is sufficient.

Actions #9

Updated by Gordon Ross about 11 years ago

  • Status changed from New to Resolved
changeset:   13756:281242a86f07
tag:         tip
user:        Vitaliy Gusev <gusev.vitaliy@nexenta.com>
date:        Sun Jul 22 00:00:47 2012 +0000

description:
    417 Stale OpenOwner entries are not reaped for active clients
    Reviewed by: Albert Lee <trisk@nexenta.com>
    Approved by: Gordon Ross <gwr@nexenta.com>

modified:
   usr/src/uts/common/fs/nfs/nfs4_state.c

Actions

Also available in: Atom PDF