Date: Mon, 6 Mar 2017 19:08:41 -0800 From: "Ngie Cooper (yaneurabeya)" <yaneurabeya@gmail.com> To: Hiren Panchasara <hiren@FreeBSD.org> Cc: src-committers <src-committers@freebsd.org>, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r314813 - head/sys/kern Message-ID: <9747B513-8D23-487D-8FF9-721265C1CF44@gmail.com> In-Reply-To: <201703070020.v270K2vA039655@repo.freebsd.org> References: <201703070020.v270K2vA039655@repo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--Apple-Mail=_EC34DEF2-B0E7-49DF-9080-3BD8406A1988 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 > On Mar 6, 2017, at 16:20, Hiren Panchasara <hiren@FreeBSD.org> wrote: >=20 > Author: hiren > Date: Tue Mar 7 00:20:01 2017 > New Revision: 314813 > URL: https://svnweb.freebsd.org/changeset/base/314813 >=20 > Log: > We've found a recurring problem where some userland process would be > stuck spinning at 100% cpu around sbcut_internal(). Inside > sbflush_internal(), sb_ccc reached to about 4GB and before passing it > to sbcut_internal(), we type-cast it from uint to int making it -ve. >=20 > The root cause of sockbuf growing this large is unknown. Correct fix > is also not clear but based on mailing list discussions, adding > KASSERTs to panic instead of looping endlessly. >=20 > Reviewed by: glebius > Sponsored by: Limelight Networks >=20 > Modified: > head/sys/kern/uipc_sockbuf.c >=20 > Modified: head/sys/kern/uipc_sockbuf.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/uipc_sockbuf.c Tue Mar 7 00:13:53 2017 = (r314812) > +++ head/sys/kern/uipc_sockbuf.c Tue Mar 7 00:20:01 2017 = (r314813) > @@ -1043,6 +1043,11 @@ sbcut_internal(struct sockbuf *sb, int l > { > struct mbuf *m, *next, *mfree; >=20 > + KASSERT(len > 0, ("%s: len is %d but it is supposed to be +ve", > + __func__, len)); > + KASSERT(len <=3D sb->sb_ccc, ("%s: len: %d is > ccc: %u", > + __func__, len, sb->sb_ccc)); > + > next =3D (m =3D sb->sb_mb) ? m->m_nextpkt : 0; > mfree =3D NULL; The KASSERT is bad =E2=80=94 please fix it. =46rom = https://ci.freebsd.org/job/FreeBSD-head-amd64-test/1994/console : add host 127.0.0.1panic: sbcut_internal: len is 0 but it is supposed to = be +ve --Apple-Mail=_EC34DEF2-B0E7-49DF-9080-3BD8406A1988 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQIcBAEBCgAGBQJYviQ5AAoJEPWDqSZpMIYVeYUQALIxYiXbyF61wxGb1r7weTnV Sa3SIHJH5hB/V93SH6kBrRNySSn5wjIl189Y+monm/lf7klVrC4XKCLTMz3o+rOp EzPVQ8Ept2VZlh83T6jFOOsrLSXpla4la/duuE26EFKJKQ2x6aVG3U9JUeNOyQnB db4yPl8Sxzn9FdOR8O5KU5TCh7i3uABD+kjWVpio9afUSsuuZ/OdPeg5mkNlihSO XoZYENxuh6gYeet/6rM1Z13qGEE2/pY1qaIcXFJooapOG8cNH2sjixgGIZsmJ4nq HvuNiZzMIQD9MJ2Nr79M4Wjs1+PwlfNGUuCoKjtjouUTJCpMbIysmRezFf+5ywuF QWv9al5Nm3vaqZGnA5WTtbpp9NGFwa1dgxrStt6vbaGpaJ49WGh+XySvgAkcH7mu 7rvtFhyBDWkUWyaFKLpCHKRyTwSXQYVeu24k+wiRxgZfjYAj9fZxVZJdu8d8x4gR bArHETl0s/EoEiPM0BMFjajj2gOLoWdb7/EZyR6oZO0Eq4gIFlXXCbQtvBysjhxx S5NOdfmh6LBXluiogCr+dU3vuRNAvKJIaT7LNG7kB1uxjnDNg+3MTDehExuW6OEx Fpzmh/0qdLyDljBk5hrZasws9ia0ekZsGtWVb4w4vp1XrvanOeaaYpg2WZydX4dD 9x7o/8Kb2NGF1gDxYmsJ =uFEH -----END PGP SIGNATURE----- --Apple-Mail=_EC34DEF2-B0E7-49DF-9080-3BD8406A1988--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9747B513-8D23-487D-8FF9-721265C1CF44>