Bug 981741
Summary: | BUG on dentry still in use when unmounting fuse | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 6 | Reporter: | Niels de Vos <ndevos> | ||||||||
Component: | kernel | Assignee: | Niels de Vos <ndevos> | ||||||||
Status: | CLOSED ERRATA | QA Contact: | Zorro Lang <zlang> | ||||||||
Severity: | high | Docs Contact: | |||||||||
Priority: | high | ||||||||||
Version: | 6.4 | CC: | bfoster, ccui, dhoward, eguan, fs-maint, jclift, jharriga, msvoboda, rwheeler, shaines, ssampat, vbellur | ||||||||
Target Milestone: | rc | Keywords: | Patch, Regression, TestCaseProvided, ZStream | ||||||||
Target Release: | --- | ||||||||||
Hardware: | Unspecified | ||||||||||
OS: | Unspecified | ||||||||||
Whiteboard: | |||||||||||
Fixed In Version: | kernel-2.6.32-408.el6 | Doc Type: | Bug Fix | ||||||||
Doc Text: |
A dentry leak occurred in the FUSE code when, after a negative lookup, a negative dentry was neither dropped nor was the reference counter of the dentry decremented. This triggered a BUG() macro when unmounting a FUSE subtree containing the dentry, resulting in a kernel panic. A series of patches related to this problem has been applied to the FUSE code and negative dentries are now properly dropped so that triggering the BUG() macro is now avoided.
|
Story Points: | --- | ||||||||
Clone Of: | |||||||||||
: | 988312 (view as bug list) | Environment: | |||||||||
Last Closed: | 2013-11-21 19:24:57 UTC | Type: | Bug | ||||||||
Regression: | --- | Mount Type: | --- | ||||||||
Documentation: | --- | CRM: | |||||||||
Verified Versions: | Category: | --- | |||||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||||
Embargoed: | |||||||||||
Bug Depends On: | |||||||||||
Bug Blocks: | 988312, 988708 | ||||||||||
Attachments: |
|
Description
Niels de Vos
2013-07-05 16:44:26 UTC
Created attachment 769332 [details]
Proposed patch
jclift tested this patch successfully on RHEL-6.4.
Comment on attachment 769332 [details]
Proposed patch
This patch does not correctly decrease the sb->s_active counter. This makes it impossible to unload the module after using it. Testing some variations now.
Created attachment 773572 [details]
Disable readdirplus for testing
When I run the tests and the fuse-module does not support readdirplus, I can not reproduce the crashes. This narrows down the search for the cause considerably.
I'll read through the code over the next few days, do some further testing and see if there is anything obvious.
Created attachment 773675 [details]
fix the dentry leak
There is a dentry leak in case d_lookup() returned a dentry that does not have a valid d_inode set. The attached patch fixes it for me.
Doing some further verification tests before posing upstream for review.
This regression was introduced with the new READDIRPLUS support in fuse. In order to hit the BUG() (which results in a kernel panic on RHEL), some stressing of the VFS and the fuse mount seems needed. The GlusterFS tests make a reliable reproducer: - http://www.gluster.org/community/documentation/index.php/Using_the_Gluster_Test_Framework After some stressing of the VFS and fuse mountpoints, bug-860663.t will hit the BUG(). It does not happen on running this test stand-alone. Patch posted upstream for review: - https://lkml.org/lkml/2013/7/15/203 This request was evaluated by Red Hat Product Management for inclusion in a Red Hat Enterprise Linux release. Product Management has requested further review of this request by Red Hat Engineering, for potential inclusion in a Red Hat Enterprise Linux release for currently deployed products. This request is not yet committed for inclusion in a release. RHEL-6 test-packages and the upstream patch can be found here: - http://people.redhat.com/ndevos/bz981741/ Patch(es) available on kernel-2.6.32-408.el6 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-2013-1645.html *** Bug 1031614 has been marked as a duplicate of this bug. *** |