Obsolete:Squid 100 percent cpu headers problem

From Wikitech
This page contains historical information. It may be outdated or unreliable.
(gdb) bt
#0  httpHeaderGetEntry (hdr=0x2aaaf8a258a8, pos=0x7fffc793aeec) at HttpHeader.c:554
#1  0x000000000044838d in httpHeaderGetList (hdr=0x2aaaf8a258a8, id=HDR_CONNECTION) at HttpHeader.c:746
#2  0x000000000044ad9f in httpHeaderHasConnDir (hdr=0x2aaaf8a258a8, directive=0x4aec59 "keep-alive")
    at HttpHeaderTools.c:170
#3  0x000000000044b5c3 in httpReplyHdrCacheInit (rep=0x2aaaf8a25840) at HttpReply.c:363
#4  0x0000000000421f76 in clientHandleIMSReply (data=0x2aab79c63018, 
    buf=0x2aab79c63430 "HTTP/1.0 304 Not Modified\r\nDate: Fri, 12 Oct 2007 19:21:36 GMT\r\nContent-Type: image/png\r\nLast-Modified: Wed, 03 Oct 2007 17:42:05 GMT\r\nETag: \"591391015\"\r\nAge: 349\r\nX-Cache: HIT from sq4.wikimedia.org\r"..., 
    size=330) at client_side.c:1017
#5  0x0000000000472e44 in storeClientCallback (sc=0x2aab7d4d0198, sz=330) at store_client.c:146
#6  0x000000000047319f in storeClientCopy2 (e=0x11e111b8, sc=0x2aab7d4d0198) at store_client.c:321
#7  0x00000000004733bb in InvokeHandlers (e=0x11e111b8) at store_client.c:594
#8  0x000000000046edcc in storeBufferFlush (e=0x11e111b8) at store.c:1877
#9  0x0000000000442912 in httpAppendBody (httpState=0x1b41e018, buf=0x66b1aa "", len=0, buffer_filled=0) at http.c:711
#10 0x00000000004451f0 in httpReadReply (fd=438, data=<value optimized out>) at http.c:976
#11 0x0000000000428a02 in comm_select (msec=<value optimized out>) at comm_generic.c:264
#12 0x00000000004534f4 in main (argc=<value optimized out>, argv=0x7fffc793b328) at main.c:858
(gdb) frame 6
#6  0x000000000047319f in storeClientCopy2 (e=0x11e111b8, sc=0x2aab7d4d0198) at store_client.c:321
321     store_client.c: No such file or directory.
        in store_client.c
(gdb) print e
$37 = (StoreEntry *) 0x11e111b8
(gdb) print (StoreEntry *)e
$38 = (struct _StoreEntry *) 0x11e111b8
(gdb) print e->mem_obj
$39 = (MemObject *) 0x2aaaf57bfea0
(gdb) print e>mem_obj->url
No symbol "mem_obj" in current context.
(gdb) print e->mem_obj->url
$41 = 0x2aab8bf08700 "http://upload.wikimedia.org/wikipedia/commons/a/ab/Movie.png"

The request looks like:

HEAD http://upload.wikimedia.org/wikipedia/commons/a/ab/Movie.png HTTP/1.1
Host: upload.wikimedia.org
HTTP/1.1 200 OK
Content-Type: image/png
Accept-Ranges: bytes
ETag: "591391015"
Last-Modified: Wed, 03 Oct 2007 17:42:05 GMT
Content-Length: 18878
Date: Wed, 14 Nov 2007 22:27:04 GMT
Server: lighttpd/1.4.18

This seems to be triggered by massive concurrency on a single object. Apparently IE, when loading images from Javascript, can do multiple requests for the same object in parallel, or something, which can trigger this problem.

