[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20070329230917.63c3f79c.akpm@linux-foundation.org>
Date: Thu, 29 Mar 2007 23:09:17 -0700
From: Andrew Morton <akpm@...ux-foundation.org>
To: netdev@...r.kernel.org
Cc: "David S. Miller" <davem@...emloft.net>
Subject: tcp crash in net-2.6 tree
Full -mm lineup. The x86_64 box was acting as a distcc server at the time.
Nothing hit the logs, I'm afraid. But almost all the info is in
http://userweb.kernel.org/~akpm/s5000494.jpg
<pokes around in gdb a bit>
It died in tcp_update_scoreboard_fack() here:
if ((!IsFack(tp) || !tcp_skb_timedout(sk, skb)) &&
after(TCP_SKB_CB(skb)->seq, tp->high_seq)) {
/* RFC: should we have find_below? */
skb = tcp_write_queue_find(sk, tp->high_seq);
not_marked_skb = skb;
skb = tcp_write_queue_prev(sk, skb);
/* Timedout top is again uncertain? */
if (tcp_skb_timedout(sk, skb))
timedout_continue = 1;
}
(gdb) l *0xffffffff8048ded8
0xffffffff8048ded8 is in tcp_update_scoreboard_fack (include/net/tcp.h:1197).
1192 return skb->next;
1193 }
1194
1195 static inline struct sk_buff *tcp_write_queue_prev(struct sock *sk, struct sk_buff *skb)
1196 {
1197 return skb->prev;
1198 }
1199
1200 #define tcp_for_write_queue(skb, sk) \
(gdb) x/10i 0xffffffff8048ded8
0xffffffff8048ded8 <tcp_update_scoreboard_fack+528>: mov 0x8(%rdx),%r12
So if that "CR2: 0000000000000008" is the access address then it appears that
`skb' is NULL. tcp_write_queue_find() didn't find nuthin.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists