Goofys mounts of S3 are used for applications that require POSIX access to data in object storage.
Goofys performance is better thanb s3fs, but we see an issue that happens with goofys, and not with s3fs . It seems to occur when listing directories.
Without debugging enabled, this problem show up as hanging mounts, causing full executors to hang as well.
Nov 18 09:01:38 kube-node-dev-4.novalocal /usr/sbin/goofys[1554562]: buffer.DEBUG read 131072 from buffer
Nov 18 09:01:38 kube-node-dev-4.novalocal /usr/sbin/goofys[1554562]: fuse.DEBUG < readFile 95 Sentinel-1/SAR/GRD/2021/07/05/S1A_IW_GRDH_1SDV_20210705T053509_20210705T053534_038638_048F2B_76B1.SAFE/measurement/s1a-iw-grd-vv-20210705t053509-20210705t053534-038638-048f2b-001.tiff [131072 <nil>]
Nov 18 09:01:38 kube-node-dev-4.novalocal /usr/sbin/goofys[1554562]: fuse.DEBUG < ReadFile 95 Sentinel-1/SAR/GRD/2021/07/05/S1A_IW_GRDH_1SDV_20210705T053509_20210705T053534_038638_048F2B_76B1.SAFE/measurement/s1a-iw-grd-vv-20210705t053509-20210705t053534-038638-048f2b-001.tiff [131072 <nil>]
Nov 18 09:01:38 kube-node-dev-4.novalocal /usr/sbin/goofys[1554562]: fuse.DEBUG Op 0x00005ac0 connection.go:491] -> OK ()
Nov 18 09:01:38 kube-node-dev-4.novalocal /usr/sbin/goofys[1554562]: fuse.DEBUG Op 0x00005ac2 connection.go:408] <- ReadFile (inode 95, handle 51, offset 354975744, 131072 bytes)
Nov 18 09:01:44 kube-node-dev-4.novalocal systemd[1]: run-docker-runtime\x2drunc-moby-771e80d2e58581039a54032eae83da4face1959c03c31ef8ac25ccb3053b2cdb-runc.BpbQ2L.mount: Succeeded.
Nov 18 09:01:56 kube-node-dev-4.novalocal /usr/sbin/goofys[1554562]: main.ERROR stacktrace from panic: runtime error: slice bounds out of range [103:102]
goroutine 18563 [running]:
runtime/debug.Stack(0xc0003b9a68, 0xca7b20, 0xc02e0c2fc0)
/usr/local/go/src/runtime/debug/stack.go:24 +0x9d
github.com/kahing/goofys/api/common.LogPanic(0xc0003b9f18)
/home/kahing/go/src/github.com/kahing/goofys/api/common/panic_logger.go:32 +0x7c
panic(0xca7b20, 0xc02e0c2fc0)
/usr/local/go/src/runtime/panic.go:679 +0x1b2
github.com/kahing/goofys/internal.(*DirHandle).ReadDir(0xc02e031c40, 0x0, 0x0, 0x0, 0x0)
/home/kahing/go/src/github.com/kahing/goofys/internal/dir.go:483 +0xed9
github.com/kahing/goofys/internal.(*Goofys).ReadDir(0xc000230000, 0xeb5b00, 0xc02e11b3e0, 0xc02df6db00, 0x0, 0x0)
/home/kahing/go/src/github.com/kahing/goofys/internal/goofys.go:834 +0x235
github.com/kahing/goofys/api/common.FusePanicLogger.ReadDir(0xec7540, 0xc000230000, 0xeb5b00, 0xc02e11b3e0, 0xc02df6db00, 0x0, 0x0)
/home/kahing/go/src/github.com/kahing/goofys/api/common/panic_logger.go:101 +0xa0
github.com/kahing/goofys/vendor/github.com/jacobsa/fuse/fuseutil.(*fileSystemServer).handleOp(0xc000206860, 0xc0001ead00, 0xeb5b00, 0xc02e11b3e0, 0xbb6c40, 0xc02df6db00)
/home/kahing/go/src/github.com/kahing/goofys/vendor/github.com/jacobsa/fuse/fuseutil/file_system.go:182 +0xe16
created by github.com/kahing/goofys/vendor/github.com/jacobsa/fuse/fuseutil.(*fileSystemServer).ServeOps
/home/kahing/go/src/github.com/kahing/goofys/vendor/github.com/jacobsa/fuse/fuseutil/file_system.go:122 +0x1a0
Nov 18 09:01:56 kube-node-dev-4.novalocal /usr/sbin/goofys[1554562]: fuse.ERROR *fuseops.ReadDirOp error: input/output error
Goofys mounts of S3 are used for applications that require POSIX access to data in object storage.
Goofys performance is better thanb s3fs, but we see an issue that happens with goofys, and not with s3fs . It seems to occur when listing directories. Without debugging enabled, this problem show up as hanging mounts, causing full executors to hang as well.
This is the stack from orfeo toolbox:
Goofys also has open issues that point in a similar direction: https://github.com/kahing/goofys/issues/342
There's also forks that were apparently created to deal with issues in goofys: https://github.com/yandex-cloud/geesefs