Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 05 Dec 2014 10:19:01 -0500
From:      John Baldwin <jhb@freebsd.org>
To:        Mike Gelfand <Mike.Gelfand@logicnow.com>
Cc:        Konstantin Belousov <kostikbel@gmail.com>, "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org>, "hackers@freebsd.org" <hackers@freebsd.org>
Subject:   Re: [BUG] Getting path to program binary sometimes fails
Message-ID:  <2066750.N3TZpYSHCy@ralph.baldwin.cx>
In-Reply-To: <BC392D92-5DD4-4012-90D4-17C4BC1566CE@logicnow.com>
References:  <91809230-5E81-4A6E-BFD6-BE8815A06BB2@logicnow.com> <201411201125.30087.jhb@freebsd.org> <BC392D92-5DD4-4012-90D4-17C4BC1566CE@logicnow.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Friday, December 05, 2014 12:01:15 PM Mike Gelfand wrote:
> John,
>=20
> Sorry for late reply.
>=20
> On Nov 20, 2014, at 7:25 PM, John Baldwin <jhb@freebsd.org> wrote:
> >> Since you=E2=80=99re saying that current behavior is not a defect,=
 maybe
> >> documentation is wrong (incomplete, misleading) then? I will readi=
ly
> >> accept
> >> the =E2=80=9Cnot a defect=E2=80=9D explanation, but only if one wo=
uldn=E2=80=99t have to ask you
> >> every time this oddity is met. If this is the expected error condi=
tion,
> >> what should I do to get the path reliably? Should I retry (and how=
 many
> >> times)? You=E2=80=99re saying cache is being purged; does it mean =
that when I
> >> ask for path then cache is populated again? Does it guarantee then=
 that
> >> I=E2=80=99ll be able to get the path on next call? Could you guara=
ntee that I=E2=80=99ll
> >> be able to get the path at all if I fail two or more times? Should=
 I
> >> rely on ENOENT specifically when retrying?>=20
> > Is this over NFS?  NFS is more aggressive than local filesystems in=

> > purging
> > name cache entries because there are inherent races in NFS with cer=
tain
> > fileservers (ones that don't use sub-second timestamps), so by defa=
ult
> > entries always expire after about a minute.  You can change that vi=
a the
> > 'nametimeo' mount option (takes a count in seconds).
>=20
> No, not NFS but ZFS. Could that be an issue? The FreeBSD 8 machine I
> mentioned before has UFS.
>=20
> Also, as you can see from the video I recorded (and from the code I
> provided), path resolution succeeds and fails within fractions of a s=
econd
> after process startup.

Are you seeing vnodes being actively recycled?  In particular, do you s=
ee=20
vfs.numvnodes close to kern.maxvnodes?  You can try raising kern.maxvno=
des. =20
If vfs.numvnodes grows up to the limit then as long as you can stomach =
the RAM=20
of having more vnodes around that would increase the changes of your pa=
ths=20
remaining valid.

--=20
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2066750.N3TZpYSHCy>