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>