Subject: Re: 2.6.32.66 tcp regression OOPs

From: Willy Tarreau <[email-masked]>
Date: Mon, 1 Jun 2015 09:49:22 +0200

Hi,

On Mon, Jun 01, 2015 at 09:00:21AM +0200, Frans Klaver wrote:
> [cc: Willy Tarreau]
> 
> On Mon, Jun 1, 2015 at 3:26 AM,  <[email-masked]> wrote:
> > Hello,
> >
> > Apoligies if I have submitted to the wrong lists.
> >
> > Encountered a regression in
> > 2.6.32.66 relative to 2.6.32.65.
> >
> > Crash eight minutes after boot.
> >
> > Will responded with additional details
> > if the OOPS is not sufficent.
> >
> > Best Regards
> >
> 
> Did you bisect it?

Eric Dumazet notified me that of something possibly similar due to
a mistake I made when backporting a fix by hand.

Please apply the following patch to see if it fixes the problem :

diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c                      
index 5339f066234b..d1e2895bb63c 100644                                         
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -2136,7 +2136,7 @@ void tcp_send_fin(struct sock *sk)
	 */
	if (tskb && (tcp_send_head(sk) || tcp_memory_pressure)) {
 coalesce:
-		TCP_SKB_CB(skb)->flags |= TCPCB_FLAG_FIN;
+		TCP_SKB_CB(tskb)->flags |= TCPCB_FLAG_FIN;
		TCP_SKB_CB(tskb)->end_seq++;
		tp->write_seq++;
	if (!tcp_send_head(sk)) {

Thanks,
Willy