Project

General

Profile

Bug #3211

Endless loop in nfs4close_all

Added by Simon K over 8 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
nfs - NFS server and client
Start date:
2012-09-20
Due date:
% Done:

0%

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

Description

I'm currently observing the following problem with nfs4:

The function nfs4close_all() is iterating over an opened stream list but it never returns. It calls nfs4close_one() every time with the same item from the list and I'm wondering why nobody (at least nfs4close_one) is able to remove this item from the list.

Stack trace:

  ffffff00483e98d0 nfs4close_one+0x5f1()
  ffffff00483e9970 nfs4close_all+0x15d()
  ffffff00483e9b50 nfs4_inactive_otw+0x3fb()
  ffffff00483e9c00 nfs4_async_common_start+0x417(ffffff0fae8eba98, 0)
  ffffff00483e9c20 nfs4_async_start+0x13()
  ffffff00483e9c30 thread_start+8()

dtrace told me the following:

nfs4close_one:entry  osp->os_delegation=0 osp->os_open_ref_count=0 osp->os_mapcnt=0 osp->os_valid=0 os_ref_count=2 os_force_close=1

...so the item is already marked as "invalid" but is still in the list with a refcount of two. What would be correct in this situation?

No data to display

Also available in: Atom PDF