2007/11/19 18:19:49| httpHeaderUpdate: this is the old header:
2007/11/19 18:19:49| httpHeaderPrint: 0x145a090
2007/11/19 18:19:49|   (0): Date: Mon, 19 Nov 2007 09:24:03 GMT
2007/11/19 18:19:49|   (1): Server: Apache/1.3.33 (Debian GNU/Linux) PHP/4.3.10-22
2007/11/19 18:19:49|   (2): Last-Modified: Sun, 18 Nov 2007 15:06:47 GMT
2007/11/19 18:19:49|   (3): ETag: "16c020-44a-47405507"
2007/11/19 18:19:49|   (4): Accept-Ranges: bytes
2007/11/19 18:19:49|   (5): Content-Length: 1098
2007/11/19 18:19:49|   (6): Keep-Alive: timeout=15, max=100
2007/11/19 18:19:49|   (7): Connection: Keep-Alive
2007/11/19 18:19:49|   (8): Content-Type: text/x-csrc
2007/11/19 18:19:49| httpHeaderPrint: array size 9
2007/11/19 18:19:49| httpHeaderUpdate: this is the fresh header:
2007/11/19 18:19:49| httpHeaderPrint: 0x145a790
2007/11/19 18:19:49|   (0): Date: Mon, 19 Nov 2007 09:24:04 GMT
2007/11/19 18:19:49|   (1): Server: Apache/1.3.33 (Debian GNU/Linux) PHP/4.3.10-22
2007/11/19 18:19:49|   (2): Connection: Keep-Alive, Keep-Alive
2007/11/19 18:19:49|   (3): Keep-Alive: timeout=15, max=98
2007/11/19 18:19:49|   (4): ETag: "16c020-44a-47405507"
2007/11/19 18:19:49| httpHeaderPrint: array size 5
2007/11/19 18:19:49|   Considering: 0x145a090: (0): Date: Mon, 19 Nov 2007 09:24:04 GMT
2007/11/19 18:19:49|   Considering: 0x145a090: (1): Server: Apache/1.3.33 (Debian GNU/Linux) PHP/4.3.10-22
2007/11/19 18:19:49|   Considering: 0x145a090: (2): Connection: Keep-Alive, Keep-Alive
2007/11/19 18:19:49|   Considering: 0x145a090: (3): Keep-Alive: timeout=15, max=98
2007/11/19 18:19:49|   Considering: 0x145a090: (4): ETag: "16c020-44a-47405507"
2007/11/19 18:19:49| httpHeaderUpdate: 0x145a090: has 14 entries
2007/11/19 18:19:49| httpHeaderPrint: 0x145a090
2007/11/19 18:19:49|   (2): Last-Modified: Sun, 18 Nov 2007 15:06:47 GMT
2007/11/19 18:19:49|   (4): Accept-Ranges: bytes
2007/11/19 18:19:49|   (5): Content-Length: 1098
2007/11/19 18:19:49|   (8): Content-Type: text/x-csrc
2007/11/19 18:19:49|   (9): Date: Mon, 19 Nov 2007 09:24:04 GMT
2007/11/19 18:19:49|   (10): Server: Apache/1.3.33 (Debian GNU/Linux) PHP/4.3.10-22
2007/11/19 18:19:49|   (11): Connection: Keep-Alive, Keep-Alive
2007/11/19 18:19:49|   (12): Keep-Alive: timeout=15, max=98
2007/11/19 18:19:49|   (13): ETag: "16c020-44a-47405507"
2007/11/19 18:19:49| httpHeaderPrint: array size 14
2007/11/19 18:21:30| httpHeaderUpdate: this is the old header:
2007/11/19 18:21:30| httpHeaderPrint: 0x145a090
2007/11/19 18:21:30|   (2): Last-Modified: Sun, 18 Nov 2007 15:06:47 GMT
2007/11/19 18:21:30|   (4): Accept-Ranges: bytes
2007/11/19 18:21:30|   (5): Content-Length: 1098
2007/11/19 18:21:30|   (8): Content-Type: text/x-csrc
2007/11/19 18:21:30|   (9): Date: Mon, 19 Nov 2007 09:24:04 GMT
2007/11/19 18:21:30|   (10): Server: Apache/1.3.33 (Debian GNU/Linux) PHP/4.3.10-22
2007/11/19 18:21:30|   (11): Connection: Keep-Alive, Keep-Alive
2007/11/19 18:21:30|   (12): Keep-Alive: timeout=15, max=98
2007/11/19 18:21:30|   (13): ETag: "16c020-44a-47405507"
2007/11/19 18:21:30| httpHeaderPrint: array size 14
2007/11/19 18:21:30| httpHeaderUpdate: this is the fresh header:
2007/11/19 18:21:30| httpHeaderPrint: 0x145b300
2007/11/19 18:21:30|   (0): Date: Mon, 19 Nov 2007 09:25:45 GMT
2007/11/19 18:21:30|   (1): Server: Apache/1.3.33 (Debian GNU/Linux) PHP/4.3.10-22
2007/11/19 18:21:30|   (2): Connection: Keep-Alive, Keep-Alive
2007/11/19 18:21:30|   (3): Keep-Alive: timeout=15, max=99
2007/11/19 18:21:30|   (4): ETag: "16c020-44a-47405507"
2007/11/19 18:21:30| httpHeaderPrint: array size 5
2007/11/19 18:21:30|   Considering: 0x145a090: (0): Date: Mon, 19 Nov 2007 09:25:45 GMT
2007/11/19 18:21:30|   Considering: 0x145a090: (1): Server: Apache/1.3.33 (Debian GNU/Linux) PHP/4.3.10-22
2007/11/19 18:21:30|   Considering: 0x145a090: (2): Connection: Keep-Alive, Keep-Alive
2007/11/19 18:21:30|   Considering: 0x145a090: (3): Keep-Alive: timeout=15, max=99
2007/11/19 18:21:30|   Considering: 0x145a090: (4): ETag: "16c020-44a-47405507"
2007/11/19 18:21:30| httpHeaderUpdate: 0x145a090: has 19 entries
2007/11/19 18:21:30| httpHeaderPrint: 0x145a090
2007/11/19 18:21:30|   (2): Last-Modified: Sun, 18 Nov 2007 15:06:47 GMT
2007/11/19 18:21:30|   (4): Accept-Ranges: bytes
2007/11/19 18:21:30|   (5): Content-Length: 1098
2007/11/19 18:21:30|   (8): Content-Type: text/x-csrc
2007/11/19 18:21:30|   (14): Date: Mon, 19 Nov 2007 09:25:45 GMT
2007/11/19 18:21:30|   (15): Server: Apache/1.3.33 (Debian GNU/Linux) PHP/4.3.10-22
2007/11/19 18:21:30|   (16): Connection: Keep-Alive, Keep-Alive
2007/11/19 18:21:30|   (17): Keep-Alive: timeout=15, max=99
2007/11/19 18:21:30|   (18): ETag: "16c020-44a-47405507"
2007/11/19 18:21:30| httpHeaderPrint: array size 19