NFS shares broken by Snapshots

I just finished a fresh install yesterday and created several shares and set up an hourly snapshot task on one to test out the snapshot system. It was creating the snapshots fine, but I started noticing errors when I tried to change my NFS shares.

            Traceback (most recent call last):
  File "/opt/rockstor/src/rockstor/storageadmin/views/nfs_exports.py", line 138, in refresh_wrapper
    refresh_nfs_exports(exports)
  File "/opt/rockstor/src/rockstor/system/osi.py", line 580, in refresh_nfs_exports
    bind_mount(exports[e][0]['mnt_pt'], e)
  File "/opt/rockstor/src/rockstor/system/osi.py", line 552, in bind_mount
    return run_command([MOUNT, '--bind', mnt_pt, export_pt])
  File "/opt/rockstor/src/rockstor/system/osi.py", line 115, in run_command
    raise CommandException(cmd, out, err, rc)
CommandException: Error running a command. cmd = /bin/mount --bind /mnt2/books/.books_201811020900 /export/books/.books_201811020900. rc = 32. stdout = ['']. stderr = ['mount: special device /mnt2/books/.books_201811020900 does not exist', '']

I could not delete the snapshots through the GUI and ended up using SSH into the box and deleting them manually through the terminal commands (btrfs subvolume delete <share>).

I have since rebooted the system and tried to delete the offending NFS share with no luck.

            Traceback (most recent call last):
  File "/opt/rockstor/src/rockstor/rest_framework_custom/generic_view.py", line 41, in _handle_exception
    yield
  File "/opt/rockstor/src/rockstor/storageadmin/views/nfs_exports.py", line 206, in delete
    nfs4_mount_teardown(export_pt)
  File "/opt/rockstor/src/rockstor/system/osi.py", line 544, in nfs4_mount_teardown
    run_command([RMDIR, export_pt])
  File "/opt/rockstor/src/rockstor/system/osi.py", line 115, in run_command
    raise CommandException(cmd, out, err, rc)
CommandException: Error running a command. cmd = /bin/rmdir /export/books. rc = 1. stdout = ['']. stderr = ['/bin/rmdir: failed to remove \xe2\x80\x98/export/books\xe2\x80\x99: Directory not empty', '']

If I open the advanced edit, this is what my exports look like:

/export/music 192.168.0.0/16(rw,async,insecure)
/export/books/.books_201811020900 192.168.0.0/16(rw,async,insecure)
/export/books/.books_201811021200 192.168.0.0/16(rw,async,insecure)
/export/books/.books_201811021900 192.168.0.0/16(rw,async,insecure)
/export/books/.books_201811021600 192.168.0.0/16(rw,async,insecure)
/export/books/.books_201811021700 192.168.0.0/16(rw,async,insecure)
/export/books/.books_201811021300 192.168.0.0/16(rw,async,insecure)
/export/books/.books_201811021400 192.168.0.0/16(rw,async,insecure)
/export/tv 192.168.0.0/16(rw,async,insecure)
/export/movies 192.168.0.0/16(rw,async,insecure)
/export/downloads 192.168.0.0/16(rw,async,insecure)
/export/books/.books_201811021000 192.168.0.0/16(rw,async,insecure)
/export/books/.books_201811021500 192.168.0.0/16(rw,async,insecure)
/export/books/.books_201811021800 192.168.0.0/16(rw,async,insecure)
/export/books/.books_201811021100 192.168.0.0/16(rw,async,insecure)
/export/books 192.168.0.0/16(rw,async,insecure)

All of the “.books_” snapshots have been deleted from the system, but I cannot remove the shares. I have even edited the /etc/exports (below) but the snapshots still show up in the NFS GUI after a reboot and if I mount the exports, I don’t see any data in the shares.

/export/music 192.168.0.0/16(rw,async,insecure) 
/export/tv 192.168.0.0/16(rw,async,insecure) 
/export/movies 192.168.0.0/16(rw,async,insecure) 
/export/downloads 192.168.0.0/16(rw,async,insecure) 
/export/books 192.168.0.0/16(rw,async,insecure)

Is there any way to remove the non-existent folders from the auto-exports? Is there a fix to see the files in the NFS shares when I connect to them? I would prefer not to use Samba on my linux system because some of the applications I use want traditional mount points and not just Samba links.

I can confirm, that snapshots are messing up the NFS shares.
I don’t know if it’s intended that like from the ts stated that the snapshots get included automatically.
Nevertheless there is a second flaw, that after a reboot the mount binds to /export/folder don’t get created, so you have to do them manually through terminal. (could be the problem why your folders seem to be empty, just check the mounts if they are present at all)