mirror of
https://github.com/s3fs-fuse/s3fs-fuse.git
synced 2026-04-25 05:16:00 +03:00
[GH-ISSUE #625] s3fs-fuse with GCS - chmod/chown of a dir causes chown: changing ownership of 'newdir': No such file or directory #357
Labels
No labels
bug
bug
dataloss
duplicate
enhancement
feature request
help wanted
invalid
need info
performance
pull-request
question
question
testing
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/s3fs-fuse#357
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @agmistry on GitHub (Jul 25, 2017).
Original GitHub issue: https://github.com/s3fs-fuse/s3fs-fuse/issues/625
Environment
s3fs --version
Amazon Simple Storage Service File System V1.82(commit:b1fe419) with OpenSSL
Copyright (C) 2010 Randy Rizun rrizun@gmail.com
Debian 9.0 - Google Compute Engine VM
Steps to recreate bug
/etc/fuse.conf has user_allow_other enabled
Mounting the GCS bucket
s3fs -o url=https://storage.googleapis.com -o sigv2 -o nomultipart -d -d -f -o f2 -o curldbg -o passwd_file=/etc/passwd-s3fs -o allow_other
As a Local User
cd
mkdir mytestdir
ls -ld mytestdir
###Verify that the directory was created with the proper ownership (i.e. the User)
As root
cd
mkdir myrootdir
chown myrootdir
chown: changing ownership of 'myrootdir': No such file or directory
Hopefully I've provided enough information to be able to triage this problem. FYI I have the same setup to an AWS S3 bucket which works fine. I also get the same problem doing chmod or even moving a directory onto the mount point.
I need to be able to create directories as root and change permissions because I'm using Cloud Storage to store home dirs of CHRooted SFTP accounts.
Thanks
Anant
Relevant output from curldbg
unique: 50, opcode: LOOKUP (1), nodeid: 1, insize: 50, pid: 871
LOOKUP /myrootdir
getattr /myrootdir
[INF] s3fs.cpp:s3fs_getattr(812): [path=/myrootdir]
[DBG] s3fs.cpp:check_parent_object_access(669): [path=/myrootdir]
[DBG] s3fs.cpp:check_object_access(563): [path=/]
[DBG] s3fs.cpp:get_object_attribute(416): [path=/]
[DBG] s3fs.cpp:check_object_access(563): [path=/myrootdir]
[DBG] s3fs.cpp:get_object_attribute(416): [path=/myrootdir]
[INF] curl.cpp:HeadRequest(2516): [tpath=/myrootdir]
[INF] curl.cpp:PreHeadRequest(2453): [tpath=/myrootdir][bpath=][save=][sseckeypos=-1]
[DBG] curl.cpp:GetHandler(283): Get handler from pool: 31
[INF] curl.cpp:prepare_url(4205): URL is https://storage.googleapis.com/ftptestmkl/myrootdir
[INF] curl.cpp:prepare_url(4237): URL changed is https://ftptestmkl.storage.googleapis.com/myrootdir
[DBG] curl.cpp:RequestPerform(1923): connecting to URL https://ftptestmkl.storage.googleapis.com/myrootdir
< HTTP/1.1 404 Not Found
< X-GUploader-UploadID: AEnB2UorJpbTC_iYDON7FMj7pekIype2Xq6OVBKQyXzN6aU62p4ojxwZh5UcS2RkWSiozRi4OMkP0TzLl7LFyj083bdmvo90jg
< Content-Type: application/xml; charset=UTF-8
< Content-Length: 127
< Date: Tue, 25 Jul 2017 20:18:42 GMT
< Expires: Tue, 25 Jul 2017 20:18:42 GMT
< Cache-Control: private, max-age=0
< Server: UploadServer
<
[INF] curl.cpp:RequestPerform(1962): HTTP response code 404 was returned, returning ENOENT
[DBG] curl.cpp:RequestPerform(1963): Body Text:
[DBG] curl.cpp:ReturnHandler(306): Return handler to pool: 31
[INF] curl.cpp:HeadRequest(2516): [tpath=/myrootdir/]
[INF] curl.cpp:PreHeadRequest(2453): [tpath=/myrootdir/][bpath=][save=][sseckeypos=-1]
[DBG] curl.cpp:GetHandler(283): Get handler from pool: 31
[INF] curl.cpp:prepare_url(4205): URL is https://storage.googleapis.com/ftptestmkl/myrootdir/
[INF] curl.cpp:prepare_url(4237): URL changed is https://ftptestmkl.storage.googleapis.com/myrootdir/
[DBG] curl.cpp:RequestPerform(1923): connecting to URL https://ftptestmkl.storage.googleapis.com/myrootdir/
< HTTP/1.1 404 Not Found
< X-GUploader-UploadID: AEnB2Uo1dfv6gS-0ucoZh4U59RC9VvmztkdL3_CSGNp1phewJHHRgMrr2RH8dNEsY6Ic3PYAlXglFdJiT-f1S0f08JYvh97l8A
< Content-Type: application/xml; charset=UTF-8
< Content-Length: 127
< Date: Tue, 25 Jul 2017 20:18:42 GMT
< Expires: Tue, 25 Jul 2017 20:18:42 GMT
< Cache-Control: private, max-age=0
< Server: UploadServer
<
[INF] curl.cpp:RequestPerform(1962): HTTP response code 404 was returned, returning ENOENT
[DBG] curl.cpp:RequestPerform(1963): Body Text:
[DBG] curl.cpp:ReturnHandler(306): Return handler to pool: 31
[INF] curl.cpp:HeadRequest(2516): [tpath=/myrootdir_$folder$]
[INF] curl.cpp:PreHeadRequest(2453): [tpath=/myrootdir_$folder$][bpath=][save=][sseckeypos=-1]
[DBG] curl.cpp:GetHandler(283): Get handler from pool: 31
[INF] curl.cpp:prepare_url(4205): URL is https://storage.googleapis.com/ftptestmkl/myrootdir_%24folder%24
[INF] curl.cpp:prepare_url(4237): URL changed is https://ftptestmkl.storage.googleapis.com/myrootdir_%24folder%24
[DBG] curl.cpp:RequestPerform(1923): connecting to URL https://ftptestmkl.storage.googleapis.com/myrootdir_%24folder%24
< HTTP/1.1 404 Not Found
< X-GUploader-UploadID: AEnB2UoFIho4HWx9-oex_W3oHRHeb1Us9BnevpVca7LjuaRw-EbKChiM2hyaxAo11WJhLiP7Abzacyhg8_2-prtDZDahgnhZiw
< Content-Type: application/xml; charset=UTF-8
< Content-Length: 127
< Date: Tue, 25 Jul 2017 20:18:42 GMT
< Expires: Tue, 25 Jul 2017 20:18:42 GMT
< Cache-Control: private, max-age=0
< Server: UploadServer
<
[INF] curl.cpp:RequestPerform(1962): HTTP response code 404 was returned, returning ENOENT
[DBG] curl.cpp:RequestPerform(1963): Body Text:
[DBG] curl.cpp:ReturnHandler(306): Return handler to pool: 31
[INF] s3fs.cpp:list_bucket(2466): [path=/myrootdir]
[INF] curl.cpp:ListBucketRequest(2960): [tpath=/myrootdir]
[DBG] curl.cpp:GetHandler(283): Get handler from pool: 31
[INF] curl.cpp:prepare_url(4205): URL is https://storage.googleapis.com/ftptestmkl?delimiter=/&max-keys=2&prefix=myrootdir/
[INF] curl.cpp:prepare_url(4237): URL changed is https://ftptestmkl.storage.googleapis.com?delimiter=/&max-keys=2&prefix=myrootdir/
[DBG] curl.cpp:RequestPerform(1923): connecting to URL https://ftptestmkl.storage.googleapis.com?delimiter=/&max-keys=2&prefix=myrootdir/
< HTTP/1.1 200 OK
< X-GUploader-UploadID: AEnB2UrK8KwOzKFLqyrHGZxQ-NJCBfpfuZCzElVg2NVCjvth5sDv6FYf7Tz5QuBRw5PFcwcT93KywMPPeMVHzerX4eTpNArKWA
< x-goog-metageneration: 1
< Content-Type: application/xml; charset=UTF-8
< Content-Length: 265
< Date: Tue, 25 Jul 2017 20:18:42 GMT
< Expires: Tue, 25 Jul 2017 20:18:42 GMT
< Cache-Control: private, max-age=0
< Server: UploadServer
<
[INF] curl.cpp:RequestPerform(1940): HTTP response code 200
[WAN] s3fs.cpp:append_objects_from_xml_ex(2564): contents_xp->nodesetval is empty.
[WAN] s3fs.cpp:append_objects_from_xml_ex(2564): contents_xp->nodesetval is empty.
[DBG] curl.cpp:ReturnHandler(306): Return handler to pool: 31
unique: 50, error: -2 (No such file or directory), outsize: 16
unique: 51, opcode: MKDIR (9), nodeid: 1, insize: 58, pid: 871
mkdir /myrootdir 0755 umask=0022
[INF] s3fs.cpp:s3fs_mkdir(1036): [path=/myrootdir][mode=0755]
[DBG] s3fs.cpp:check_parent_object_access(669): [path=/myrootdir]
[DBG] s3fs.cpp:check_object_access(563): [path=/]
[DBG] s3fs.cpp:get_object_attribute(416): [path=/]
[DBG] s3fs.cpp:check_object_access(563): [path=/]
[DBG] s3fs.cpp:get_object_attribute(416): [path=/]
[DBG] s3fs.cpp:check_object_access(563): [path=/myrootdir]
[DBG] s3fs.cpp:get_object_attribute(416): [path=/myrootdir]
[INF] curl.cpp:HeadRequest(2516): [tpath=/myrootdir]
[INF] curl.cpp:PreHeadRequest(2453): [tpath=/myrootdir][bpath=][save=][sseckeypos=-1]
[DBG] curl.cpp:GetHandler(283): Get handler from pool: 31
[INF] curl.cpp:prepare_url(4205): URL is https://storage.googleapis.com/ftptestmkl/myrootdir
[INF] curl.cpp:prepare_url(4237): URL changed is https://ftptestmkl.storage.googleapis.com/myrootdir
[DBG] curl.cpp:RequestPerform(1923): connecting to URL https://ftptestmkl.storage.googleapis.com/myrootdir
< HTTP/1.1 404 Not Found
< X-GUploader-UploadID: AEnB2UpJIKzBZKt1hFyexI6wD0bEAdeIDk19USbvntfqM8SFJAVl9HAwgZYyjma_0AtstYqOylubO-tDiZsL8LvKIvquvdsqGQ
< Content-Type: application/xml; charset=UTF-8
< Content-Length: 127
< Date: Tue, 25 Jul 2017 20:18:42 GMT
< Expires: Tue, 25 Jul 2017 20:18:42 GMT
< Cache-Control: private, max-age=0
< Server: UploadServer
<
[INF] curl.cpp:RequestPerform(1962): HTTP response code 404 was returned, returning ENOENT
[DBG] curl.cpp:RequestPerform(1963): Body Text:
[DBG] curl.cpp:ReturnHandler(306): Return handler to pool: 31
[INF] curl.cpp:HeadRequest(2516): [tpath=/myrootdir/]
[INF] curl.cpp:PreHeadRequest(2453): [tpath=/myrootdir/][bpath=][save=][sseckeypos=-1]
[DBG] curl.cpp:GetHandler(283): Get handler from pool: 31
[INF] curl.cpp:prepare_url(4205): URL is https://storage.googleapis.com/ftptestmkl/myrootdir/
[INF] curl.cpp:prepare_url(4237): URL changed is https://ftptestmkl.storage.googleapis.com/myrootdir/
[DBG] curl.cpp:RequestPerform(1923): connecting to URL https://ftptestmkl.storage.googleapis.com/myrootdir/
< HTTP/1.1 404 Not Found
< X-GUploader-UploadID: AEnB2Ur42LwA7QvhpHBW9D-u_9iuJ3XWVUzG7YHS6IoA1OH5dy3SJPzaguhLbYesrRer-WPWFZuu69G8S17JRszACK2sznDP2A
< Content-Type: application/xml; charset=UTF-8
< Content-Length: 127
< Date: Tue, 25 Jul 2017 20:18:42 GMT
< Expires: Tue, 25 Jul 2017 20:18:42 GMT
< Cache-Control: private, max-age=0
< Server: UploadServer
<
[INF] curl.cpp:RequestPerform(1962): HTTP response code 404 was returned, returning ENOENT
[DBG] curl.cpp:RequestPerform(1963): Body Text:
[DBG] curl.cpp:ReturnHandler(306): Return handler to pool: 31
[INF] curl.cpp:HeadRequest(2516): [tpath=/myrootdir_$folder$]
[INF] curl.cpp:PreHeadRequest(2453): [tpath=/myrootdir_$folder$][bpath=][save=][sseckeypos=-1]
[DBG] curl.cpp:GetHandler(283): Get handler from pool: 31
[INF] curl.cpp:prepare_url(4205): URL is https://storage.googleapis.com/ftptestmkl/myrootdir_%24folder%24
[INF] curl.cpp:prepare_url(4237): URL changed is https://ftptestmkl.storage.googleapis.com/myrootdir_%24folder%24
[DBG] curl.cpp:RequestPerform(1923): connecting to URL https://ftptestmkl.storage.googleapis.com/myrootdir_%24folder%24
< HTTP/1.1 404 Not Found
< X-GUploader-UploadID: AEnB2UoyBUSFOI2BElQ_-O0IydwqHevVe3oWvIqUpN6oeSGQvtC6nP7zh-scliWuUJIOGDN9x7HUmNkg7qHjdvNEybnxMudAdA
< Content-Type: application/xml; charset=UTF-8
< Content-Length: 127
< Date: Tue, 25 Jul 2017 20:18:43 GMT
< Expires: Tue, 25 Jul 2017 20:18:43 GMT
< Cache-Control: private, max-age=0
< Server: UploadServer
<
[INF] curl.cpp:RequestPerform(1962): HTTP response code 404 was returned, returning ENOENT
[DBG] curl.cpp:RequestPerform(1963): Body Text:
[DBG] curl.cpp:ReturnHandler(306): Return handler to pool: 31
[INF] s3fs.cpp:list_bucket(2466): [path=/myrootdir]
[INF] curl.cpp:ListBucketRequest(2960): [tpath=/myrootdir]
[DBG] curl.cpp:GetHandler(283): Get handler from pool: 31
[INF] curl.cpp:prepare_url(4205): URL is https://storage.googleapis.com/ftptestmkl?delimiter=/&max-keys=2&prefix=myrootdir/
[INF] curl.cpp:prepare_url(4237): URL changed is https://ftptestmkl.storage.googleapis.com?delimiter=/&max-keys=2&prefix=myrootdir/
[DBG] curl.cpp:RequestPerform(1923): connecting to URL https://ftptestmkl.storage.googleapis.com?delimiter=/&max-keys=2&prefix=myrootdir/
< HTTP/1.1 200 OK
< X-GUploader-UploadID: AEnB2UqknXDCGqRUf7yZ0TuV-AjB30qqIAuA3v1stb2FQGt2z3KHKnslNK7JdUPcVI1W4L0loH_4IbN4ZjyT7QbzGcmsBCE9kQ
< x-goog-metageneration: 1
< Content-Type: application/xml; charset=UTF-8
< Content-Length: 265
< Date: Tue, 25 Jul 2017 20:18:43 GMT
< Expires: Tue, 25 Jul 2017 20:18:43 GMT
< Cache-Control: private, max-age=0
< Server: UploadServer
<
[INF] curl.cpp:RequestPerform(1940): HTTP response code 200
[WAN] s3fs.cpp:append_objects_from_xml_ex(2564): contents_xp->nodesetval is empty.
[WAN] s3fs.cpp:append_objects_from_xml_ex(2564): contents_xp->nodesetval is empty.
[DBG] curl.cpp:ReturnHandler(306): Return handler to pool: 31
[INF] s3fs.cpp:create_directory_object(1010): [path=/myrootdir][mode=0755][time=1501013923][uid=0][gid=0]
[INF] curl.cpp:PutRequest(2693): [tpath=/myrootdir/]
[INF] curl.cpp:PutRequest(2710): create zero byte file object.
[DBG] curl.cpp:GetHandler(283): Get handler from pool: 31
[INF] curl.cpp:prepare_url(4205): URL is https://storage.googleapis.com/ftptestmkl/myrootdir/
[INF] curl.cpp:prepare_url(4237): URL changed is https://ftptestmkl.storage.googleapis.com/myrootdir/
[INF] curl.cpp:PutRequest(2804): uploading... [path=/myrootdir/][fd=-1][size=0]
[DBG] curl.cpp:RequestPerform(1923): connecting to URL https://ftptestmkl.storage.googleapis.com/myrootdir/
< HTTP/1.1 200 OK
< X-GUploader-UploadID: AEnB2UrHQ64qIKB_bzXg0ayqhkdACoyV7dcAyMPE4b88OwDlaZVzpmWWY-3UOSwBkCYGcnZAB3ABl2dTntCZXH2jAp0XU7Bg1Q
< ETag: "d41d8cd98f00b204e9800998ecf8427e"
< x-goog-generation: 1501013923331885
< x-goog-metageneration: 1
< x-goog-hash: crc32c=AAAAAA==
< x-goog-hash: md5=1B2M2Y8AsgTpgAmY7PhCfg==
< x-goog-stored-content-length: 0
< x-goog-stored-content-encoding: identity
< Vary: Origin
< Content-Length: 0
< Date: Tue, 25 Jul 2017 20:18:43 GMT
< Server: UploadServer
< Content-Type: text/html; charset=UTF-8
<
[INF] curl.cpp:RequestPerform(1940): HTTP response code 200
[DBG] curl.cpp:ReturnHandler(306): Return handler to pool: 31
[INF] cache.cpp:DelStat(565): delete stat cache entry[path=/myrootdir]
getattr /myrootdir
[INF] s3fs.cpp:s3fs_getattr(812): [path=/myrootdir]
[DBG] s3fs.cpp:check_parent_object_access(669): [path=/myrootdir]
[DBG] s3fs.cpp:check_object_access(563): [path=/]
[DBG] s3fs.cpp:get_object_attribute(416): [path=/]
[DBG] s3fs.cpp:check_object_access(563): [path=/myrootdir]
[DBG] s3fs.cpp:get_object_attribute(416): [path=/myrootdir]
[INF] curl.cpp:HeadRequest(2516): [tpath=/myrootdir]
[INF] curl.cpp:PreHeadRequest(2453): [tpath=/myrootdir][bpath=][save=][sseckeypos=-1]
[DBG] curl.cpp:GetHandler(283): Get handler from pool: 31
[INF] curl.cpp:prepare_url(4205): URL is https://storage.googleapis.com/ftptestmkl/myrootdir
[INF] curl.cpp:prepare_url(4237): URL changed is https://ftptestmkl.storage.googleapis.com/myrootdir
[DBG] curl.cpp:RequestPerform(1923): connecting to URL https://ftptestmkl.storage.googleapis.com/myrootdir
< HTTP/1.1 404 Not Found
< X-GUploader-UploadID: AEnB2UpHz9HZ79ON6L1ggfkk7CmRMM3tR9cSAas5Mz0Xqf7lCAQFcg7niuMlN5Sdci2QTQbFnGJT1BqwGwyh_oSJ8t2G5ZLwlw
< Content-Type: application/xml; charset=UTF-8
< Content-Length: 127
< Date: Tue, 25 Jul 2017 20:18:43 GMT
< Expires: Tue, 25 Jul 2017 20:18:43 GMT
< Cache-Control: private, max-age=0
< Server: UploadServer
<
[INF] curl.cpp:RequestPerform(1962): HTTP response code 404 was returned, returning ENOENT
[DBG] curl.cpp:RequestPerform(1963): Body Text:
[DBG] curl.cpp:ReturnHandler(306): Return handler to pool: 31
[INF] curl.cpp:HeadRequest(2516): [tpath=/myrootdir/]
[INF] curl.cpp:PreHeadRequest(2453): [tpath=/myrootdir/][bpath=][save=][sseckeypos=-1]
[DBG] curl.cpp:GetHandler(283): Get handler from pool: 31
[INF] curl.cpp:prepare_url(4205): URL is https://storage.googleapis.com/ftptestmkl/myrootdir/
[INF] curl.cpp:prepare_url(4237): URL changed is https://ftptestmkl.storage.googleapis.com/myrootdir/
[DBG] curl.cpp:RequestPerform(1923): connecting to URL https://ftptestmkl.storage.googleapis.com/myrootdir/
< HTTP/1.1 200 OK
< X-GUploader-UploadID: AEnB2UquZ5mG6FHMnDuiH0wHxqm_i3kGZM2ZtQuFYeNbkojwpgw0BRvYh5rwIaBK0sZVNGRR-_UlKgBX1oJmG6yvVd9tHEk-gw
< Expires: Tue, 25 Jul 2017 20:18:43 GMT
< Date: Tue, 25 Jul 2017 20:18:43 GMT
< Cache-Control: private, max-age=0
< Last-Modified: Tue, 25 Jul 2017 20:18:43 GMT
< ETag: "d41d8cd98f00b204e9800998ecf8427e"
< x-amz-meta-gid: 0
< x-amz-meta-mode: 493
< x-amz-meta-mtime: 1501013923
< x-amz-meta-uid: 0
< Content-Type: application/x-directory
< x-goog-hash: crc32c=AAAAAA==
< x-goog-hash: md5=1B2M2Y8AsgTpgAmY7PhCfg==
< x-goog-storage-class: STANDARD
< Accept-Ranges: bytes
< Content-Length: 0
< Server: UploadServer
<
[INF] curl.cpp:RequestPerform(1940): HTTP response code 200
[DBG] curl.cpp:ReturnHandler(306): Return handler to pool: 31
[INF] cache.cpp:AddStat(356): add stat cache entry[path=/myrootdir/]
[DBG] cache.cpp:GetStat(276): stat cache hit [path=/myrootdir/][time=1507.506538744][hit count=0]
[DBG] fdcache.cpp:ExistOpen(2082): [path=/myrootdir][fd=-1][ignore_existfd=false]
[DBG] fdcache.cpp:Open(2016): [path=/myrootdir][size=-1][time=-1]
[DBG] s3fs.cpp:s3fs_getattr(836): [path=/myrootdir] uid=0, gid=0, mode=40755
NODEID: 11
unique: 51, success, outsize: 144
unique: 52, opcode: OPENDIR (27), nodeid: 1, insize: 48, pid: 842
opendir flags: 0x18800 /
[INF] s3fs.cpp:s3fs_opendir(2270): [path=/][flags=100352]
[DBG] s3fs.cpp:check_object_access(563): [path=/]
[DBG] s3fs.cpp:get_object_attribute(416): [path=/]
[DBG] s3fs.cpp:check_parent_object_access(669): [path=/]
opendir[0] flags: 0x18800 /
unique: 52, success, outsize: 32
unique: 53, opcode: GETATTR (3), nodeid: 1, insize: 56, pid: 842
getattr /
[INF] s3fs.cpp:s3fs_getattr(812): [path=/]
[DBG] s3fs.cpp:check_parent_object_access(669): [path=/]
[DBG] s3fs.cpp:check_object_access(563): [path=/]
[DBG] s3fs.cpp:get_object_attribute(416): [path=/]
[DBG] fdcache.cpp:ExistOpen(2082): [path=/][fd=-1][ignore_existfd=false]
[DBG] fdcache.cpp:Open(2016): [path=/][size=-1][time=-1]
[DBG] s3fs.cpp:s3fs_getattr(836): [path=/] uid=0, gid=0, mode=40777
unique: 53, success, outsize: 120
unique: 54, opcode: READDIR (28), nodeid: 1, insize: 80, pid: 842
readdir[0] from 0
[INF] s3fs.cpp:s3fs_readdir(2421): [path=/]
[DBG] s3fs.cpp:check_object_access(563): [path=/]
[DBG] s3fs.cpp:get_object_attribute(416): [path=/]
[INF] s3fs.cpp:list_bucket(2466): [path=/]
[INF] curl.cpp:ListBucketRequest(2960): [tpath=/]
[DBG] curl.cpp:GetHandler(283): Get handler from pool: 31
[INF] curl.cpp:prepare_url(4205): URL is https://storage.googleapis.com/ftptestmkl?delimiter=/&max-keys=1000&prefix=
[INF] curl.cpp:prepare_url(4237): URL changed is https://ftptestmkl.storage.googleapis.com?delimiter=/&max-keys=1000&prefix=
[DBG] curl.cpp:RequestPerform(1923): connecting to URL https://ftptestmkl.storage.googleapis.com?delimiter=/&max-keys=1000&prefix=
< HTTP/1.1 200 OK
< X-GUploader-UploadID: AEnB2UrQUfGaOppIpQDR___q0YVxDPLGfi2tV3z32nOSqXnHIFt7Su7CCLBObovv7PJ9_mAl8KGNKnYOwtZXLap0uYXIZ-BuRg
< x-goog-metageneration: 1
< Content-Type: application/xml; charset=UTF-8
< Content-Length: 1551
< Date: Tue, 25 Jul 2017 20:18:59 GMT
< Expires: Tue, 25 Jul 2017 20:18:59 GMT
< Cache-Control: private, max-age=0
< Server: UploadServer
<
[INF] curl.cpp:RequestPerform(1940): HTTP response code 200
[DBG] curl.cpp:ReturnHandler(306): Return handler to pool: 31
[INF] s3fs.cpp:readdir_multi_head(2335): [path=/][list=0]
[DBG] cache.cpp:GetStat(276): stat cache hit [path=/ftpaccess1/][time=1016.294870907][hit count=10]
[DBG] cache.cpp:GetStat(276): stat cache hit [path=/hello][time=1016.294870907][hit count=10]
[DBG] cache.cpp:GetStat(276): stat cache hit [path=/mydir/][time=1016.294870907][hit count=10]
[DBG] cache.cpp:GetStat(276): stat cache hit [path=/myfile][time=1016.294870907][hit count=10]
[DBG] cache.cpp:GetStat(276): stat cache hit [path=/myrootdir/][time=1507.506538744][hit count=1]
[DBG] cache.cpp:GetStat(276): stat cache hit [path=/newdir/][time=1016.294870907][hit count=10]
[DBG] cache.cpp:GetStat(276): stat cache hit [path=/newtest/][time=1028.202861027][hit count=11]
[DBG] cache.cpp:GetStat(276): stat cache hit [path=/notme][time=1016.294870907][hit count=10]
[DBG] cache.cpp:GetStat(276): stat cache hit [path=/testnew/][time=1016.294870907][hit count=10]
[INF] curl.cpp:Request(3970): [count=0]
[DBG] cache.cpp:GetStat(276): stat cache hit [path=/ftpaccess1/][time=1016.294870907][hit count=11]
[DBG] cache.cpp:GetStat(276): stat cache hit [path=/hello][time=1016.294870907][hit count=11]
[DBG] cache.cpp:GetStat(276): stat cache hit [path=/mydir/][time=1016.294870907][hit count=11]
[DBG] cache.cpp:GetStat(276): stat cache hit [path=/myfile][time=1016.294870907][hit count=11]
[DBG] cache.cpp:GetStat(276): stat cache hit [path=/myrootdir/][time=1507.506538744][hit count=2]
[DBG] cache.cpp:GetStat(276): stat cache hit [path=/newdir/][time=1016.294870907][hit count=11]
[DBG] cache.cpp:GetStat(276): stat cache hit [path=/newtest/][time=1028.202861027][hit count=12]
[DBG] cache.cpp:GetStat(276): stat cache hit [path=/notme][time=1016.294870907][hit count=11]
[DBG] cache.cpp:GetStat(276): stat cache hit [path=/testnew/][time=1016.294870907][hit count=11]
unique: 54, success, outsize: 384
unique: 55, opcode: READDIR (28), nodeid: 1, insize: 80, pid: 842
unique: 55, success, outsize: 16
unique: 56, opcode: RELEASEDIR (29), nodeid: 1, insize: 64, pid: 0
unique: 56, success, outsize: 16
unique: 57, opcode: GETATTR (3), nodeid: 1, insize: 56, pid: 842
getattr /
[INF] s3fs.cpp:s3fs_getattr(812): [path=/]
[DBG] s3fs.cpp:check_parent_object_access(669): [path=/]
[DBG] s3fs.cpp:check_object_access(563): [path=/]
[DBG] s3fs.cpp:get_object_attribute(416): [path=/]
[DBG] fdcache.cpp:ExistOpen(2082): [path=/][fd=-1][ignore_existfd=false]
[DBG] fdcache.cpp:Open(2016): [path=/][size=-1][time=-1]
[DBG] s3fs.cpp:s3fs_getattr(836): [path=/] uid=0, gid=0, mode=40777
unique: 57, success, outsize: 120
unique: 58, opcode: LOOKUP (1), nodeid: 1, insize: 50, pid: 842
LOOKUP /myrootdir
getattr /myrootdir
[INF] s3fs.cpp:s3fs_getattr(812): [path=/myrootdir]
[DBG] s3fs.cpp:check_parent_object_access(669): [path=/myrootdir]
[DBG] s3fs.cpp:check_object_access(563): [path=/]
[DBG] s3fs.cpp:get_object_attribute(416): [path=/]
[DBG] s3fs.cpp:check_object_access(563): [path=/myrootdir]
[DBG] s3fs.cpp:get_object_attribute(416): [path=/myrootdir]
[DBG] cache.cpp:GetStat(276): stat cache hit [path=/myrootdir/][time=1507.506538744][hit count=3]
[DBG] fdcache.cpp:ExistOpen(2082): [path=/myrootdir][fd=-1][ignore_existfd=false]
[DBG] fdcache.cpp:Open(2016): [path=/myrootdir][size=-1][time=-1]
[DBG] s3fs.cpp:s3fs_getattr(836): [path=/myrootdir] uid=0, gid=0, mode=40755
NODEID: 11
unique: 58, success, outsize: 144
unique: 59, opcode: LOOKUP (1), nodeid: 1, insize: 50, pid: 873
LOOKUP /myrootdir
getattr /myrootdir
[INF] s3fs.cpp:s3fs_getattr(812): [path=/myrootdir]
[DBG] s3fs.cpp:check_parent_object_access(669): [path=/myrootdir]
[DBG] s3fs.cpp:check_object_access(563): [path=/]
[DBG] s3fs.cpp:get_object_attribute(416): [path=/]
[DBG] s3fs.cpp:check_object_access(563): [path=/myrootdir]
[DBG] s3fs.cpp:get_object_attribute(416): [path=/myrootdir]
[DBG] cache.cpp:GetStat(276): stat cache hit [path=/myrootdir/][time=1507.506538744][hit count=4]
[DBG] fdcache.cpp:ExistOpen(2082): [path=/myrootdir][fd=-1][ignore_existfd=false]
[DBG] fdcache.cpp:Open(2016): [path=/myrootdir][size=-1][time=-1]
[DBG] s3fs.cpp:s3fs_getattr(836): [path=/myrootdir] uid=0, gid=0, mode=40755
NODEID: 11
unique: 59, success, outsize: 144
unique: 60, opcode: SETATTR (4), nodeid: 11, insize: 128, pid: 873
chown /myrootdir 1000 4294967295
[INF] s3fs.cpp:s3fs_chown(1678): [path=/myrootdir][uid=1000][gid=4294967295]
[DBG] s3fs.cpp:check_parent_object_access(669): [path=/myrootdir]
[DBG] s3fs.cpp:check_object_access(563): [path=/]
[DBG] s3fs.cpp:get_object_attribute(416): [path=/]
[DBG] s3fs.cpp:check_object_owner(637): [path=/myrootdir]
[DBG] s3fs.cpp:get_object_attribute(416): [path=/myrootdir]
[DBG] cache.cpp:GetStat(276): stat cache hit [path=/myrootdir/][time=1507.506538744][hit count=5]
[DBG] s3fs.cpp:get_object_attribute(416): [path=/myrootdir/]
[DBG] cache.cpp:GetStat(276): stat cache hit [path=/myrootdir/][time=1507.506538744][hit count=6]
[INF] curl.cpp:HeadRequest(2516): [tpath=/myrootdir_$folder$]
[INF] curl.cpp:PreHeadRequest(2453): [tpath=/myrootdir_$folder$][bpath=][save=][sseckeypos=-1]
[DBG] curl.cpp:GetHandler(283): Get handler from pool: 31
[INF] curl.cpp:prepare_url(4205): URL is https://storage.googleapis.com/ftptestmkl/myrootdir_%24folder%24
[INF] curl.cpp:prepare_url(4237): URL changed is https://ftptestmkl.storage.googleapis.com/myrootdir_%24folder%24
[DBG] curl.cpp:RequestPerform(1923): connecting to URL https://ftptestmkl.storage.googleapis.com/myrootdir_%24folder%24
< HTTP/1.1 404 Not Found
< X-GUploader-UploadID: AEnB2UqCbCna52i9SiIJ0iV8bULV4XoEd9hDA8GtoMCgtky_BclVvTXbUpBNqKS1woZSTigOlV0ciR7VwnDbJAMGrbi_hhtcsg
< Content-Type: application/xml; charset=UTF-8
< Content-Length: 127
< Date: Tue, 25 Jul 2017 20:19:04 GMT
< Expires: Tue, 25 Jul 2017 20:19:04 GMT
< Cache-Control: private, max-age=0
< Server: UploadServer
<
[INF] curl.cpp:RequestPerform(1962): HTTP response code 404 was returned, returning ENOENT
[DBG] curl.cpp:RequestPerform(1963): Body Text:
[DBG] curl.cpp:ReturnHandler(306): Return handler to pool: 31
[INF] curl.cpp:DeleteRequest(2290): [tpath=/myrootdir]
[DBG] curl.cpp:GetHandler(283): Get handler from pool: 31
[INF] curl.cpp:prepare_url(4205): URL is https://storage.googleapis.com/ftptestmkl/myrootdir
[INF] curl.cpp:prepare_url(4237): URL changed is https://ftptestmkl.storage.googleapis.com/myrootdir
[DBG] curl.cpp:RequestPerform(1923): connecting to URL https://ftptestmkl.storage.googleapis.com/myrootdir
< HTTP/1.1 404 Not Found
< X-GUploader-UploadID: AEnB2UrB8nPituMR72yv9a5ynZiDMS-EhM9DmeYmevyLvRwTgDax9XO5gPfeV-OAEP5t-b9ZoBXuRBKtvcGuHLUKyg2AF-tckQ
< Content-Type: application/xml; charset=UTF-8
< Content-Length: 127
< Vary: Origin
< Date: Tue, 25 Jul 2017 20:19:04 GMT
< Expires: Tue, 25 Jul 2017 20:19:04 GMT
< Cache-Control: private, max-age=0
< Server: UploadServer
<
NoSuchKeyThe specified key does not exist.[INF] curl.cpp:RequestPerform(1962): HTTP response code 404 was returned, returning ENOENT[DBG] curl.cpp:RequestPerform(1963): Body Text:
[DBG] curl.cpp:ReturnHandler(306): Return handler to pool: 31
unique: 60, error: -2 (No such file or directory), outsize: 16
@tlevi commented on GitHub (Oct 14, 2017):
I am having the same problem, and trying to identify the cause. Interesting code in s3fs_chown, around about line 1550:
` if(S_ISDIR(stbuf.st_mode) && IS_REPLACEDIR(nDirType)){
// Should rebuild directory object(except new type)
// Need to remove old dir("dir" etc) and make new dir("dir/")
`
I've had a bit to drink, but it seems this shouldn't return with a failure when failing to delete "old style" objects that are not expected anyway.
Commenting out the return and rebuilding solves the issue in my case, and chmod/chown appear to work as expected.
I think this misbehavior can be for one of two reasons 1) nDirType is previously set wrong or 2) google responds differently to deletions of non-existant objects.
Either way, right now I'm not sure why the return code of the delete is important. Maybe it is not.
@gaul commented on GitHub (Jun 23, 2020):
Can anyone reproduce this with the latest 1.86? It includes fixes for these symptoms.
@gaul commented on GitHub (Oct 10, 2020):
Please reopen if symptoms persist.