gocryptfs: CIFS throws EINTR and ENOENT errors
Hi
Maybe I am pushing the limits here but this is what I am doing. Basically I am using symlinks in a Samba folder where Samba allows following symlinks, so the mounting side thinks those are regular file system files and folders
I am doing this method because I can rsync the reversed mode folder over Ssh with much faster speeds compared to mounting remote folders.
-
Create a folder (/media/SharePlain) on PC-A
-
Add some symlinks to thios folder
-
Enable symlinks following in the Samba share settings
-
On another networked pc PC-B , mount this share (/mnt/SharePlain).
-
On PC-B use reverse mode to get the ecrypted version of the Samba share using
gocryptfs -reverse /mnt/SharePlain /mnt/ShareCipher
This seems to work but I get the error below, and not sure if this is a serious unstable situation or not. I definetely would want to use this is it will cause file corruption.
rsync: readdir("/media/CIPHER/xxxdO1_v0L7okPnUxxx_-A/xxxJ7Tymzt6vYP7PlQxxx/xxxw9BpChqTo2mYGpLaKxxx_xxxPm4eb0NyZbyGkxxx/xxxrlICrprrA2
Vhi-Lbxxx/xxxPxxx_xxxOT8pOcZdxxx"): Interrupted system call (4)
I also get another error
WARNING: xxxdO1_v0L7okPnUxxx_-A/x_xxxJ7Tymzt6vYP7PlQxxx/xxxs45X9Jvxxx__LBF0xxx failed verification -- update discarded (will try again)
another rsync complaint
rsync: read errors mapping
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Comments: 22 (15 by maintainers)
Commits related to this issue
- Add contrib/getdents Small tool to try to debug unix.Getdents problems on CIFS mounts https://github.com/rfjakob/gocryptfs/issues/483 — committed to rfjakob/gocryptfs by rfjakob 4 years ago
- syscallcompat: warn when Getdents truncates data On CIFS mounts, unix.Getdents can return sudden ENOENT in the middle of data. This will not be reported as an error by user space tools, so return EIO... — committed to rfjakob/gocryptfs by rfjakob 4 years ago
- Add contrib/getdents-debug/readdirnames Another way to repro the problem in https://github.com/rfjakob/gocryptfs/issues/483 — committed to rfjakob/gocryptfs by rfjakob 4 years ago
- getdents_c: read from two threads This was an attempt to make the C code more similar to Go (which also reads from multiple threads). However, I still could not repro the ENOENT problems. https://g... — committed to rfjakob/gocryptfs by rfjakob 4 years ago
- getdents_c: read from two threads This was an attempt to make the C code more similar to Go (which also reads from multiple threads). However, I still could not repro the ENOENT problems. https://g... — committed to rfjakob/gocryptfs by rfjakob 4 years ago
- syscallcompat: retry ops on EINTR Retry operations that have been shown to throw EINTR errors on CIFS. Todo: Solution for this pain in the back: warning: unix.Getdents returned errno 2 in the midd... — committed to rfjakob/gocryptfs by rfjakob 4 years ago
- syscallcompat: getdents: link to #483 Give a user receiving the Getdents warning some background info. — committed to rfjakob/gocryptfs by rfjakob 3 years ago
@NerdyProjects I just merged a fix into the gofuse_v2api branch (the current development branch). if you can try it, you’d just need to run
in the git repo.
Got one:
Yes I merged the fix yesterday as https://github.com/rfjakob/gocryptfs/commit/25f1727de9e5681a5ceefe1516a5a01fa4ca624a .
You can test by following the (short) instructions at https://github.com/rfjakob/gocryptfs#compile
Interesting. I can reproduce this.
smb server ------ network --------> cifs mount -> gocryptfs reverse mount