[GH-ISSUE #2657] S3 mounts with prefixes broken after latest commit #1269

Open
opened 2026-03-04 01:52:42 +03:00 by kerem · 1 comment
Owner

Originally created by @joshgarde on GitHub (Apr 7, 2025).
Original GitHub issue: https://github.com/s3fs-fuse/s3fs-fuse/issues/2657

Additional Information

Version of s3fs being used (s3fs --version)

V1.95(commit:04a8258)

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

2.9.9

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

AWS

Kernel information (uname -r)

6.1.129-138.220.amzn2023.x86_64

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

N/A

How to run s3fs, if applicable

  • command line
  • /etc/fstab
s3fs [bucket_name]:/bootstrap/ /bootstrap -o rw,iam_role=auto,allow_other,use_cache=/tmp,uid=1001,gid=1001,umask=0022,dev,suid

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

2025-04-07T17:07:00.795Z [INF]       s3fs_threadreqs.cpp:check_service_req_threadworker(281): Check Service Request [path=/bootstrap/][support compat dir=false][force No SSE=false]
2025-04-07T17:07:00.795Z [INF]       curl.cpp:CheckBucket(3130): check a bucket path(/bootstrap/).
2025-04-07T17:07:00.795Z [INF]       curl_util.cpp:prepare_url(211): URL is https://s3-us-west-2.amazonaws.com/[bucket_name]/bootstrap/
2025-04-07T17:07:00.795Z [INF]       curl_util.cpp:prepare_url(244): URL changed is https://[bucket_name].s3-us-west-2.amazonaws.com/bootstrap/
2025-04-07T17:07:00.795Z [DBG] curl.cpp:RequestPerform(1944): connecting to URL https://[bucket_name].s3-us-west-2.amazonaws.com/bootstrap/
2025-04-07T17:07:00.795Z [INF]       curl.cpp:insertV4Headers(2366): computing signature [GET] [/bootstrap/] [] []
2025-04-07T17:07:00.795Z [INF]       curl_util.cpp:url_to_host(266): url is https://s3-us-west-2.amazonaws.com
2025-04-07T17:07:00.888Z [INF]       curl.cpp:RequestPerform(1982): HTTP response code 200
2025-04-07T17:07:00.888Z [INF]   s3fs.cpp:remote_mountpath_exists(3359): [path=/]
2025-04-07T17:07:00.888Z [DBG] s3fs.cpp:get_object_attribute(397): [path=/]
2025-04-07T17:07:00.888Z [INF]       s3fs_threadreqs.cpp:head_req_threadworker(45): Head Request [path=/][pmeta=0x7f7e3ec85800]
2025-04-07T17:07:00.888Z [INF]       curl.cpp:HeadRequest(2774): [tpath=/]
2025-04-07T17:07:00.888Z [INF]       curl.cpp:PreHeadRequest(2737): [tpath=/][sseckeypos=18446744073709551615]
2025-04-07T17:07:00.888Z [INF]       curl_util.cpp:prepare_url(211): URL is https://s3-us-west-2.amazonaws.com/[bucket_name]/bootstrap/
2025-04-07T17:07:00.888Z [INF]       curl_util.cpp:prepare_url(244): URL changed is https://[bucket_name].s3-us-west-2.amazonaws.com/bootstrap/
2025-04-07T17:07:00.888Z [DBG] curl.cpp:RequestPerform(1944): connecting to URL https://[bucket_name].s3-us-west-2.amazonaws.com/bootstrap/
2025-04-07T17:07:00.888Z [INF]       curl.cpp:insertV4Headers(2366): computing signature [HEAD] [/bootstrap/] [] []
2025-04-07T17:07:00.888Z [INF]       curl_util.cpp:url_to_host(266): url is https://s3-us-west-2.amazonaws.com
2025-04-07T17:07:00.958Z [INF]       curl.cpp:RequestPerform(1982): HTTP response code 200
2025-04-07T17:07:00.958Z [INF]       cache.cpp:AddStat(318): add stat cache entry[path=/]
2025-04-07T17:07:00.958Z [DBG] cache.cpp:GetStat(240): stat cache hit [path=/][time=310.062907248][hit count=0]
2025-04-07T17:07:00.958Z [CRT] s3fs.cpp:s3fs_check_service(4356): Remote mountpath /bootstrap not found, this may be resolved with the compat_dir option.
2025-04-07T17:07:00.958Z [ERR] s3fs.cpp:s3fs_exit_fuseloop(4049): Exiting FUSE event loop due to errors

Details about issue

A recent commit has caused S3 mounts with prefixes to stop working. Reverting to commit ad4646f resolves the issue.

Originally created by @joshgarde on GitHub (Apr 7, 2025). Original GitHub issue: https://github.com/s3fs-fuse/s3fs-fuse/issues/2657 ### Additional Information #### Version of s3fs being used (`s3fs --version`) [V1.95(commit:04a8258)](https://github.com/s3fs-fuse/s3fs-fuse/commit/04a82583d123fab337c570c37f24bd25ffdd5585) #### Version of fuse being used (`pkg-config --modversion fuse`, `rpm -qi fuse` or `dpkg -s fuse`) 2.9.9 #### Provider (`AWS`, `OVH`, `Hetzner`, `iDrive E2`, ...) AWS #### Kernel information (`uname -r`) 6.1.129-138.220.amzn2023.x86_64 #### GNU/Linux Distribution, if applicable (`cat /etc/os-release`) N/A #### How to run s3fs, if applicable - [X] command line - [X] /etc/fstab <!-- Executed command line or /etc/fastab entry --> ``` s3fs [bucket_name]:/bootstrap/ /bootstrap -o rw,iam_role=auto,allow_other,use_cache=/tmp,uid=1001,gid=1001,umask=0022,dev,suid ``` #### 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. --> ``` 2025-04-07T17:07:00.795Z [INF] s3fs_threadreqs.cpp:check_service_req_threadworker(281): Check Service Request [path=/bootstrap/][support compat dir=false][force No SSE=false] 2025-04-07T17:07:00.795Z [INF] curl.cpp:CheckBucket(3130): check a bucket path(/bootstrap/). 2025-04-07T17:07:00.795Z [INF] curl_util.cpp:prepare_url(211): URL is https://s3-us-west-2.amazonaws.com/[bucket_name]/bootstrap/ 2025-04-07T17:07:00.795Z [INF] curl_util.cpp:prepare_url(244): URL changed is https://[bucket_name].s3-us-west-2.amazonaws.com/bootstrap/ 2025-04-07T17:07:00.795Z [DBG] curl.cpp:RequestPerform(1944): connecting to URL https://[bucket_name].s3-us-west-2.amazonaws.com/bootstrap/ 2025-04-07T17:07:00.795Z [INF] curl.cpp:insertV4Headers(2366): computing signature [GET] [/bootstrap/] [] [] 2025-04-07T17:07:00.795Z [INF] curl_util.cpp:url_to_host(266): url is https://s3-us-west-2.amazonaws.com 2025-04-07T17:07:00.888Z [INF] curl.cpp:RequestPerform(1982): HTTP response code 200 2025-04-07T17:07:00.888Z [INF] s3fs.cpp:remote_mountpath_exists(3359): [path=/] 2025-04-07T17:07:00.888Z [DBG] s3fs.cpp:get_object_attribute(397): [path=/] 2025-04-07T17:07:00.888Z [INF] s3fs_threadreqs.cpp:head_req_threadworker(45): Head Request [path=/][pmeta=0x7f7e3ec85800] 2025-04-07T17:07:00.888Z [INF] curl.cpp:HeadRequest(2774): [tpath=/] 2025-04-07T17:07:00.888Z [INF] curl.cpp:PreHeadRequest(2737): [tpath=/][sseckeypos=18446744073709551615] 2025-04-07T17:07:00.888Z [INF] curl_util.cpp:prepare_url(211): URL is https://s3-us-west-2.amazonaws.com/[bucket_name]/bootstrap/ 2025-04-07T17:07:00.888Z [INF] curl_util.cpp:prepare_url(244): URL changed is https://[bucket_name].s3-us-west-2.amazonaws.com/bootstrap/ 2025-04-07T17:07:00.888Z [DBG] curl.cpp:RequestPerform(1944): connecting to URL https://[bucket_name].s3-us-west-2.amazonaws.com/bootstrap/ 2025-04-07T17:07:00.888Z [INF] curl.cpp:insertV4Headers(2366): computing signature [HEAD] [/bootstrap/] [] [] 2025-04-07T17:07:00.888Z [INF] curl_util.cpp:url_to_host(266): url is https://s3-us-west-2.amazonaws.com 2025-04-07T17:07:00.958Z [INF] curl.cpp:RequestPerform(1982): HTTP response code 200 2025-04-07T17:07:00.958Z [INF] cache.cpp:AddStat(318): add stat cache entry[path=/] 2025-04-07T17:07:00.958Z [DBG] cache.cpp:GetStat(240): stat cache hit [path=/][time=310.062907248][hit count=0] 2025-04-07T17:07:00.958Z [CRT] s3fs.cpp:s3fs_check_service(4356): Remote mountpath /bootstrap not found, this may be resolved with the compat_dir option. 2025-04-07T17:07:00.958Z [ERR] s3fs.cpp:s3fs_exit_fuseloop(4049): Exiting FUSE event loop due to errors ``` ### Details about issue A recent commit has caused S3 mounts with prefixes to stop working. Reverting to commit `ad4646f` resolves the issue.
Author
Owner

@chengzhycn commented on GitHub (Jul 5, 2025):

I met the same problem with the version 1.94 which installed by apk add s3fs-fuse. But when I used the version 1.90 at the ubuntu, it worked well.

I compared the debug log between the two versions, noticed that version 1.90 sent HTTP GET request like that:

GET /<bucket-name>/

it received HTTP code 200.

But the version 1.94 sent HTTP GET:

GET /<bucket-name>/<prefix>

it received HTTP code 404 and mounted failed.

The behaviors obviously are not same. But I don't know what break changes made and why changed it between the two versions.

<!-- gh-comment-id:3038185131 --> @chengzhycn commented on GitHub (Jul 5, 2025): I met the same problem with the version 1.94 which installed by `apk add s3fs-fuse`. But when I used the version 1.90 at the ubuntu, it worked well. I compared the debug log between the two versions, noticed that version 1.90 sent HTTP GET request like that: ``` GET /<bucket-name>/ ``` it received HTTP code 200. But the version 1.94 sent HTTP GET: ``` GET /<bucket-name>/<prefix> ``` it received HTTP code 404 and mounted failed. The behaviors obviously are not same. But I don't know what break changes made and why changed it between the two versions.
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#1269
No description provided.