Skip site navigation (1)Skip section navigation (2)
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>