hanwen / go-fuse

FUSE bindings for Go
Other
1.97k stars 313 forks source link

Compatibility issue: Older fuse-go vs. Linux 5.10 #490

Closed cuonghuutran closed 8 months ago

cuonghuutran commented 9 months ago

Hi, we have legacy app that uses go-fuse 2016 version (sorry, I don't know exactly the version). This app ran fine on Linux 5.4 but failed on Linux 5.10 as reading a Fuse file system would return errors. Errors were returned only at intense workload, i.e., high concurrency of reading 600+ files, some very large.

It seemed like this was a compability issue with Linux version. If so, which go-fuse version that we should upgrade to. Many thanks for your help.

hanwen commented 9 months ago

Can you say more about what kind of errors you were seeing?

cuonghuutran commented 8 months ago

Thanks for following up Hanwen. We saw EIO errors when opening, closing, and reading files on Linux 5.10 but not on 5.4. Problems were intermittent. Our executable was 64-bit.

We saw that go-fuse also returns EIO in some scenarios, i.e., incomplete reads, but it's unclear if go-fuse, not Linux, returns EIO for open and close. Pls let us know what else you would like to see.

cuonghuutran commented 8 months ago

Golang race detector did not find anything (but erorrs happened). We upgraded to API V1.0 and the issue went away. So the issue might be compatibility of older API with the newer Linux kernel. Just curious if you aware of such issue.

hanwen commented 8 months ago

there may have been bugs fixed between 2016 and now, but it's hard to say what is going on without more diagnostics.