geesefs icon indicating copy to clipboard operation
geesefs copied to clipboard

geesefs 0.38.3 crash

Open enp opened this issue 6 months ago • 5 comments

Install with helm install --namespace s3 --set secret.accessKey=<...> --set secret.secretKey=<..> csi-s3 yandex-s3/csi-s3 in yandex managed kubernetes + yandex object storage with default options

Works in simple cases but crashes on parallel write processes sometimes (can't reproduce every time) with error:

2023/12/22 10:23:10.105051 s3.WARNING Conflict detected (inode 437): failed to copy xyz/release to xyz/release.old: NotFound: Not Found
        status code: 404, request id: cd903bcf4d54ff5c, host id: . File is removed remotely, dropping cache
panic: xyz.removeName(release.old) but child not found: 5
goroutine 79859 [running]:
github.com/yandex-cloud/geesefs/internal.(*Inode).removeChildUnlocked(0xc000928000, 0xc0030e9000)
        /home/runner/work/geesefs/geesefs/internal/dir.go:983 +0x45f
github.com/yandex-cloud/geesefs/internal.(*Inode).SendUpload.func1()
        /home/runner/work/geesefs/geesefs/internal/file.go:1364 +0x4ef
created by github.com/yandex-cloud/geesefs/internal.(*Inode).SendUpload
        /home/runner/work/geesefs/geesefs/internal/file.go:1330 +0x38d
geesefs-enp_2dstorage.service: Main process exited, code=exited, status=2/INVALIDARGUMENT

Found error string in code - https://github.com/yandex-cloud/geesefs/blob/v0.38.3/internal/dir.go#L983 - so what this case means why geesefs should crash?

More general question: how other cases with panic as result should be processed by end user if occurred?

enp avatar Dec 27 '23 05:12 enp