Re: FS-Cache: Duplicate cookie detected

From: Christian Kujau
Date: Wed Mar 06 2019 - 12:56:21 EST

On Wed, 6 Mar 2019, David Howells wrote:
> I can reproduce a slightly different problem by setting off ~6000 parallel
> processes, each reading its own individual directory of files.

Ususually I only see it shortly after mount, and only once, but I too can
reproduce it with NFStest ([0], and there's a Fedora package too) via
"nfstest_cache --server $SERVER --client `hostname`", which then produces
a couple of these messages:

FS-Cache: Duplicate cookie detected
FS-Cache: O-cookie c=000000002fcc866b [p=00000000c10c6e18 fl=222 nc=0 na=1]
FS-Cache: O-cookie d=00000000d5ed73bb n=00000000076c9150
FS-Cache: O-key=[10] '040002000801c0a80073'
FS-Cache: N-cookie c=00000000e8d5dcd4 [p=00000000c10c6e18 fl=2 nc=0 na=1]
FS-Cache: N-cookie d=00000000d5ed73bb n=00000000a54e9705
FS-Cache: N-key=[10] '040002000801c0a80073'

...and the O-key does indeed seem to resemble the server address,

>>> s = "040002000801c0a80073";
>>> bytes = ["".join(x) for x in zip(*[iter(s)]*2)]; bytes = [int(x, 16) for x in bytes]; print ".".join(str(x) for x in reversed(bytes))

Mount options on that client are:

$ mount | grep nfs4
nfs:/usr/local/src on /usr/local/src type nfs4 (ro,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=,local_lock=none,addr= FS-Cache ("fsc") isn't even used here. The server in that scenario
is a current Fedora 29 installation.



> I also see reports like this:
> FS-Cache: Duplicate cookie detected
> FS-Cache: O-cookie c=00000000db33ad59 [p=000000004bc53500 fl=218 nc=0 na=0]
> FS-Cache: O-cookie d= (null) n= (null)
> FS-Cache: O-cookie o=000000006cf6db4f
> FS-Cache: O-key=[16] '0100010101000000e51fc6000323ae02'
> FS-Cache: N-cookie c=00000000791c49d0 [p=000000004bc53500 fl=2 nc=0 na=1]
> FS-Cache: N-cookie d=00000000e220fe14 n=00000000d4484489
> FS-Cache: N-key=[16] '0100010101000000e51fc6000323ae02'
> with no cookie def or netfs data and flags ACQUIRED, RELINQUISHED and
> INVALIDATING - which I can insert a wait for.
> David

BOFH excuse #420:

Feature was not beta tested