Re: 2.6.9-rc1+bk: assertion tcp_get_pcount failed at net/ipv4/tcp_input.c

From: Herbert Xu
Date: Thu Sep 09 2004 - 22:40:04 EST


On Thu, Sep 09, 2004 at 11:12:33AM +0000, Alex Riesen wrote:
> The box froze after being left for some time (some 10 hours) unattended.
> The only thing in I could find in logs was:
>
> Sep 8 22:30:18 steel kernel: KERNEL: assertion ((int)tcp_get_pcount(&tp->lost_out) >= 0) failed at net/ipv4/tcp_input.c (2422)
> Sep 8 22:30:18 steel kernel: Leak l=4294967295 4

Looks like the factor isn't set early enough. Can you please check
that you had the changeset titled

[TCP]: Make sure SKB tso factor is setup early enough.

from davem?

If you did, then please apply the following patch and tell us what
the resulting messages.
--
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
===== include/net/tcp.h 1.87 vs edited =====
--- 1.87/include/net/tcp.h 2004-09-10 01:51:02 +10:00
+++ edited/include/net/tcp.h 2004-09-10 13:24:25 +10:00
@@ -30,6 +30,7 @@
#include <linux/slab.h>
#include <linux/cache.h>
#include <linux/percpu.h>
+#include <linux/rtnetlink.h>
#include <net/checksum.h>
#include <net/sock.h>
#include <net/snmp.h>
@@ -1195,6 +1196,7 @@
*/
static inline int tcp_skb_pcount(struct sk_buff *skb)
{
+ BUG_TRAP(TCP_SKB_CB(skb)->tso_factor);
return TCP_SKB_CB(skb)->tso_factor;
}