GoogleCloudPlatform / gcsfuse

A user-space file system for interacting with Google Cloud Storage
https://cloud.google.com/storage/docs/gcs-fuse
Apache License 2.0
2.05k stars 426 forks source link

implicit-dirs "Server error", or empty path when mounting large bucket (~600GB) #292

Closed flooksta closed 2 years ago

flooksta commented 6 years ago

Hey,

I'm running an instance connected to a local Jupyter Notebook interface. I'm looking to load jpg files locally via gcsfuse in lieu of Google APIs which doesn't really support image processing.

I'm having issues mounting my GCS bucket using implicit-dirs. Without implicit-dirs, all the files recognized are mounted correctly.

When running implicit-dirs, using gcsfuse --implicit-dirs <bucket_name> ~/path the terminal shows "successfully mounted." but the directory "path" either disappears completely or once opened in the local directory, gives the following error message (I tried calling the files out in the local directory and can confirm they're missing):

Click to expand > Server error: Traceback (most recent call last): File "/home/user/anaconda3/lib/python3.6/site-packages/tornado/web.py", line 1543, in _execute result = yield result File "/home/user/anaconda3/lib/python3.6/site-packages/tornado/gen.py", line 1099, in run value = future.result() File "/home/user/anaconda3/lib/python3.6/site-packages/tornado/gen.py", line 315, in wrapper yielded = next(result) File "/home/user/anaconda3/lib/python3.6/site-packages/notebook/services/contents/handlers.py", line 112, in get path=path, type=type, format=format, content=content, File "/home/user/anaconda3/lib/python3.6/site-packages/notebook/services/contents/filemanager.py", line 431, in get model = self._dir_model(path, content=content) File "/home/user/anaconda3/lib/python3.6/site-packages/notebook/services/contents/filemanager.py", line 313, in _dir_model for name in os.listdir(os_dir): OSError: [Errno 5] Input/output error: '/home/user/path'

I also ran gcsfuse --foreground --debug_gcs --debug_fuse --implicit-dirs <bucket_name> ~/path and here are the results ran for ~1hour:

Click to expand ``` Using mount point: /home/user/path Opening GCS connection... Opening bucket... gcs: Req 0x0: <- ListObjects() gcs: Req 0x0: -> ListObjects() (254.899223ms): OK gcs: Req 0x1: <- ListObjects() gcs: Req 0x1: -> ListObjects() (195.963719ms): OK Mounting file system... fuse_debug: Op 0x00000001 connection.go:396] <- init fuse_debug: Op 0x00000001 connection.go:479] -> OK () File system has been successfully mounted. fuse_debug: Op 0x00000002 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x00000002 connection.go:479] -> OK () fuse_debug: Op 0x00000003 connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x00000003 connection.go:479] -> OK () fuse_debug: Op 0x00000004 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x2: <- ListObjects() gcs: Req 0x2: -> ListObjects() (135.708656ms): OK fuse_debug: Op 0x00000004 connection.go:479] -> OK () fuse_debug: Op 0x00000005 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x00000005 connection.go:479] -> OK () fuse_debug: Op 0x00000006 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x00000006 connection.go:479] -> OK () fuse_debug: Op 0x00000007 connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x00000007 connection.go:479] -> OK () fuse_debug: Op 0x00000008 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x3: <- ListObjects() gcs: Req 0x3: -> ListObjects() (189.873901ms): OK fuse_debug: Op 0x00000008 connection.go:479] -> OK () fuse_debug: Op 0x00000009 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x00000009 connection.go:479] -> OK () fuse_debug: Op 0x0000000a connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x0000000a connection.go:479] -> OK () fuse_debug: Op 0x0000000b connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x0000000b connection.go:479] -> OK () fuse_debug: Op 0x0000000c connection.go:396] <- ReadDir (inode 1) gcs: Req 0x4: <- ListObjects() gcs: Req 0x4: -> ListObjects() (218.473654ms): OK fuse_debug: Op 0x0000000c connection.go:479] -> OK () fuse_debug: Op 0x0000000d connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x0000000d connection.go:479] -> OK () fuse_debug: Op 0x0000000e connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x0000000e connection.go:479] -> OK () fuse_debug: Op 0x0000000f connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x0000000f connection.go:479] -> OK () fuse_debug: Op 0x00000010 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x5: <- ListObjects() gcs: Req 0x5: -> ListObjects() (205.473689ms): OK fuse_debug: Op 0x00000010 connection.go:479] -> OK () fuse_debug: Op 0x00000011 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x00000011 connection.go:479] -> OK () fuse_debug: Op 0x00000012 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x00000012 connection.go:479] -> OK () fuse_debug: Op 0x00000013 connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x00000013 connection.go:479] -> OK () fuse_debug: Op 0x00000014 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x6: <- ListObjects() gcs: Req 0x6: -> ListObjects() (143.858872ms): OK fuse_debug: Op 0x00000014 connection.go:479] -> OK () fuse_debug: Op 0x00000015 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x00000015 connection.go:479] -> OK () fuse_debug: Op 0x00000016 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x00000016 connection.go:479] -> OK () fuse_debug: Op 0x00000017 connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x00000017 connection.go:479] -> OK () fuse_debug: Op 0x00000018 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x7: <- ListObjects() gcs: Req 0x7: -> ListObjects() (240.736099ms): OK fuse_debug: Op 0x00000018 connection.go:479] -> OK () fuse_debug: Op 0x00000019 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x00000019 connection.go:479] -> OK () fuse_debug: Op 0x0000001a connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x0000001a connection.go:479] -> OK () fuse_debug: Op 0x0000001b connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x0000001b connection.go:479] -> OK () fuse_debug: Op 0x0000001c connection.go:396] <- ReadDir (inode 1) gcs: Req 0x8: <- ListObjects() gcs: Req 0x8: -> ListObjects() (215.724206ms): OK fuse_debug: Op 0x0000001c connection.go:479] -> OK () fuse_debug: Op 0x0000001d connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x0000001d connection.go:479] -> OK () 2018/08/16 02:06:12.649027 Starting a garbage collection run. gcs: Req 0x9: <- ListObjects() gcs: Req 0x9: -> ListObjects() (190.519511ms): OK 2018/08/16 02:06:12.839827 Garbage collection succeeded after deleted 0 objects in 190.693644ms. fuse_debug: Op 0x0000001e connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x0000001e connection.go:479] -> OK () fuse_debug: Op 0x0000001f connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x0000001f connection.go:479] -> OK () fuse_debug: Op 0x00000020 connection.go:396] <- ReadDir (inode 1) gcs: Req 0xa: <- ListObjects() gcs: Req 0xa: -> ListObjects() (282.923731ms): OK fuse_debug: Op 0x00000020 connection.go:479] -> OK () fuse_debug: Op 0x00000021 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x00000021 connection.go:479] -> OK () fuse_debug: Op 0x00000022 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x00000022 connection.go:479] -> OK () fuse_debug: Op 0x00000023 connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x00000023 connection.go:479] -> OK () fuse_debug: Op 0x00000024 connection.go:396] <- ReadDir (inode 1) gcs: Req 0xb: <- ListObjects() gcs: Req 0xb: -> ListObjects() (139.80278ms): OK fuse_debug: Op 0x00000024 connection.go:479] -> OK () fuse_debug: Op 0x00000025 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x00000025 connection.go:479] -> OK () fuse_debug: Op 0x00000026 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x00000026 connection.go:479] -> OK () fuse_debug: Op 0x00000027 connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x00000027 connection.go:479] -> OK () fuse_debug: Op 0x00000028 connection.go:396] <- ReadDir (inode 1) gcs: Req 0xc: <- ListObjects() gcs: Req 0xc: -> ListObjects() (213.748423ms): OK fuse_debug: Op 0x00000028 connection.go:479] -> OK () fuse_debug: Op 0x00000029 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x00000029 connection.go:479] -> OK () fuse_debug: Op 0x0000002a connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x0000002a connection.go:479] -> OK () fuse_debug: Op 0x0000002b connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x0000002b connection.go:479] -> OK () fuse_debug: Op 0x0000002c connection.go:396] <- ReadDir (inode 1) gcs: Req 0xd: <- ListObjects() gcs: Req 0xd: -> ListObjects() (204.168297ms): OK fuse_debug: Op 0x0000002c connection.go:479] -> OK () fuse_debug: Op 0x0000002d connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x0000002d connection.go:479] -> OK () fuse_debug: Op 0x0000002e connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x0000002e connection.go:479] -> OK () fuse_debug: Op 0x0000002f connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x0000002f connection.go:479] -> OK () fuse_debug: Op 0x00000030 connection.go:396] <- ReadDir (inode 1) gcs: Req 0xe: <- ListObjects() gcs: Req 0xe: -> ListObjects() (218.782393ms): OK fuse_debug: Op 0x00000030 connection.go:479] -> OK () fuse_debug: Op 0x00000031 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x00000031 connection.go:479] -> OK () fuse_debug: Op 0x00000032 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x00000032 connection.go:479] -> OK () fuse_debug: Op 0x00000033 connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x00000033 connection.go:479] -> OK () fuse_debug: Op 0x00000034 connection.go:396] <- ReadDir (inode 1) gcs: Req 0xf: <- ListObjects() gcs: Req 0xf: -> ListObjects() (218.280036ms): OK fuse_debug: Op 0x00000034 connection.go:479] -> OK () fuse_debug: Op 0x00000035 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x00000035 connection.go:479] -> OK () fuse_debug: Op 0x00000036 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x00000036 connection.go:479] -> OK () fuse_debug: Op 0x00000037 connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x00000037 connection.go:479] -> OK () fuse_debug: Op 0x00000038 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x10: <- ListObjects() gcs: Req 0x10: -> ListObjects() (198.321162ms): OK fuse_debug: Op 0x00000038 connection.go:479] -> OK () fuse_debug: Op 0x00000039 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x00000039 connection.go:479] -> OK () 2018/08/16 02:16:12.649070 Starting a garbage collection run. gcs: Req 0x11: <- ListObjects() gcs: Req 0x11: -> ListObjects() (189.552498ms): OK 2018/08/16 02:16:12.838874 Garbage collection succeeded after deleted 0 objects in 189.765268ms. fuse_debug: Op 0x0000003a connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x0000003a connection.go:479] -> OK () fuse_debug: Op 0x0000003b connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x0000003b connection.go:479] -> OK () fuse_debug: Op 0x0000003c connection.go:396] <- ReadDir (inode 1) gcs: Req 0x12: <- ListObjects() gcs: Req 0x12: -> ListObjects() (213.318843ms): OK fuse_debug: Op 0x0000003c connection.go:479] -> OK () fuse_debug: Op 0x0000003d connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x0000003d connection.go:479] -> OK () fuse_debug: Op 0x0000003e connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x0000003e connection.go:479] -> OK () fuse_debug: Op 0x0000003f connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x0000003f connection.go:479] -> OK () fuse_debug: Op 0x00000040 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x13: <- ListObjects() gcs: Req 0x13: -> ListObjects() (204.368354ms): OK fuse_debug: Op 0x00000040 connection.go:479] -> OK () fuse_debug: Op 0x00000041 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x00000041 connection.go:479] -> OK () fuse_debug: Op 0x00000042 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x00000042 connection.go:479] -> OK () fuse_debug: Op 0x00000043 connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x00000043 connection.go:479] -> OK () fuse_debug: Op 0x00000044 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x14: <- ListObjects() gcs: Req 0x14: -> ListObjects() (205.114444ms): OK fuse_debug: Op 0x00000044 connection.go:479] -> OK () fuse_debug: Op 0x00000045 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x00000045 connection.go:479] -> OK () fuse_debug: Op 0x00000046 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x00000046 connection.go:479] -> OK () fuse_debug: Op 0x00000047 connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x00000047 connection.go:479] -> OK () fuse_debug: Op 0x00000048 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x15: <- ListObjects() gcs: Req 0x15: -> ListObjects() (220.043501ms): OK fuse_debug: Op 0x00000048 connection.go:479] -> OK () fuse_debug: Op 0x00000049 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x00000049 connection.go:479] -> OK () fuse_debug: Op 0x0000004a connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x0000004a connection.go:479] -> OK () fuse_debug: Op 0x0000004b connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x0000004b connection.go:479] -> OK () fuse_debug: Op 0x0000004c connection.go:396] <- ReadDir (inode 1) gcs: Req 0x16: <- ListObjects() gcs: Req 0x16: -> ListObjects() (218.511386ms): OK fuse_debug: Op 0x0000004c connection.go:479] -> OK () fuse_debug: Op 0x0000004d connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x0000004d connection.go:479] -> OK () fuse_debug: Op 0x0000004e connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x0000004e connection.go:479] -> OK () fuse_debug: Op 0x0000004f connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x0000004f connection.go:479] -> OK () fuse_debug: Op 0x00000050 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x17: <- ListObjects() gcs: Req 0x17: -> ListObjects() (175.789883ms): OK fuse_debug: Op 0x00000050 connection.go:479] -> OK () fuse_debug: Op 0x00000051 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x00000051 connection.go:479] -> OK () fuse_debug: Op 0x00000052 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x00000052 connection.go:479] -> OK () fuse_debug: Op 0x00000053 connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x00000053 connection.go:479] -> OK () fuse_debug: Op 0x00000054 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x18: <- ListObjects() gcs: Req 0x18: -> ListObjects() (162.527641ms): OK fuse_debug: Op 0x00000054 connection.go:479] -> OK () fuse_debug: Op 0x00000055 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x00000055 connection.go:479] -> OK () fuse_debug: Op 0x00000056 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x00000056 connection.go:479] -> OK () fuse_debug: Op 0x00000057 connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x00000057 connection.go:479] -> OK () fuse_debug: Op 0x00000058 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x19: <- ListObjects() gcs: Req 0x19: -> ListObjects() (207.765516ms): OK fuse_debug: Op 0x00000058 connection.go:479] -> OK () fuse_debug: Op 0x00000059 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x00000059 connection.go:479] -> OK () 2018/08/16 02:26:12.649120 Starting a garbage collection run. gcs: Req 0x1a: <- ListObjects() gcs: Req 0x1a: -> ListObjects() (186.206387ms): OK 2018/08/16 02:26:12.836487 Garbage collection succeeded after deleted 0 objects in 187.324869ms. fuse_debug: Op 0x0000005a connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x0000005a connection.go:479] -> OK () fuse_debug: Op 0x0000005b connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x0000005b connection.go:479] -> OK () fuse_debug: Op 0x0000005c connection.go:396] <- ReadDir (inode 1) gcs: Req 0x1b: <- ListObjects() gcs: Req 0x1b: -> ListObjects() (212.264853ms): OK fuse_debug: Op 0x0000005c connection.go:479] -> OK () fuse_debug: Op 0x0000005d connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x0000005d connection.go:479] -> OK () fuse_debug: Op 0x0000005e connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x0000005e connection.go:479] -> OK () fuse_debug: Op 0x0000005f connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x0000005f connection.go:479] -> OK () fuse_debug: Op 0x00000060 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x1c: <- ListObjects() gcs: Req 0x1c: -> ListObjects() (185.283523ms): OK fuse_debug: Op 0x00000060 connection.go:479] -> OK () fuse_debug: Op 0x00000061 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x00000061 connection.go:479] -> OK () fuse_debug: Op 0x00000062 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x00000062 connection.go:479] -> OK () fuse_debug: Op 0x00000063 connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x00000063 connection.go:479] -> OK () fuse_debug: Op 0x00000064 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x1d: <- ListObjects() gcs: Req 0x1d: -> ListObjects() (184.741072ms): OK fuse_debug: Op 0x00000064 connection.go:479] -> OK () fuse_debug: Op 0x00000065 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x00000065 connection.go:479] -> OK () fuse_debug: Op 0x00000066 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x00000066 connection.go:479] -> OK () fuse_debug: Op 0x00000067 connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x00000067 connection.go:479] -> OK () fuse_debug: Op 0x00000068 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x1e: <- ListObjects() gcs: Req 0x1e: -> ListObjects() (168.630036ms): OK fuse_debug: Op 0x00000068 connection.go:479] -> OK () fuse_debug: Op 0x00000069 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x00000069 connection.go:479] -> OK () fuse_debug: Op 0x0000006a connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x0000006a connection.go:479] -> OK () fuse_debug: Op 0x0000006b connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x0000006b connection.go:479] -> OK () fuse_debug: Op 0x0000006c connection.go:396] <- ReadDir (inode 1) gcs: Req 0x1f: <- ListObjects() gcs: Req 0x1f: -> ListObjects() (187.396393ms): OK fuse_debug: Op 0x0000006c connection.go:479] -> OK () fuse_debug: Op 0x0000006d connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x0000006d connection.go:479] -> OK () fuse_debug: Op 0x0000006e connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x0000006e connection.go:479] -> OK () fuse_debug: Op 0x0000006f connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x0000006f connection.go:479] -> OK () fuse_debug: Op 0x00000070 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x20: <- ListObjects() gcs: Req 0x20: -> ListObjects() (167.320715ms): OK fuse_debug: Op 0x00000070 connection.go:479] -> OK () fuse_debug: Op 0x00000071 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x00000071 connection.go:479] -> OK () fuse_debug: Op 0x00000072 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x00000072 connection.go:479] -> OK () fuse_debug: Op 0x00000073 connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x00000073 connection.go:479] -> OK () fuse_debug: Op 0x00000074 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x21: <- ListObjects() gcs: Req 0x21: -> ListObjects() (186.957927ms): OK fuse_debug: Op 0x00000074 connection.go:479] -> OK () fuse_debug: Op 0x00000075 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x00000075 connection.go:479] -> OK () fuse_debug: Op 0x00000076 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x00000076 connection.go:479] -> OK () fuse_debug: Op 0x00000077 connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x00000077 connection.go:479] -> OK () fuse_debug: Op 0x00000078 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x22: <- ListObjects() gcs: Req 0x22: -> ListObjects() (187.871873ms): OK fuse_debug: Op 0x00000078 connection.go:479] -> OK () fuse_debug: Op 0x00000079 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x00000079 connection.go:479] -> OK () fuse_debug: Op 0x0000007a connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x0000007a connection.go:479] -> OK () fuse_debug: Op 0x0000007b connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x0000007b connection.go:479] -> OK () fuse_debug: Op 0x0000007c connection.go:396] <- ReadDir (inode 1) gcs: Req 0x23: <- ListObjects() gcs: Req 0x23: -> ListObjects() (189.243033ms): OK fuse_debug: Op 0x0000007c connection.go:479] -> OK () fuse_debug: Op 0x0000007d connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x0000007d connection.go:479] -> OK () fuse_debug: Op 0x0000007e connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x0000007e connection.go:479] -> OK () fuse_debug: Op 0x0000007f connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x0000007f connection.go:479] -> OK () fuse_debug: Op 0x00000080 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x24: <- ListObjects() gcs: Req 0x24: -> ListObjects() (189.666345ms): OK fuse_debug: Op 0x00000080 connection.go:479] -> OK () fuse_debug: Op 0x00000081 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x00000081 connection.go:479] -> OK () 2018/08/16 02:36:12.648983 Starting a garbage collection run. gcs: Req 0x25: <- ListObjects() gcs: Req 0x25: -> ListObjects() (189.850397ms): OK 2018/08/16 02:36:12.839120 Garbage collection succeeded after deleted 0 objects in 190.084011ms. fuse_debug: Op 0x00000082 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x00000082 connection.go:479] -> OK () fuse_debug: Op 0x00000083 connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x00000083 connection.go:479] -> OK () fuse_debug: Op 0x00000084 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x26: <- ListObjects() gcs: Req 0x26: -> ListObjects() (184.872488ms): OK fuse_debug: Op 0x00000084 connection.go:479] -> OK () fuse_debug: Op 0x00000085 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x00000085 connection.go:479] -> OK () fuse_debug: Op 0x00000086 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x00000086 connection.go:479] -> OK () fuse_debug: Op 0x00000087 connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x00000087 connection.go:479] -> OK () fuse_debug: Op 0x00000088 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x27: <- ListObjects() gcs: Req 0x27: -> ListObjects() (221.646092ms): OK fuse_debug: Op 0x00000088 connection.go:479] -> OK () fuse_debug: Op 0x00000089 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x00000089 connection.go:479] -> OK () fuse_debug: Op 0x0000008a connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x0000008a connection.go:479] -> OK () fuse_debug: Op 0x0000008b connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x0000008b connection.go:479] -> OK () fuse_debug: Op 0x0000008c connection.go:396] <- ReadDir (inode 1) gcs: Req 0x28: <- ListObjects() gcs: Req 0x28: -> ListObjects() (165.258552ms): OK fuse_debug: Op 0x0000008c connection.go:479] -> OK () fuse_debug: Op 0x0000008d connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x0000008d connection.go:479] -> OK () fuse_debug: Op 0x0000008e connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x0000008e connection.go:479] -> OK () fuse_debug: Op 0x0000008f connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x0000008f connection.go:479] -> OK () fuse_debug: Op 0x00000090 connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x00000090 connection.go:479] -> OK () fuse_debug: Op 0x00000091 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x29: <- ListObjects() gcs: Req 0x29: -> ListObjects() (240.278966ms): OK fuse_debug: Op 0x00000091 connection.go:479] -> OK () fuse_debug: Op 0x00000092 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x00000092 connection.go:479] -> OK () fuse_debug: Op 0x00000093 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x00000093 connection.go:479] -> OK () fuse_debug: Op 0x00000094 connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x00000094 connection.go:479] -> OK () fuse_debug: Op 0x00000095 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x2a: <- ListObjects() gcs: Req 0x2a: -> ListObjects() (237.682629ms): OK fuse_debug: Op 0x00000095 connection.go:479] -> OK () fuse_debug: Op 0x00000096 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x00000096 connection.go:479] -> OK () fuse_debug: Op 0x00000097 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x00000097 connection.go:479] -> OK () fuse_debug: Op 0x00000098 connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x00000098 connection.go:479] -> OK () fuse_debug: Op 0x00000099 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x2b: <- ListObjects() gcs: Req 0x2b: -> ListObjects() (261.406961ms): OK fuse_debug: Op 0x00000099 connection.go:479] -> OK () fuse_debug: Op 0x0000009a connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x0000009a connection.go:479] -> OK () fuse_debug: Op 0x0000009b connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x0000009b connection.go:479] -> OK () fuse_debug: Op 0x0000009c connection.go:396] <- LookUpInode (parent 1, name "train") gcs: Req 0x2c: <- ListObjects() gcs: Req 0x2d: <- StatObject("train/") gcs: Req 0x2e: <- StatObject("train") gcs: Req 0x2c: -> ListObjects() (193.257394ms): OK gcs: Req 0x2d: -> StatObject("train/") (193.310037ms): gcs.NotFoundError: googleapi: Error 404: No such object: kaggle-211019/train/, notFound gcs: Req 0x2e: -> StatObject("train") (195.260817ms): gcs.NotFoundError: googleapi: Error 404: No such object: kaggle-211019/train, notFound fuse_debug: Op 0x0000009c connection.go:481] -> Error: "no such file or directory" fuse_debug: Op 0x0000009d connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x0000009d connection.go:479] -> OK () fuse_debug: Op 0x0000009e connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x0000009e connection.go:479] -> OK () fuse_debug: Op 0x0000009f connection.go:396] <- ReadDir (inode 1) gcs: Req 0x2f: <- ListObjects() gcs: Req 0x2f: -> ListObjects() (177.150127ms): OK fuse_debug: Op 0x0000009f connection.go:479] -> OK () fuse_debug: Op 0x000000a0 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x000000a0 connection.go:479] -> OK () fuse_debug: Op 0x000000a1 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x000000a1 connection.go:479] -> OK () fuse_debug: Op 0x000000a2 connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x000000a2 connection.go:479] -> OK () fuse_debug: Op 0x000000a3 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x30: <- ListObjects() gcs: Req 0x30: -> ListObjects() (212.356784ms): OK fuse_debug: Op 0x000000a3 connection.go:479] -> OK () fuse_debug: Op 0x000000a4 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x000000a4 connection.go:479] -> OK () fuse_debug: Op 0x000000a5 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x000000a5 connection.go:479] -> OK () fuse_debug: Op 0x000000a6 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x000000a6 connection.go:479] -> OK () 2018/08/16 02:46:12.648996 Starting a garbage collection run. gcs: Req 0x31: <- ListObjects() gcs: Req 0x31: -> ListObjects() (194.435345ms): OK 2018/08/16 02:46:12.843780 Garbage collection succeeded after deleted 0 objects in 194.727808ms. fuse_debug: Op 0x000000a7 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x000000a7 connection.go:479] -> OK () fuse_debug: Op 0x000000a8 connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x000000a8 connection.go:479] -> OK () fuse_debug: Op 0x000000a9 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x32: <- ListObjects() gcs: Req 0x32: -> ListObjects() (220.853617ms): OK fuse_debug: Op 0x000000a9 connection.go:479] -> OK () fuse_debug: Op 0x000000aa connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x000000aa connection.go:479] -> OK () fuse_debug: Op 0x000000ab connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x000000ab connection.go:479] -> OK () fuse_debug: Op 0x000000ac connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x000000ac connection.go:479] -> OK () fuse_debug: Op 0x000000ad connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x000000ad connection.go:479] -> OK () fuse_debug: Op 0x000000ae connection.go:396] <- ReadDir (inode 1) gcs: Req 0x33: <- ListObjects() gcs: Req 0x33: -> ListObjects() (203.603566ms): OK fuse_debug: Op 0x000000ae connection.go:479] -> OK () fuse_debug: Op 0x000000af connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x000000af connection.go:479] -> OK () fuse_debug: Op 0x000000b0 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x000000b0 connection.go:479] -> OK () fuse_debug: Op 0x000000b1 connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x000000b1 connection.go:479] -> OK () fuse_debug: Op 0x000000b2 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x34: <- ListObjects() gcs: Req 0x34: -> ListObjects() (130.69475ms): OK fuse_debug: Op 0x000000b2 connection.go:479] -> OK () fuse_debug: Op 0x000000b3 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x000000b3 connection.go:479] -> OK () fuse_debug: Op 0x000000b4 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x000000b4 connection.go:479] -> OK () fuse_debug: Op 0x000000b5 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x000000b5 connection.go:479] -> OK () fuse_debug: Op 0x000000b6 connection.go:396] <- LookUpInode (parent 1, name " ") gcs: Req 0x35: <- ListObjects() gcs: Req 0x36: <- StatObject(" /") gcs: Req 0x37: <- StatObject(" ") gcs: Req 0x35: -> ListObjects() (158.199225ms): OK gcs: Req 0x37: -> StatObject(" ") (158.002763ms): gcs.NotFoundError: googleapi: Error 404: No such object: kaggle-211019/ , notFound gcs: Req 0x36: -> StatObject(" /") (159.323799ms): gcs.NotFoundError: googleapi: Error 404: No such object: kaggle-211019/ /, notFound fuse_debug: Op 0x000000b6 connection.go:481] -> Error: "no such file or directory" fuse_debug: Op 0x000000b7 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x000000b7 connection.go:479] -> OK () fuse_debug: Op 0x000000b8 connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x000000b8 connection.go:479] -> OK () fuse_debug: Op 0x000000b9 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x38: <- ListObjects() gcs: Req 0x38: -> ListObjects() (178.266368ms): OK fuse_debug: Op 0x000000b9 connection.go:479] -> OK () fuse_debug: Op 0x000000ba connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x000000ba connection.go:479] -> OK () fuse_debug: Op 0x000000bb connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x000000bb connection.go:479] -> OK () fuse_debug: Op 0x000000bc connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x000000bc connection.go:479] -> OK () fuse_debug: Op 0x000000bd connection.go:396] <- ReadDir (inode 1) gcs: Req 0x39: <- ListObjects() gcs: Req 0x39: -> ListObjects() (173.854827ms): OK fuse_debug: Op 0x000000bd connection.go:479] -> OK () fuse_debug: Op 0x000000be connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x000000be connection.go:479] -> OK () fuse_debug: Op 0x000000bf connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x000000bf connection.go:479] -> OK () fuse_debug: Op 0x000000c0 connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x000000c0 connection.go:479] -> OK () fuse_debug: Op 0x000000c1 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x3a: <- ListObjects() gcs: Req 0x3a: -> ListObjects() (139.687659ms): OK fuse_debug: Op 0x000000c1 connection.go:479] -> OK () fuse_debug: Op 0x000000c2 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x000000c2 connection.go:479] -> OK () 2018/08/16 02:56:12.649048 Starting a garbage collection run. gcs: Req 0x3b: <- ListObjects() gcs: Req 0x3b: -> ListObjects() (189.145222ms): OK 2018/08/16 02:56:12.838465 Garbage collection succeeded after deleted 0 objects in 189.363166ms. fuse_debug: Op 0x000000c3 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x000000c3 connection.go:479] -> OK () fuse_debug: Op 0x000000c4 connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x000000c4 connection.go:479] -> OK () fuse_debug: Op 0x000000c5 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x3c: <- ListObjects() gcs: Req 0x3c: -> ListObjects() (202.906841ms): OK fuse_debug: Op 0x000000c5 connection.go:479] -> OK () fuse_debug: Op 0x000000c6 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x000000c6 connection.go:479] -> OK () 2018/08/16 03:06:12.649009 Starting a garbage collection run. gcs: Req 0x3d: <- ListObjects() gcs: Req 0x3d: -> ListObjects() (189.99455ms): OK 2018/08/16 03:06:12.839386 Garbage collection succeeded after deleted 0 objects in 190.322705ms. fuse_debug: Op 0x000000c7 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x000000c7 connection.go:479] -> OK () fuse_debug: Op 0x000000c8 connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x000000c8 connection.go:479] -> OK () fuse_debug: Op 0x000000c9 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x3e: <- ListObjects() gcs: Req 0x3e: -> ListObjects() (118.358038ms): OK fuse_debug: Op 0x000000c9 connection.go:479] -> OK () fuse_debug: Op 0x000000ca connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x000000ca connection.go:479] -> OK () fuse_debug: Op 0x000000cb connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x000000cb connection.go:479] -> OK () fuse_debug: Op 0x000000cc connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x000000cc connection.go:479] -> OK () fuse_debug: Op 0x000000cd connection.go:396] <- ReadDir (inode 1) gcs: Req 0x3f: <- ListObjects() gcs: Req 0x3f: -> ListObjects() (194.145877ms): OK fuse_debug: Op 0x000000cd connection.go:479] -> OK () fuse_debug: Op 0x000000ce connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x000000ce connection.go:479] -> OK () fuse_debug: Op 0x000000cf connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x000000cf connection.go:479] -> OK () fuse_debug: Op 0x000000d0 connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x000000d0 connection.go:479] -> OK () fuse_debug: Op 0x000000d1 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x40: <- ListObjects() gcs: Req 0x40: -> ListObjects() (117.604505ms): OK fuse_debug: Op 0x000000d1 connection.go:479] -> OK () fuse_debug: Op 0x000000d2 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x000000d2 connection.go:479] -> OK () fuse_debug: Op 0x000000d3 connection.go:396] <- GetInodeAttributes (inode 1) fuse_debug: Op 0x000000d3 connection.go:479] -> OK () fuse_debug: Op 0x000000d4 connection.go:396] <- OpenDir (inode 1) fuse_debug: Op 0x000000d4 connection.go:479] -> OK () fuse_debug: Op 0x000000d5 connection.go:396] <- ReadDir (inode 1) gcs: Req 0x41: <- ListObjects() gcs: Req 0x41: -> ListObjects() (146.12608ms): OK fuse_debug: Op 0x000000d5 connection.go:479] -> OK () fuse_debug: Op 0x000000d6 connection.go:396] <- ReleaseDirHandle fuse_debug: Op 0x000000d6 connection.go:479] -> OK () ```

FYI my GCS tree (~600GB) looks like:

/bucket_name
     /" " (accidentally named a folder a space bar)
          /train
               image1.jpg
               image2.jpg
               ....

          /validation
               image3.jpg
               image4.jpg
               ....

          /test
               image5.jpg
               image6.jpg
               ....

Not sure if this is a bug or if I missed something. Thanks for the help!!

christophenoel commented 5 years ago

Hi,

Indeed, when mounting the Sentinel-2 bucket (https://cloud.google.com/storage/docs/public-datasets/sentinel-2) from GCP, I first get some Input/output errors (for example using the ls command), then after some tries, I finally get the directory list to be displayed.

Looking at the log, it seems that there is kind of a protection activated by google.

fuse_debug: Op 0x0000003b        connection.go:481] -> Error: "LookUpChild: statObjectMayNotExist: StatObject: googleapi: got HTTP response code 503 with body: <html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/><title>Sorry...</title><style> body { font-family: verdana, arial, sans-serif; background-color: #fff; color: #000; }</style></head><body><div><table><tr><td><b><font face=sans-serif size=10><font color=#4285f4>G</font><font color=#ea4335>o</font><font color=#fbbc05>o</font><font color=#4285f4>g</font><font color=#34a853>l</font><font color=#ea4335>e</font></font></b></td><td style=\"text-align: left; vertical-align: bottom; padding-bottom: 15px; width: 50%\"><div style=\"border-bottom: 1px solid #dfdfdf;\">Sorry...</div></td></tr></table></div><div style=\"margin-left: 4em;\"><h1>We're sorry...</h1><p>... but your computer or network may be sending automated queries. To protect our users, we can't process your request right now.</p></div><div style=\"margin-left: 4em;\">See <a href=\"https://support.google.com/websearch/answer/86640\">Google Help</a> for more information.<br/><br/></div><div style=\"text-align: center; border-top: 1px solid #dfdfdf;\"><a href=\"https://www.google.com\">Google Home</a></div></body></html>"
fuse: 2019/04/02 13:40:06.295193 *fuseops.LookUpInodeOp error: LookUpChild: statObjectMayNotExist: StatObject: googleapi: got HTTP response code 503 with body: <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"/><title>Sorry...</title><style> body { font-family: verdana, arial, sans-serif; background-color: #fff; color: #000; }</style></head><body><div><table><tr><td><b><font face=sans-serif size=10><font color=#4285f4>G</font><font color=#ea4335>o</font><font color=#fbbc05>o</font><font color=#4285f4>g</font><font color=#34a853>l</font><font color=#ea4335>e</font></font></b></td><td style="text-align: left; vertical-align: bottom; padding-bottom: 15px; width: 50%"><div style="border-bottom: 1px solid #dfdfdf;">Sorry...</div></td></tr></table></div><div style="margin-left: 4em;"><h1>We're sorry...</h1><p>... but your computer or network may be sending automated queries. To protect our users, we can't process your request right now.</p></div><div style="margin-left: 4em;">See <a href="https://support.google.com/websearch/answer/86640">Google Help</a> for more information.<br/><br/></div><div style="text-align: center; border-top: 1px solid #dfdfdf;"><a href="https://www.google.com">Google Home</a></div></body></html>
avidullu commented 2 years ago

gcs-bucket-sentinel-2

gcsfuse-mount-sentinel-2

Please find the above two screenshots indicating that the mounting does indeed work and shows the folder structure exactly as in the pantheon. Closing this out for now. Feel free to reopen with latest logs as a new issue and will be happy to take a look.

Thanks for helping the project!