[GH-ISSUE #2760] Obsolete nonempty check from fuse2 left, while fuse3 doesn't support nonempty #1288

Closed
opened 2026-03-04 01:52:50 +03:00 by kerem · 3 comments
Owner

Originally created by @pschichtel on GitHub (Nov 30, 2025).
Original GitHub issue: https://github.com/s3fs-fuse/s3fs-fuse/issues/2760

Additional Information

Version of s3fs being used (s3fs --version)

V1.96(commit:6235d0b +untracked files) with OpenSSL

Version of fuse being used (pkg-config --modversion fuse, rpm -qi fuse or dpkg -s fuse)

libfuse3-4:amd64 3.17.2-3

Provider (AWS, OVH, Hetzner, iDrive E2, ...)

Ceph RGW

Kernel information (uname -r)

GNU/Linux Distribution, if applicable (cat /etc/os-release)

PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
NAME="Debian GNU/Linux"
VERSION_ID="13"
VERSION="13 (trixie)"
VERSION_CODENAME=trixie
DEBIAN_VERSION_FULL=13.2
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

How to run s3fs, if applicable

[X] command line
[] /etc/fstab

mkdir -p /mnt/some-dir
touch /mnt/some-dir/test
s3fs -f some-bucket /mnt/some-dir -o ro,nonempty,listobjectsv2,instance_name=some-bucket,passwd_file=/tmp/tmp.YfZokQwAKK,use_path_request_style,url=https://some-host

or

mkdir -p /mnt/some-dir
touch /mnt/some-dir/test
s3fs -f some-bucket /mnt/some-dir -o ro,listobjectsv2,instance_name=some-bucket,passwd_file=/tmp/tmp.YfZokQwAKK,use_path_request_style,url=https://some-host

s3fs syslog messages (grep s3fs /var/log/syslog, journalctl | grep s3fs, or s3fs outputs)

fuse: unknown option(s): `-o nonempty'

or

s3fs: MOUNTPOINT directory /mnt/some-dir is not empty. if you are sure this is safe, can use the 'nonempty' mount option.

Details about issue

When trying to mount s3fs to a non-empty directory, 1.95 allowed me to supply -o nonempty to allow that. With the switch to fuse3 1.96 started complaining, that -o nonempty doesn't exist, because apparently fuse3 made -o nonempty the default behavior. However, if I remove the nonempty option, s3fs then still complains that the folder is non-empty as with fuse2.

The fact that with nonempty fuse is complaing and without it s3fs is complaining suggests, that there might be some obsolete code left from fuse2 times. And indeed, it seems like this section should probably be thrown out:

github.com/s3fs-fuse/s3fs-fuse@26f0f9e535/src/s3fs.cpp (L5055-L5070)

Originally created by @pschichtel on GitHub (Nov 30, 2025). Original GitHub issue: https://github.com/s3fs-fuse/s3fs-fuse/issues/2760 <!-- -------------------------------------------------------------------------- The following information is very important in order to help us to help you. Omission of the following details may delay your support request or receive no attention at all. --------------------------------------------------------------------------- --> ### Additional Information #### Version of s3fs being used (`s3fs --version`) V1.96(commit:6235d0b +untracked files) with OpenSSL #### Version of fuse being used (`pkg-config --modversion fuse`, `rpm -qi fuse` or `dpkg -s fuse`) `libfuse3-4:amd64 3.17.2-3` #### Provider (`AWS`, `OVH`, `Hetzner`, `iDrive E2`, ...) Ceph RGW #### Kernel information (`uname -r`) <!-- example: 5.10.96-90.460.amzn2.x86_64 --> #### GNU/Linux Distribution, if applicable (`cat /etc/os-release`) PRETTY_NAME="Debian GNU/Linux 13 (trixie)" NAME="Debian GNU/Linux" VERSION_ID="13" VERSION="13 (trixie)" VERSION_CODENAME=trixie DEBIAN_VERSION_FULL=13.2 ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/" #### How to run s3fs, if applicable <!-- Describe the s3fs "command line" or "/etc/fstab" entry used. --> [X] command line [] /etc/fstab <!-- Executed command line or /etc/fastab entry --> ``` mkdir -p /mnt/some-dir touch /mnt/some-dir/test s3fs -f some-bucket /mnt/some-dir -o ro,nonempty,listobjectsv2,instance_name=some-bucket,passwd_file=/tmp/tmp.YfZokQwAKK,use_path_request_style,url=https://some-host ``` or ``` mkdir -p /mnt/some-dir touch /mnt/some-dir/test s3fs -f some-bucket /mnt/some-dir -o ro,listobjectsv2,instance_name=some-bucket,passwd_file=/tmp/tmp.YfZokQwAKK,use_path_request_style,url=https://some-host ``` #### s3fs syslog messages (`grep s3fs /var/log/syslog`, `journalctl | grep s3fs`, or `s3fs outputs`) <!-- if you execute s3fs with dbglevel, curldbg option, you can get detail debug messages. --> ``` fuse: unknown option(s): `-o nonempty' ``` or ``` s3fs: MOUNTPOINT directory /mnt/some-dir is not empty. if you are sure this is safe, can use the 'nonempty' mount option. ``` ### Details about issue <!-- Please describe the content of the issue in detail. --> When trying to mount s3fs to a non-empty directory, 1.95 allowed me to supply `-o nonempty` to allow that. With the switch to fuse3 1.96 started complaining, that `-o nonempty` doesn't exist, because apparently fuse3 made `-o nonempty` the default behavior. However, if I remove the nonempty option, s3fs then still complains that the folder is non-empty as with fuse2. The fact that with nonempty fuse is complaing and without it s3fs is complaining suggests, that there might be some obsolete code left from fuse2 times. And indeed, it seems like this section should probably be thrown out: https://github.com/s3fs-fuse/s3fs-fuse/blob/26f0f9e535b6feee92dc51d8f8a4cc34e399cd20/src/s3fs.cpp#L5055-L5070
kerem closed this issue 2026-03-04 01:52:50 +03:00
Author
Owner

@ggtakec commented on GitHub (Dec 4, 2025):

@pschichtel Thnaks for this issue post.
I've merged #2765 by @gaul, now.

<!-- gh-comment-id:3611717067 --> @ggtakec commented on GitHub (Dec 4, 2025): @pschichtel Thnaks for this issue post. I've merged #2765 by @gaul, now.
Author
Owner

@pschichtel commented on GitHub (Dec 4, 2025):

@ggtakec great! are there plans for some form of bugfix release?

<!-- gh-comment-id:3613320993 --> @pschichtel commented on GitHub (Dec 4, 2025): @ggtakec great! are there plans for some form of bugfix release?
Author
Owner

@ggtakec commented on GitHub (Dec 4, 2025):

@pschichtel We're having that discussion in #2756, so please keep an eye on it.

<!-- gh-comment-id:3613434790 --> @ggtakec commented on GitHub (Dec 4, 2025): @pschichtel We're having that discussion in #2756, so please keep an eye on it.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/s3fs-fuse#1288
No description provided.