Adrian Revill wrote:> Hi
>
> I am having trouble with AFR, I have two servers set up to mirror, if
> I shut down either server and then copy a file into the client mount
> then restart the server I get a 0 size file on the newly started
> servers backing store. Which I guess is to be expected.
> But if i do a ls -lR I do not get the servers re-syncing, the only way
> I can get the servers to sync is to either touch the file, or read the
> contents.
>
> Has anyone else had a problem with ls -lR not triggering a sync?
Adrian,
To answer your questions raised in this and the other message:
1) You should never see a 0-byte file overwriting a non-zero-byte file.
You said that you only saw this once. Please report it if you see
it again.
2) The self-heal happens when a lookup() on the file is sent. A lookup
usually happens before any other operation on a file is done.
3) When you do an ls -lR the sync should happen, since ls will do a
stat on the file. I see that you have stat-prefetch loaded on the client
side. I
have a hunch that the not-syncing is due to the file's attributes
being cached either by the stat-prefetch translator or by the kernel
itself, resulting in lookup() not being sent.
Can you try without stat-prefetch?
Vikas