DeleteObject 다음에 UpdateObject가 옵니다.

DeleteObject 다음에 UpdateObject가 옵니다.

gcsfuse 마운트 파일 시스템에서 파일을 삭제할 때마다 DeleteObject명령 뒤에는 항상 명령이 따르지만 UpdateObject해당 파일이 더 이상 존재하지 않기 때문에 실패합니다. 삭제 자체는 로컬과 버킷 모두에서 성공하므로 삭제는 예상대로 작동하지만 UpdateObject명령이 전송되는 이유와 이것이 단지 예상된 동작인지 아니면 내 측의 구성 문제를 가리키는지 알고 싶습니다 . 다음은 몇 가지 설정 세부정보와 로그 추출입니다('#' 문자로 수정된 민감한 정보).

gcsfuse 버전:0.40.0

장착 명령: /usr/bin/gcsfuse --foreground --debug_fuse --debug_fs --debug_gcs --debug_http --debug_mutex --debug_invariants --log-file /home/###/gcsfuse.log ### /home/###/###

삭제 명령: rm deltest.txt

로그 추출:

  {
    "name": "root",
    "levelname": "DEBUG",
    "severity": "DEBUG",
    "message": "fuse_debug: Op 0x000037c6        connection.go:416] <- Unlink (parent 26, name \"deltest.txt\", PID 1193)\n",
    "timestampSeconds": 1649408345,
    "timestampNanos": 564194468
  }
  {
    "name": "root",
    "levelname": "DEBUG",
    "severity": "DEBUG",
    "message": "gcs: Req             0x44: <- DeleteObject(\"deltest.txt\")\n",
    "timestampSeconds": 1649408345,
    "timestampNanos": 564300578
  }
  {
    "name": "root",
    "levelname": "DEBUG",
    "severity": "DEBUG",
    "message": "http: ========== REQUEST:\nDELETE http://www.googleapis.com:443/storage/v1/b/###/o/deltest.txt HTTP/1.1\r\nHost: www.googleapis.com:443\r\nUser-Agent: gcsfuse/0.40.0 (Go version go1.17.6) \r\nAuthorization: Bearer ###\r\nAccept-Encoding: gzip\r\n\r\n",
    "timestampSeconds": 1649408345,
    "timestampNanos": 564477178
  }
  {
    "name": "root",
    "levelname": "DEBUG",
    "severity": "DEBUG",
    "message": "http: ========== RESPONSE:\nHTTP/2.0 204 No Content\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nContent-Type: application/json\r\nDate: Fri, 08 Apr 2022 08:59:05 GMT\r\nExpires: Mon, 01 Jan 1990 00:00:00 GMT\r\nPragma: no-cache\r\nServer: UploadServer\r\nVary: Origin\r\nVary: X-Origin\r\nX-Guploader-Uploadid: ###\r\n\r\n",
    "timestampSeconds": 1649408345,
    "timestampNanos": 599754186
  }
  {
    "name": "root",
    "levelname": "DEBUG",
    "severity": "DEBUG",
    "message": "http: ====================\n",
    "timestampSeconds": 1649408345,
    "timestampNanos": 599813546
  }
  {
    "name": "root",
    "levelname": "DEBUG",
    "severity": "DEBUG",
    "message": "gcs: Req             0x44: -> DeleteObject(\"deltest.txt\") (35.528748ms): OK\n",
    "timestampSeconds": 1649408345,
    "timestampNanos": 599832746
  }
  {
    "name": "root",
    "levelname": "DEBUG",
    "severity": "DEBUG",
    "message": "debug_fs: Unlink(26, \"deltest.txt\"): <nil>\n",
    "timestampSeconds": 1649408345,
    "timestampNanos": 599883646
  }
  {
    "name": "root",
    "levelname": "DEBUG",
    "severity": "DEBUG",
    "message": "fuse_debug: Op 0x000037c6        connection.go:498] -> OK ()\n",
    "timestampSeconds": 1649408345,
    "timestampNanos": 599908336
  }
  {
    "name": "root",
    "levelname": "DEBUG",
    "severity": "DEBUG",
    "message": "fuse_debug: Op 0x000037c8        connection.go:416] <- SetInodeAttributes (inode 35, PID 1193, mtime 2022-04-08 08:58:51.943138607 +0000 UTC)\n",
    "timestampSeconds": 1649408345,
    "timestampNanos": 599978196
  }
  {
    "name": "root",
    "levelname": "DEBUG",
    "severity": "DEBUG",
    "message": "gcs: Req             0x45: <- UpdateObject(\"deltest.txt\")\n",
    "timestampSeconds": 1649408345,
    "timestampNanos": 600124196
  }
  {
    "name": "root",
    "levelname": "DEBUG",
    "severity": "DEBUG",
    "message": "http: ========== REQUEST:\nPATCH http://www.googleapis.com:443/storage/v1/b/###/o/deltest.txt?generation=###&ifMetagenerationMatch=1&projection=full HTTP/1.1\r\nHost: www.googleapis.com:443\r\nUser-Agent: gcsfuse/0.40.0 (Go version go1.17.6) \r\nContent-Length: 64\r\nAuthorization: Bearer ###\r\nContent-Type: application/json\r\nAccept-Encoding: gzip\r\n\r\n{\"metadata\":{\"gcsfuse_mtime\":\"2022-04-08T08:58:51.943138607Z\"}}\n",
    "timestampSeconds": 1649408345,
    "timestampNanos": 600343366
  }
  {
    "name": "root",
    "levelname": "DEBUG",
    "severity": "DEBUG",
    "message": "http: ========== RESPONSE:\nHTTP/2.0 404 Not Found\r\nContent-Length: 383\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nContent-Type: application/json; charset=UTF-8\r\nDate: Fri, 08 Apr 2022 08:59:05 GMT\r\nExpires: Mon, 01 Jan 1990 00:00:00 GMT\r\nPragma: no-cache\r\nServer: UploadServer\r\nVary: Origin\r\nVary: X-Origin\r\nX-Guploader-Uploadid: ###\r\n\r\n{\n  \"error\": {\n    \"code\": 404,\n    \"message\": \"No such object:###/deltest.txt\",\n    \"errors\": [\n      {\n        \"message\": \"No such object: ###/deltest.txt\",\n        \"domain\": \"global\",\n        \"reason\": \"notFound\"\n      }\n    ]\n  }\n}\n",
    "timestampSeconds": 1649408345,
    "timestampNanos": 618031945
  }
  {
    "name": "root",
    "levelname": "DEBUG",
    "severity": "DEBUG",
    "message": "http: ====================\n",
    "timestampSeconds": 1649408345,
    "timestampNanos": 618071915
  }
  {
    "name": "root",
    "levelname": "DEBUG",
    "severity": "DEBUG",
    "message": "gcs: Req             0x45: -> UpdateObject(\"deltest.txt\") (18.039079ms): not retrying UpdateObject(\"deltest.txt\"): gcs.NotFoundError: googleapi: Error 404: No such object: ###/deltest.txt, notFound\n",
    "timestampSeconds": 1649408345,
    "timestampNanos": 618163665
  }
  {
    "name": "root",
    "levelname": "DEBUG",
    "severity": "DEBUG",
    "message": "debug_fs: SetInodeAttributes(35): SetMtime: UpdateObject: not retrying UpdateObject(\"###/deltest.txt\"): gcs.NotFoundError: googleapi: Error 404: No such object: ###/deltest.txt, notFound\n",
    "timestampSeconds": 1649408345,
    "timestampNanos": 618178515
  }
  {
    "name": "root",
    "levelname": "ERROR",
    "severity": "ERROR",
    "message": "SetInodeAttributes: input/output error, SetMtime: UpdateObject: not retrying UpdateObject(\"###/deltest.txt\"): gcs.NotFoundError: googleapi: Error 404: No such object: ###/deltest.txt, notFound\n",
    "timestampSeconds": 1649408345,
    "timestampNanos": 618219465
  }
  {
    "name": "root",
    "levelname": "DEBUG",
    "severity": "DEBUG",
    "message": "fuse_debug: Op 0x000037c8        connection.go:500] -> Error: \"input/output error\"\n",
    "timestampSeconds": 1649408345,
    "timestampNanos": 618257045
  }
  {
    "name": "root",
    "levelname": "ERROR",
    "severity": "ERROR",
    "message": "fuse: *fuseops.SetInodeAttributesOp error: input/output error\n",
    "timestampSeconds": 1649408345,
    "timestampNanos": 618267145
  }

관련 정보