Date: Sat, 14 Feb 2009 16:19:02 -0500 From: Joe Marcus Clarke <marcus@FreeBSD.org> To: Kostik Belousov <kostikbel@gmail.com> Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r188613 - head/sys/kern Message-ID: <1234646342.42927.100.camel@shumai.marcuscom.com> In-Reply-To: <20090214211624.GS2723@deviant.kiev.zoral.com.ua> References: <200902142112.n1ELCOJg030474@svn.freebsd.org> <20090214211624.GS2723@deviant.kiev.zoral.com.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
--=-jLw1QV6hEssTVeSFVuUz Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sat, 2009-02-14 at 23:16 +0200, Kostik Belousov wrote: > On Sat, Feb 14, 2009 at 09:12:24PM +0000, Joe Marcus Clarke wrote: > > Author: marcus (doc,ports committer) > > Date: Sat Feb 14 21:12:24 2009 > > New Revision: 188613 > > URL: http://svn.freebsd.org/changeset/base/188613 > >=20 > > Log: > > Change two KASSERTS to printfs and simple returns. Stress testing ha= s > > revealed that a process' current working directory can be VBAD if the > > directory is removed. This can trigger a panic when procstat -f PID = is > > run. > > =20 > > Tested by: pho > > Discovered by: phobot > > Reviewed by: kib > > Approved by: kib > >=20 > > Modified: > > head/sys/kern/kern_descrip.c > >=20 > > Modified: head/sys/kern/kern_descrip.c > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D > > --- head/sys/kern/kern_descrip.c Sat Feb 14 21:08:40 2009 (r188612) > > +++ head/sys/kern/kern_descrip.c Sat Feb 14 21:12:24 2009 (r188613) > > @@ -2532,7 +2532,12 @@ export_vnode_for_osysctl(struct vnode *v > > kif->kf_fd =3D type; > > kif->kf_type =3D KF_TYPE_VNODE; > > /* This function only handles directories. */ > > - KASSERT(vp->v_type =3D=3D VDIR, ("export_vnode_for_osysctl: vnode not= directory")); > > + if (vp->v_type !=3D VDIR) { > > + printf("export_vnode_for_osysctl: vnode not directory: %d\n", > > + vp->v_type); > > + vrele(vp); > > + return (ENOTDIR); > > + } > > kif->kf_vnode_type =3D KF_VTYPE_VDIR; > > =20 > > /* > > @@ -2779,7 +2784,12 @@ export_vnode_for_sysctl(struct vnode *vp > > kif->kf_fd =3D type; > > kif->kf_type =3D KF_TYPE_VNODE; > > /* This function only handles directories. */ > > - KASSERT(vp->v_type =3D=3D VDIR, ("export_vnode_for_sysctl: vnode not = directory")); > > + if (vp->v_type !=3D VDIR) { > > + printf("export_vnode_for_sysctl: vnode not directory: %d\n", > > + vp->v_type); > > + vrele(vp); > > + return (ENOTDIR); > > + } > > kif->kf_vnode_type =3D KF_VTYPE_VDIR; > > =20 > > /* > You are fast. Do we need these printf ? I thought about it. My first patch actually didn't have them. But I thought I'd leave them in to see how common this occurrence was in the wild. I'm not in love with them. If you think they should go, I'll pull them. Joe --=20 Joe Marcus Clarke FreeBSD GNOME Team :: gnome@FreeBSD.org FreeNode / #freebsd-gnome http://www.FreeBSD.org/gnome --=-jLw1QV6hEssTVeSFVuUz Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (FreeBSD) iEYEABECAAYFAkmXNUQACgkQb2iPiv4Uz4fX2ACgp3cCMXa7jTPhCsCEQKAAiI0G dqQAn3rHSXEOYDs4+ZODPY991hoe03sR =Wf79 -----END PGP SIGNATURE----- --=-jLw1QV6hEssTVeSFVuUz--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1234646342.42927.100.camel>