Re: assertion (cnt <= tp->packets_out) failed

From: Herbert Xu
Date: Sun Aug 07 2005 - 07:03:05 EST


On Sat, Aug 06, 2005 at 02:06:53PM +0200, John B?ckstrand wrote:
>
> Yes, I have no other patches in, so if it was not in -RC5, I was not
> running it.

OK having looked at it briefly I have a hunch that it may be the
fackets_out issue (when the effective MSS is reduced tcp_tso_acked
may increase fackets_out) I referred to in another thread.

However, I'd like to be more certain as to whether this is the
cause before we do anything. So please apply this patch and
attempt to reproduce the problem. It should give us more info
which may help in pin-pointing the problem.

Thanks,
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -1474,6 +1474,10 @@ static void tcp_mark_head_lost(struct so
int cnt = packets;

BUG_TRAP(cnt <= tp->packets_out);
+ if (unlikely(cnt <= tp->packets_out)) {
+ printk("packets_out = %d, fackets_out = %d, reordering = %d, sack_ok = 0x%x, mss_cache=%d\n", tp->packets_out, tp->fackets_out, tp->reordering, tp->rx_opt.sack_ok, tp->mss_cache);
+ dump_stack();
+ }

sk_stream_for_retrans_queue(skb, sk) {
cnt -= tcp_skb_pcount(skb);