Locking, notify collisions using CTDB on non-clustered share?

Jeremy Allison jra at samba.org
Mon Apr 23 20:13:20 UTC 2018


On Sat, Apr 14, 2018 at 08:10:48PM -0500, Christopher R. Hertel via samba-technical wrote:
> So...
> 
> The vfs_fileid module helps.  I'm using the fsid algorithm and that has
> resolved several of the errors that were being generated.
> 
> ...but not all of them.  I have found that I also need to change the share
> path so that the non-clustered shares each have different paths.
> 
> For example:
> 
> Node | ShareName | Path
>  1   | EXT4-1    | /mnt/ext4/sambaShare
>  2   | EXT4-2    | /mnt/ext4/sambaShare
> 
> With that setup, when I run the smb2.notify torture test, I get errors like
> this:
>   ERROR: nchanges=1 action=2 expectedAction=3 filter=0x00000020
> and this:
>   (../source4/torture/smb2/notify.c:437) wrong value for
> notify.smb2.out.num_changes  0x14 should be 0x9
> 
> These are generated when I run smbtorture against both shares _at the same
> time_.  There is a certain randomness involved, of course, but these or
> similar errors are generated quite reliably with this configuration.
> 
> All I have to do is change the paths to:
> 
> Node | ShareName | Path
>  1   | Node-1    | /mnt/ext4/sambaShare-1
>  2   | Node-2    | /mnt/ext4/sambaShare-2
> 
> (...making sure, of course, that those directories exist).  Now the errors
> magically disappear.  (Well, there are some "change_time not setup" but
> these also occur on a non-clustered, single instance server so I assume that
> they are "normal").
> 
> So it seems that the lookup key for Change Notify events is the full local
> pathname, not dev/inode.

Yes, that's true. ChangeNotify is pathname based, not inode based.



More information about the samba-technical mailing list