Bug #417
closedStale OpenOwner entries are not reaped for active clients
0%
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
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.
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.
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?
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.
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)
Updated by Vitaliy Gusev over 11 years ago
rfs4_state_expiry() does needed lease time delay.
Updated by Vitaliy Gusev over 11 years ago
- Assignee changed from Albert Lee to Vitaliy Gusev
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.
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