containers / containers/fuse-overlayfs

File descriptor leak for mmaped files

Open
#378 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
691
Forks
109
Avg merge
5d 7h
Merged PRs (30d)
2

Description

I'm running rootless `podman` container backed by `fuse-overlayfs` within which I'm running process opening many files one by one, each being `mmap()`ed and immediately `close()`d but all `mmap()` are kept (to be specific that's linking https://github.com/rui314/mold/issues/797). Now it all works fine within host system or in `podman` container with `overlay` driver (which I unfortunately cannot use in this particular case) or when files are not `mmap()`ed, but scenario fails with `fuse-overlayfs` due to `-EMFILE (Too many open files)`. It appears that `mmap()` on file results in file descriptor being kept by `fuse-overlayfs` process even though file is `close()`d afterwards.

Is this something that can be avoided or is it perhaps shortcoming of `fuse` filesystems?

Contributor guide

No contributing guide indexed for this repository

Research direction

No source file or test is named. Start by reproducing the rootless podman/fuse-overlayfs workload that mmap()s and closes many files, then compare descriptor behavior with the host and overlay driver; done when the cause is identified and the behavior is fixed or clearly documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux
Domain
operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.