Description of problem: From the Linux NFS Linux maintainer: "It appears to me that the fix for Bz 433249 that is present in the RHEL-5.4 and RHEL-5.5 kernels contains a typo. AFAICS, both these kernels apply the same fix as I applied to mainline, but with one exception: in the original, I make sure to drop the nfs_access_lru_lock before calling iput() on the inode whereas the RHEL kernels appear to keep that lock. Keeping the spinlock looks like a bug, since iput() can definitely sleep (see for instance the calls to truncate_inode_pages())."
Created attachment 409239 [details] Don't call iput while holding a spinlock in nfs_access_cache_shrinker This patch syncs nfs_access_cache_shrinker() to the current mainline. I'm not sure that it eliminates all possible deadlocks here, since I'm getting worried that iput() and put_rpccred() can under certain circumstances trigger calls to more allocators. We may therefore need to check gfp_mask in addition to what is contained in this patch.
*** Bug 560688 has been marked as a duplicate of this bug. ***
I have checked a number of RH kernel sources, including the latest RH5 (2.6.18-238,2.6.18-238.19.1, 2.6.18-274, 2.6.18-274.3.1), and this patch has not been applied yet in RHEL5. Can someone advise when it will be available?
*** Bug 742537 has been marked as a duplicate of this bug. ***
Ok, thats great. When can we expect a fix for this?
I see Trond who proposed the fix has his email address at netapp.com. Maybe he fixed the issue for the Linux they use in Netapp appliances? FYI Netapp makes NAS filers.
Created attachment 527390 [details] Bugcheck 10 Oct 2011
We suffered a machine hang again last night. I have attached the second stack trace (thlxpgas01-2nd-bugcheck.lis). Since the first hang reported in Bug 742537 we have applied a BIOS upgrade to the server. This has not worked. Can we escalate this please?
This request was evaluated by Red Hat Product Management for inclusion in a Red Hat Enterprise Linux maintenance release. Product Management has requested further review of this request by Red Hat Engineering, for potential inclusion in a Red Hat Enterprise Linux Update release for currently deployed products. This request is not yet committed for inclusion in an Update release.
This is being proposed as a fix in rhel5.8.
Patch(es) available in kernel-2.6.18-290.el5 You can download this test kernel (or newer) from http://people.redhat.com/jwilson/el5 Detailed testing feedback is always welcomed.
Technical note added. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. New Contents: Previously, when the iput() function was called while it held the nfs_access_lru lock could result in problems since iput() can sleep, and it can also attempt to allocate memory. This update removes an optimisation that is not present in the mainline kernel series. Now, iput() is never called while holding a spinlock in the <function>nfs_access_cache_shrinker() function, thus preventing this bug.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHSA-2012-0150.html