[lkml]   [1996]   [Nov]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Patch in this message
SubjectIndeed 10 minutes later

[Cc: Linus, Linux-kernel and Linux-net etc for folks to test this]

I think I see, and why only apache gets it. Its this

[if my theory is right]

Apache #1 - accept,
(during accept) INTERRUPT
SYN arrives
Create a new socket off the listening socket
queue it

Now in that time window newsk->users gets memcpy'd as one. So if you
hit it hard enough and fast enough [ie WWW] it gets stuck. Worse still
apache has several people doing accepts() making the window much easier
to hit

Try this if you are getting the apache funnies

--- tcp_input.c~ Tue Nov 26 22:06:36 1996
+++ tcp_input.c Wed Nov 27 21:39:28 1996
@@ -501,6 +501,7 @@
newsk->retransmit_timer.function = tcp_retransmit_timer;
newsk->dummy_th.source = skb->>dest;
newsk->dummy_th.dest = skb->>source;
+ newsk->users=0;


Alan Cox, Technical Director, CymruNET Ltd: Email:
-------- ---------- Phone: +44 1792 290194
Internet/Intranet Solutions, ISDN, Leased Lines, Consultancy and Support

 \ /
  Last update: 2005-03-22 13:38    [W:0.027 / U:1.372 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site