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

Most upvoted comments

@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

git pull
git checkout gofuse_v2api
./build.bash

in the git repo.

Got one:

cifs.reverse/u6tT_dcDrMxxuIYe7X0XbQ/CS_zRxKJxBOoyibUU6V3xw$ find -type f|wc -l
0

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

$ ls -R > /dev/null
ls: reading directory './exaZ9-h5hT_CuSEkijIV9g/3_uwsn7uKxiF-ppuGjslmg/z-zD5SNR2-B8XNWvWpalaykve0P_j-HfMmpW2XN22aQ': Interrupted system call
ls: reading directory './exaZ9-h5hT_CuSEkijIV9g/4f5e6MxSAHsThknKO5cEYw': Interrupted system call
ls: reading directory './exaZ9-h5hT_CuSEkijIV9g/QubRkUUV-e-_VorHidwKYg': Interrupted system call
[...]