PR-211674, fuse_vnode and fuse_msgbuf leak in fusefs-ntfs

Rick Macklem rmacklem at uoguelph.ca
Sat Aug 13 04:41:10 UTC 2016


Mahmoud Al-Qudsi wrote:
>Hello,
>
>Please forgive me if it is not correct form to discuss fusefs-ntfs on the FreeBSD fs mailing list.
>
>SUMMARY
>
>Running on FreeBSD 10.3-RELEASE-p6/i386 with fuse compiled into kernel and with fusefs-ntfs >2016.2.22 installed, there is a fuse_vnode leak (though it seems it may be more of a complete failure >to reclaim vnodes) resulting in quick resource exhaustion.
>
>REPRODUCTION
>
>This is easily reproduced with the following:
>
>ntfs-3g /dev/xxx /mnt/yyyy
>cd /mnt/yyyy
>find . -exec touch {} \;
>
>In another virtual terminal:
>
>vmstat | head -n1; vmstat -m | sed 1d | sort -hk 3,3
>
>ACTUAL RESULTS
>
>fuse_vnode will continuously balloon, and will not be reclaimed until the filesystem is unmounted.
>
>(likewise, fuse_msgbuff also balloons but unlike fuse_vnode, it is never reclaimed. Separate PR?)
>
>EXPECTED RESULTS
>
>fuse_vnode entries should be reclaimed
>
>ADDITIONAL INFORMATION
>
>Here's a snapshot of the fuse-related vmstat entries after this process:
>
>fuse_vnode 36020 9005K - 502349 256
These should be free'd when the vnode is recycled. This should start happening
when the system has reached kern.maxvnodes (I think?).

Check the sysctl:
vfs.fuse.node_count
- if this value is much smaller than the # malloc'd, something is broken. If it is
  the same, it may just be that the system hasn't been recycling the vnodes yet.
You could try setting kern.maxvnodes smaller to see if recycling starts happening,
but be warned...setting this too small can break your system badly.

Since unmounting will cause all vnodes to be recycled, seeing it go down when
you unmount is normal.

>fuse_msgbuf 58141 14895K - 311095 256,512,1024,2048,4096,8192
At a glance, these are allocated each time the fuse device is opened and
are never free'd. I don't know why fuse does this. My guess is that the
ntfs-3g file system is opening the device repeatedly. If that isn't happening,
I have no idea why this is occurring.

rick

>Thank you,
>Mahmoud Al-Qudsi
>NeoSmart Technologies
>
>
>_______________________________________________
>freebsd-fs at freebsd.org mailing list
>https://lists.freebsd.org/mailman/listinfo/freebsd-fs<https://lists.freebsd.org/mailman/listinfo/freebsd-fs>
>To unsubscribe, send any mail to "freebsd-fs-unsubscribe at freebsd.org"


More information about the freebsd-fs mailing list