Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 25 Dec 2016 17:37:18 +0000 (UTC)
From:      Michael Tuexen <tuexen@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r310547 - head/sys/netinet
Message-ID:  <201612251737.uBPHbIhd027939@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: tuexen
Date: Sun Dec 25 17:37:18 2016
New Revision: 310547
URL: https://svnweb.freebsd.org/changeset/base/310547

Log:
  Remove a KASSERT which is not always true.
  
  In case of the empty queue tp->snd_holes and tcp_sackhole_insert()
  failing due to memory shortage, tp->snd_holes will be empty.
  This problem was hit when stress tests where performed by pho.
  
  PR:		215513
  Reported by:	pho
  Tested by:	pho
  Sponsored by:	Netflix, Inc.

Modified:
  head/sys/netinet/tcp_sack.c

Modified: head/sys/netinet/tcp_sack.c
==============================================================================
--- head/sys/netinet/tcp_sack.c	Sun Dec 25 17:01:58 2016	(r310546)
+++ head/sys/netinet/tcp_sack.c	Sun Dec 25 17:37:18 2016	(r310547)
@@ -470,9 +470,6 @@ tcp_sack_doack(struct tcpcb *tp, struct 
 		tp->snd_fack = sblkp->end;
 		sack_changed = 1;
 	}
-	/* We must have at least one SACK hole in scoreboard. */
-	KASSERT(!TAILQ_EMPTY(&tp->snd_holes),
-	    ("SACK scoreboard must not be empty"));
 	cur = TAILQ_LAST(&tp->snd_holes, sackhole_head); /* Last SACK hole. */
 	/*
 	 * Since the incoming sack blocks are sorted, we can process them



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