Bug 794618 - [glusterfs-3.3.0qa22]: fd leak in fuse resolve
Summary: [glusterfs-3.3.0qa22]: fd leak in fuse resolve
Keywords:
Status: CLOSED UPSTREAM
Alias: None
Product: GlusterFS
Classification: Community
Component: fuse
Version: mainline
Hardware: Unspecified
OS: Unspecified
high
unspecified
Target Milestone: ---
Assignee: Raghavendra Bhat
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-02-17 06:35 UTC by Raghavendra Bhat
Modified: 2012-02-22 08:59 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-02-22 06:20:46 UTC
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions: glusterfs-3.3.0qa23


Attachments (Terms of Use)

Description Raghavendra Bhat 2012-02-17 06:35:53 UTC
Description of problem:
There is a fd leak while doing resolve in fd because of which fd's are not getting unrefed and causing too many open fds.

Its because this part of the code

int
fuse_resolve_fd_init (fuse_state_t *state, fuse_resolve_t *resolve,
                      fd_t *fd)
{
        resolve->fd = fd_ref (fd);

	return 0;
}

Here we are refing the fd to resolve fd, but while freeing resolve, we are not unrefing the fd which leads to fd leak.

Version-Release number of selected component (if applicable):


How reproducible:

always
Steps to Reproduce:
1.touch a file
2.do lsof -n | grep glusterfs
3.the file that was touched can be seen in the open file list
  
Actual results:

fds are leaked which when exceeds certain limit, the kernel complains that maximum open file limit has been reached.

Expected results:

fd's should be closed properly without any leak.

Additional info:

VFS: file-max limit 198110 reached
VFS: file-max limit 198110 reached
VFS: file-max limit 198110 reached
VFS: file-max limit 198110 reached
VFS: file-max limit 198110 reached
VFS: file-max limit 198110 reached
VFS: file-max limit 198110 reached
VFS: file-max limit 198110 reached
VFS: file-max limit 198110 reached
VFS: file-max limit 198110 reached


lsof -n | grep glusterfs :

lusterfs 14805      root *258u      REG               8,17     688128  204956140 /export-xfs/mirror/.glusterfs/61/98/6198d10e-3c1d-4238-8d98-bf394e3712c3 (deleted)
glusterfs 14805      root *259u      REG               8,17     688128  204956142 /export-xfs/mirror/.glusterfs/c3/c5/c3c5de18-e1cd-4918-aabb-917dc73caac4 (deleted)
glusterfs 14805      root *260u      REG               8,17     688128  204956143 /export-xfs/mirror/.glusterfs/b6/bf/b6bf873e-2f57-49ed-9858-7c790a978cdd (deleted)
glusterfs 14805      root *261u      REG               8,17     688128  204956144 /export-xfs/mirror/.glusterfs/f5/df/f5df1c98-95ae-488e-9319-106bdf257545 (deleted)
glusterfs 14805      root *262u      REG               8,17     688128  204956145 /export-xfs/mirror/.glusterfs/01/5e/015ee620-aa7d-4632-adde-0af6c54b99a5 (deleted)
glusterfs 14805      root *263u      REG               8,17     688128  204956147 /export-xfs/mirror/.glusterfs/02/00/0200aea7-6bc2-4061-a8a1-fef07fca2a19 (deleted)
glusterfs 14805      root *264u      REG               8,17     688128  204956148 /export-xfs/mirror/.glusterfs/69/aa/69aab854-e20f-4347-9036-e9e6c72fa845 (deleted)
glusterfs 14805      root *265u      REG               8,17     688128  204956149 /export-xfs/mirror/.glusterfs/d4/48/d4483920-2208-4a80-a0df-ac6399b5fa20 (deleted)
glusterfs 14805      root *266u      REG               8,17     688128  204956151 /export-xfs/mirror/.glusterfs/86/8d/868d87d0-1d7d-4192-b72c-475a3beb3d21 (deleted)
glusterfs 14805      root *267u      REG               8,17     688128  204956152 /export-xfs/mirror/.glusterfs/71/9b/719bdf0b-eec6-4ebd-808c-afd1cc054ca4 (deleted)
glusterfs 14805      root *268u      REG               8,17     688128  204956153 /export-xfs/mirror/.glusterfs/03/42/03427c66-0dea-4922-b68a-5367c60adaf9 (deleted)
glusterfs 14805      root *269u      REG               8,17     688128  204956154 /export-xfs/mirror/.glusterfs/fa/7e/fa7e78fc-cfd6-4707-8e55-d862edbd5584 (deleted)
glusterfs 14805      root *270u      REG               8,17     688128  204956155 /export-xfs/mirror/.glusterfs/30/9c/309cc77d-6a8c-4fe5-b6a7-d8333d2c9599 (deleted)
glusterfs 14805      root *271u      REG               8,17     688128  204956157 /export-xfs/mirror/.glusterfs/82/d7/82d72302-1ae6-47a5-946a-f21e07c7e8c3 (deleted)
glusterfs 14805      root *272u      REG               8,17     688128  204956159 /export-xfs/mirror/.glusterfs/18/e3/18e3d82e-2e25-41e7-8e83-21db48f90c56 (deleted)
glusterfs 14805      root *273u      REG               8,17     688128  204956158 /export-xfs/mirror/.glusterfs/d8/f2/d8f201a1-ab9b-4f91-a969-33ce496a3611 (deleted)
glusterfs 14805      root *274u      REG               8,17     688128  204956674 /export-xfs/mirror/.glusterfs/40/f7/40f7954e-bb6e-49e6-9728-909299f9ff39 (deleted)
glusterfs 14805      root *275u      REG               8,17     688128  204956676 /export-xfs/mirror/.glusterfs/6a/bb/6abb954b-cc6f-4488-9da8-c568f678ebcf (deleted)
glusterfs 14805      root *276u      REG               8,17     688128  204956677 /export-xfs/mirror/.glusterfs/ee/ed/eeed7d69-5c48-4fb7-9892-4aa769938211 (deleted)
glusterfs 14805      root *277u      REG               8,17     688128  204956679 /export-xfs/mirror/.glusterfs/72/75/7275f01a-4ce9-4b2b-8ce1-9e6efa582fa7 (deleted)
glusterfs 14805      root *278u      REG               8,17     688128  204956681 /export-xfs/mirror/.glusterfs/44/52/44521268-b04b-46ab-b2ed-d68a63d54736 (deleted)
glusterfs 14805      root *279u      REG               8,17     688128  204956683 /export-xfs/mirror/.glusterfs/26/6d/266da74f-e3f4-415a-8935-8dd773ba058c (deleted)
glusterfs 14805      root *280u      REG               8,17     688128  204956685 /export-xfs/mirror/.glusterfs/46/a4/46a43b52-a74f-4b57-89e5-55402a976e51 (deleted)

Comment 1 Anand Avati 2012-02-17 12:20:27 UTC
CHANGE: http://review.gluster.com/2760 (mount/fuse: unref the fd from resolve to avoid fd leak) merged in master by Vijay Bellur (vijay)

Comment 2 Raghavendra Bhat 2012-02-22 06:20:46 UTC
Checked with glusterfs-3.3.0qa23. Its not leaking fd since the fd that was refed in resolve is unrefed while freeing resolve structure.

Comment 3 Raghavendra Bhat 2012-02-22 08:59:31 UTC
Checked with glusterfs-3.3.0qa23. Its not leaking fd since the fd that was refed in resolve is unrefed while freeing resolve structure.


Note You need to log in before you can comment on or make changes to this bug.