[GH-ISSUE #625] s3fs-fuse with GCS - chmod/chown of a dir causes chown: changing ownership of 'newdir': No such file or directory #357

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

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

  • Found bundle for host ftptestmkl.storage.googleapis.com: 0x7f2c68175b90 [can pipeline]
  • Re-using existing connection! (#1) with host ftptestmkl.storage.googleapis.com
  • Connected to ftptestmkl.storage.googleapis.com (74.125.134.128) port 443 (#1)

HEAD /myrootdir HTTP/1.1
Host: ftptestmkl.storage.googleapis.com
User-Agent: s3fs/1.82 (commit hash b1fe419; OpenSSL)
Accept: /
Authorization: AWS GOOGAX**************:**************************
Date: Tue, 25 Jul 2017 20:18:42 GMT

< 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
<

  • Curl_http_done: called premature == 0
  • Connection #1 to host ftptestmkl.storage.googleapis.com left intact
    [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/
  • Found bundle for host ftptestmkl.storage.googleapis.com: 0x7f2c68175b90 [can pipeline]
  • Re-using existing connection! (#1) with host ftptestmkl.storage.googleapis.com
  • Connected to ftptestmkl.storage.googleapis.com (74.125.134.128) port 443 (#1)

HEAD /myrootdir/ HTTP/1.1
Host: ftptestmkl.storage.googleapis.com
User-Agent: s3fs/1.82 (commit hash b1fe419; OpenSSL)
Accept: /
Authorization: AWS GOOGAX**************:**************************
Date: Tue, 25 Jul 2017 20:18:42 GMT

< 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
<

  • Curl_http_done: called premature == 0
  • Connection #1 to host ftptestmkl.storage.googleapis.com left intact
    [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
  • Found bundle for host ftptestmkl.storage.googleapis.com: 0x7f2c68175b90 [can pipeline]
  • Re-using existing connection! (#1) with host ftptestmkl.storage.googleapis.com
  • Connected to ftptestmkl.storage.googleapis.com (74.125.134.128) port 443 (#1)

HEAD /myrootdir_%24folder%24 HTTP/1.1
Host: ftptestmkl.storage.googleapis.com
User-Agent: s3fs/1.82 (commit hash b1fe419; OpenSSL)
Accept: /
Authorization: AWS GOOGAX**************:**************************
Date: Tue, 25 Jul 2017 20:18:42 GMT

< 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
<

GET /?delimiter=/&max-keys=2&prefix=myrootdir/ HTTP/1.1
Host: ftptestmkl.storage.googleapis.com
User-Agent: s3fs/1.82 (commit hash b1fe419; OpenSSL)
Accept: /
Authorization: AWS GOOGAX**************:**************************
Date: Tue, 25 Jul 2017 20:18:42 GMT

< 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
<

  • Curl_http_done: called premature == 0
  • Connection #1 to host ftptestmkl.storage.googleapis.com left intact
    [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
  • Found bundle for host ftptestmkl.storage.googleapis.com: 0x7f2c68175b90 [can pipeline]
  • Re-using existing connection! (#1) with host ftptestmkl.storage.googleapis.com
  • Connected to ftptestmkl.storage.googleapis.com (74.125.134.128) port 443 (#1)

HEAD /myrootdir HTTP/1.1
Host: ftptestmkl.storage.googleapis.com
User-Agent: s3fs/1.82 (commit hash b1fe419; OpenSSL)
Accept: /
Authorization: AWS GOOGAX**************:**************************
Date: Tue, 25 Jul 2017 20:18:42 GMT

< 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
<

  • Curl_http_done: called premature == 0
  • Connection #1 to host ftptestmkl.storage.googleapis.com left intact
    [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/
  • Found bundle for host ftptestmkl.storage.googleapis.com: 0x7f2c68175b90 [can pipeline]
  • Re-using existing connection! (#1) with host ftptestmkl.storage.googleapis.com
  • Connected to ftptestmkl.storage.googleapis.com (74.125.134.128) port 443 (#1)

HEAD /myrootdir/ HTTP/1.1
Host: ftptestmkl.storage.googleapis.com
User-Agent: s3fs/1.82 (commit hash b1fe419; OpenSSL)
Accept: /
Authorization: AWS GOOGAX**************:**************************
Date: Tue, 25 Jul 2017 20:18:42 GMT

< 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
<

  • Curl_http_done: called premature == 0
  • Connection #1 to host ftptestmkl.storage.googleapis.com left intact
    [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
  • Found bundle for host ftptestmkl.storage.googleapis.com: 0x7f2c68175b90 [can pipeline]
  • Re-using existing connection! (#1) with host ftptestmkl.storage.googleapis.com
  • Connected to ftptestmkl.storage.googleapis.com (74.125.134.128) port 443 (#1)

HEAD /myrootdir_%24folder%24 HTTP/1.1
Host: ftptestmkl.storage.googleapis.com
User-Agent: s3fs/1.82 (commit hash b1fe419; OpenSSL)
Accept: /
Authorization: AWS GOOGAX**************:**************************
Date: Tue, 25 Jul 2017 20:18:42 GMT

< 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
<

GET /?delimiter=/&max-keys=2&prefix=myrootdir/ HTTP/1.1
Host: ftptestmkl.storage.googleapis.com
User-Agent: s3fs/1.82 (commit hash b1fe419; OpenSSL)
Accept: /
Authorization: AWS GOOGAX**************:**************************
Date: Tue, 25 Jul 2017 20:18:43 GMT

< 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
<

  • Curl_http_done: called premature == 0
  • Connection #1 to host ftptestmkl.storage.googleapis.com left intact
    [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/
  • Found bundle for host ftptestmkl.storage.googleapis.com: 0x7f2c68175b90 [can pipeline]
  • Re-using existing connection! (#1) with host ftptestmkl.storage.googleapis.com
  • Connected to ftptestmkl.storage.googleapis.com (74.125.134.128) port 443 (#1)

PUT /myrootdir/ HTTP/1.1
Host: ftptestmkl.storage.googleapis.com
User-Agent: s3fs/1.82 (commit hash b1fe419; OpenSSL)
Accept: /
Authorization: AWS GOOGAX**************:**************************
Content-Type: application/x-directory
Date: Tue, 25 Jul 2017 20:18:43 GMT
x-amz-acl: private
x-amz-meta-gid: 0
x-amz-meta-mode: 493
x-amz-meta-mtime: 1501013923
x-amz-meta-uid: 0
Content-Length: 0

< 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
<

  • Curl_http_done: called premature == 0
  • Connection #1 to host ftptestmkl.storage.googleapis.com left intact
    [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
  • Found bundle for host ftptestmkl.storage.googleapis.com: 0x7f2c68175b90 [can pipeline]
  • Re-using existing connection! (#1) with host ftptestmkl.storage.googleapis.com
  • Connected to ftptestmkl.storage.googleapis.com (74.125.134.128) port 443 (#1)

HEAD /myrootdir HTTP/1.1
Host: ftptestmkl.storage.googleapis.com
User-Agent: s3fs/1.82 (commit hash b1fe419; OpenSSL)
Accept: /
Authorization: AWS GOOGAX**************:**************************
Date: Tue, 25 Jul 2017 20:18:43 GMT

< 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
<

  • Curl_http_done: called premature == 0
  • Connection #1 to host ftptestmkl.storage.googleapis.com left intact
    [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/
  • Found bundle for host ftptestmkl.storage.googleapis.com: 0x7f2c68175b90 [can pipeline]
  • Re-using existing connection! (#1) with host ftptestmkl.storage.googleapis.com
  • Connected to ftptestmkl.storage.googleapis.com (74.125.134.128) port 443 (#1)

HEAD /myrootdir/ HTTP/1.1
Host: ftptestmkl.storage.googleapis.com
User-Agent: s3fs/1.82 (commit hash b1fe419; OpenSSL)
Accept: /
Authorization: AWS GOOGAX**************:**************************
Date: Tue, 25 Jul 2017 20:18:43 GMT

< 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
<

  • Curl_http_done: called premature == 0
  • Connection #1 to host ftptestmkl.storage.googleapis.com left intact
    [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=
  • Rebuilt URL to: https://ftptestmkl.storage.googleapis.com/?delimiter=/&max-keys=1000&prefix=
  • Found bundle for host ftptestmkl.storage.googleapis.com: 0x7f2c68175b90 [can pipeline]
  • Re-using existing connection! (#1) with host ftptestmkl.storage.googleapis.com
  • Connected to ftptestmkl.storage.googleapis.com (74.125.134.128) port 443 (#1)

GET /?delimiter=/&max-keys=1000&prefix= HTTP/1.1
Host: ftptestmkl.storage.googleapis.com
User-Agent: s3fs/1.82 (commit hash b1fe419; OpenSSL)
Accept: /
Authorization: AWS GOOGAX**************:**************************
Date: Tue, 25 Jul 2017 20:18:59 GMT

< 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
<

  • Curl_http_done: called premature == 0
  • Connection #1 to host ftptestmkl.storage.googleapis.com left intact
    [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
  • Found bundle for host ftptestmkl.storage.googleapis.com: 0x7f2c68175b90 [can pipeline]
  • Re-using existing connection! (#1) with host ftptestmkl.storage.googleapis.com
  • Connected to ftptestmkl.storage.googleapis.com (74.125.134.128) port 443 (#1)

HEAD /myrootdir_%24folder%24 HTTP/1.1
Host: ftptestmkl.storage.googleapis.com
User-Agent: s3fs/1.82 (commit hash b1fe419; OpenSSL)
Accept: /
Authorization: AWS GOOGAX**************:**************************
Date: Tue, 25 Jul 2017 20:19:04 GMT

< 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
<

  • Curl_http_done: called premature == 0
  • Connection #1 to host ftptestmkl.storage.googleapis.com left intact
    [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
  • Found bundle for host ftptestmkl.storage.googleapis.com: 0x7f2c68175b90 [can pipeline]
  • Re-using existing connection! (#1) with host ftptestmkl.storage.googleapis.com
  • Connected to ftptestmkl.storage.googleapis.com (74.125.134.128) port 443 (#1)

DELETE /myrootdir HTTP/1.1
Host: ftptestmkl.storage.googleapis.com
User-Agent: s3fs/1.82 (commit hash b1fe419; OpenSSL)
Accept: /
Authorization: AWS GOOGAX**************:**************************
Date: Tue, 25 Jul 2017 20:19:04 GMT

< 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
<

  • Curl_http_done: called premature == 0
  • Connection #1 to host ftptestmkl.storage.googleapis.com left intact
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

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 <GCS Bucket> <Mount Point> -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 <Mount Point> mkdir mytestdir ls -ld mytestdir ###Verify that the directory was created with the proper ownership (i.e. the User) As root cd <Mount Point> mkdir myrootdir chown <User> 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 * Found bundle for host ftptestmkl.storage.googleapis.com: 0x7f2c68175b90 [can pipeline] * Re-using existing connection! (#1) with host ftptestmkl.storage.googleapis.com * Connected to ftptestmkl.storage.googleapis.com (74.125.134.128) port 443 (#1) > HEAD /myrootdir HTTP/1.1 Host: ftptestmkl.storage.googleapis.com User-Agent: s3fs/1.82 (commit hash b1fe419; OpenSSL) Accept: */* Authorization: AWS GOOGAX**************:************************** Date: Tue, 25 Jul 2017 20:18:42 GMT < 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 < * Curl_http_done: called premature == 0 * Connection #1 to host ftptestmkl.storage.googleapis.com left intact [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/ * Found bundle for host ftptestmkl.storage.googleapis.com: 0x7f2c68175b90 [can pipeline] * Re-using existing connection! (#1) with host ftptestmkl.storage.googleapis.com * Connected to ftptestmkl.storage.googleapis.com (74.125.134.128) port 443 (#1) > HEAD /myrootdir/ HTTP/1.1 Host: ftptestmkl.storage.googleapis.com User-Agent: s3fs/1.82 (commit hash b1fe419; OpenSSL) Accept: */* Authorization: AWS GOOGAX**************:************************** Date: Tue, 25 Jul 2017 20:18:42 GMT < 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 < * Curl_http_done: called premature == 0 * Connection #1 to host ftptestmkl.storage.googleapis.com left intact [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 * Found bundle for host ftptestmkl.storage.googleapis.com: 0x7f2c68175b90 [can pipeline] * Re-using existing connection! (#1) with host ftptestmkl.storage.googleapis.com * Connected to ftptestmkl.storage.googleapis.com (74.125.134.128) port 443 (#1) > HEAD /myrootdir_%24folder%24 HTTP/1.1 Host: ftptestmkl.storage.googleapis.com User-Agent: s3fs/1.82 (commit hash b1fe419; OpenSSL) Accept: */* Authorization: AWS GOOGAX**************:************************** Date: Tue, 25 Jul 2017 20:18:42 GMT < 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 < * Curl_http_done: called premature == 0 * Connection #1 to host ftptestmkl.storage.googleapis.com left intact [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/ * Rebuilt URL to: https://ftptestmkl.storage.googleapis.com/?delimiter=/&max-keys=2&prefix=myrootdir/ * Found bundle for host ftptestmkl.storage.googleapis.com: 0x7f2c68175b90 [can pipeline] * Re-using existing connection! (#1) with host ftptestmkl.storage.googleapis.com * Connected to ftptestmkl.storage.googleapis.com (74.125.134.128) port 443 (#1) > GET /?delimiter=/&max-keys=2&prefix=myrootdir/ HTTP/1.1 Host: ftptestmkl.storage.googleapis.com User-Agent: s3fs/1.82 (commit hash b1fe419; OpenSSL) Accept: */* Authorization: AWS GOOGAX**************:************************** Date: Tue, 25 Jul 2017 20:18:42 GMT < 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 < * Curl_http_done: called premature == 0 * Connection #1 to host ftptestmkl.storage.googleapis.com left intact [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 * Found bundle for host ftptestmkl.storage.googleapis.com: 0x7f2c68175b90 [can pipeline] * Re-using existing connection! (#1) with host ftptestmkl.storage.googleapis.com * Connected to ftptestmkl.storage.googleapis.com (74.125.134.128) port 443 (#1) > HEAD /myrootdir HTTP/1.1 Host: ftptestmkl.storage.googleapis.com User-Agent: s3fs/1.82 (commit hash b1fe419; OpenSSL) Accept: */* Authorization: AWS GOOGAX**************:************************** Date: Tue, 25 Jul 2017 20:18:42 GMT < 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 < * Curl_http_done: called premature == 0 * Connection #1 to host ftptestmkl.storage.googleapis.com left intact [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/ * Found bundle for host ftptestmkl.storage.googleapis.com: 0x7f2c68175b90 [can pipeline] * Re-using existing connection! (#1) with host ftptestmkl.storage.googleapis.com * Connected to ftptestmkl.storage.googleapis.com (74.125.134.128) port 443 (#1) > HEAD /myrootdir/ HTTP/1.1 Host: ftptestmkl.storage.googleapis.com User-Agent: s3fs/1.82 (commit hash b1fe419; OpenSSL) Accept: */* Authorization: AWS GOOGAX**************:************************** Date: Tue, 25 Jul 2017 20:18:42 GMT < 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 < * Curl_http_done: called premature == 0 * Connection #1 to host ftptestmkl.storage.googleapis.com left intact [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 * Found bundle for host ftptestmkl.storage.googleapis.com: 0x7f2c68175b90 [can pipeline] * Re-using existing connection! (#1) with host ftptestmkl.storage.googleapis.com * Connected to ftptestmkl.storage.googleapis.com (74.125.134.128) port 443 (#1) > HEAD /myrootdir_%24folder%24 HTTP/1.1 Host: ftptestmkl.storage.googleapis.com User-Agent: s3fs/1.82 (commit hash b1fe419; OpenSSL) Accept: */* Authorization: AWS GOOGAX**************:************************** Date: Tue, 25 Jul 2017 20:18:42 GMT < 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 < * Curl_http_done: called premature == 0 * Connection #1 to host ftptestmkl.storage.googleapis.com left intact [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/ * Rebuilt URL to: https://ftptestmkl.storage.googleapis.com/?delimiter=/&max-keys=2&prefix=myrootdir/ * Found bundle for host ftptestmkl.storage.googleapis.com: 0x7f2c68175b90 [can pipeline] * Re-using existing connection! (#1) with host ftptestmkl.storage.googleapis.com * Connected to ftptestmkl.storage.googleapis.com (74.125.134.128) port 443 (#1) > GET /?delimiter=/&max-keys=2&prefix=myrootdir/ HTTP/1.1 Host: ftptestmkl.storage.googleapis.com User-Agent: s3fs/1.82 (commit hash b1fe419; OpenSSL) Accept: */* Authorization: AWS GOOGAX**************:************************** Date: Tue, 25 Jul 2017 20:18:43 GMT < 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 < * Curl_http_done: called premature == 0 * Connection #1 to host ftptestmkl.storage.googleapis.com left intact [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/ * Found bundle for host ftptestmkl.storage.googleapis.com: 0x7f2c68175b90 [can pipeline] * Re-using existing connection! (#1) with host ftptestmkl.storage.googleapis.com * Connected to ftptestmkl.storage.googleapis.com (74.125.134.128) port 443 (#1) > PUT /myrootdir/ HTTP/1.1 Host: ftptestmkl.storage.googleapis.com User-Agent: s3fs/1.82 (commit hash b1fe419; OpenSSL) Accept: */* Authorization: AWS GOOGAX**************:************************** Content-Type: application/x-directory Date: Tue, 25 Jul 2017 20:18:43 GMT x-amz-acl: private x-amz-meta-gid: 0 x-amz-meta-mode: 493 x-amz-meta-mtime: 1501013923 x-amz-meta-uid: 0 Content-Length: 0 < 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 < * Curl_http_done: called premature == 0 * Connection #1 to host ftptestmkl.storage.googleapis.com left intact [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 * Found bundle for host ftptestmkl.storage.googleapis.com: 0x7f2c68175b90 [can pipeline] * Re-using existing connection! (#1) with host ftptestmkl.storage.googleapis.com * Connected to ftptestmkl.storage.googleapis.com (74.125.134.128) port 443 (#1) > HEAD /myrootdir HTTP/1.1 Host: ftptestmkl.storage.googleapis.com User-Agent: s3fs/1.82 (commit hash b1fe419; OpenSSL) Accept: */* Authorization: AWS GOOGAX**************:************************** Date: Tue, 25 Jul 2017 20:18:43 GMT < 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 < * Curl_http_done: called premature == 0 * Connection #1 to host ftptestmkl.storage.googleapis.com left intact [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/ * Found bundle for host ftptestmkl.storage.googleapis.com: 0x7f2c68175b90 [can pipeline] * Re-using existing connection! (#1) with host ftptestmkl.storage.googleapis.com * Connected to ftptestmkl.storage.googleapis.com (74.125.134.128) port 443 (#1) > HEAD /myrootdir/ HTTP/1.1 Host: ftptestmkl.storage.googleapis.com User-Agent: s3fs/1.82 (commit hash b1fe419; OpenSSL) Accept: */* Authorization: AWS GOOGAX**************:************************** Date: Tue, 25 Jul 2017 20:18:43 GMT < 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 < * Curl_http_done: called premature == 0 * Connection #1 to host ftptestmkl.storage.googleapis.com left intact [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= * Rebuilt URL to: https://ftptestmkl.storage.googleapis.com/?delimiter=/&max-keys=1000&prefix= * Found bundle for host ftptestmkl.storage.googleapis.com: 0x7f2c68175b90 [can pipeline] * Re-using existing connection! (#1) with host ftptestmkl.storage.googleapis.com * Connected to ftptestmkl.storage.googleapis.com (74.125.134.128) port 443 (#1) > GET /?delimiter=/&max-keys=1000&prefix= HTTP/1.1 Host: ftptestmkl.storage.googleapis.com User-Agent: s3fs/1.82 (commit hash b1fe419; OpenSSL) Accept: */* Authorization: AWS GOOGAX**************:************************** Date: Tue, 25 Jul 2017 20:18:59 GMT < 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 < * Curl_http_done: called premature == 0 * Connection #1 to host ftptestmkl.storage.googleapis.com left intact [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 * Found bundle for host ftptestmkl.storage.googleapis.com: 0x7f2c68175b90 [can pipeline] * Re-using existing connection! (#1) with host ftptestmkl.storage.googleapis.com * Connected to ftptestmkl.storage.googleapis.com (74.125.134.128) port 443 (#1) > HEAD /myrootdir_%24folder%24 HTTP/1.1 Host: ftptestmkl.storage.googleapis.com User-Agent: s3fs/1.82 (commit hash b1fe419; OpenSSL) Accept: */* Authorization: AWS GOOGAX**************:************************** Date: Tue, 25 Jul 2017 20:19:04 GMT < 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 < * Curl_http_done: called premature == 0 * Connection #1 to host ftptestmkl.storage.googleapis.com left intact [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 * Found bundle for host ftptestmkl.storage.googleapis.com: 0x7f2c68175b90 [can pipeline] * Re-using existing connection! (#1) with host ftptestmkl.storage.googleapis.com * Connected to ftptestmkl.storage.googleapis.com (74.125.134.128) port 443 (#1) > DELETE /myrootdir HTTP/1.1 Host: ftptestmkl.storage.googleapis.com User-Agent: s3fs/1.82 (commit hash b1fe419; OpenSSL) Accept: */* Authorization: AWS GOOGAX**************:************************** Date: Tue, 25 Jul 2017 20:19:04 GMT < 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 < * Curl_http_done: called premature == 0 * Connection #1 to host ftptestmkl.storage.googleapis.com left intact <?xml version='1.0' encoding='UTF-8'?><Error><Code>NoSuchKey</Code><Message>The specified key does not exist.</Message></Error>[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
kerem 2026-03-04 01:44:41 +03:00
  • closed this issue
  • added the
    need info
    label
Author
Owner

@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/")

// At first, remove directory old object
if(IS_RMTYPEDIR(nDirType)){
  S3fsCurl s3fscurl;
  if(0 != (result = s3fscurl.DeleteRequest(strpath.c_str()))){
    return result;
  }
}

`
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.

<!-- gh-comment-id:336625161 --> @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/") // At first, remove directory old object if(IS_RMTYPEDIR(nDirType)){ S3fsCurl s3fscurl; if(0 != (result = s3fscurl.DeleteRequest(strpath.c_str()))){ return result; } } ` 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.
Author
Owner

@gaul commented on GitHub (Jun 23, 2020):

Can anyone reproduce this with the latest 1.86? It includes fixes for these symptoms.

<!-- gh-comment-id:647886322 --> @gaul commented on GitHub (Jun 23, 2020): Can anyone reproduce this with the latest 1.86? It includes fixes for these symptoms.
Author
Owner

@gaul commented on GitHub (Oct 10, 2020):

Please reopen if symptoms persist.

<!-- gh-comment-id:706508375 --> @gaul commented on GitHub (Oct 10, 2020): Please reopen if symptoms persist.
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#357
No description provided.