[squid-users] vary caching issue (segment violation 2.6/STABLE1, Solaris 10/SPARC)

From: Bertold Kolics <bertold@dont-contact.us>
Date: Tue, 18 Jul 2006 10:44:20 -0500

Howdy all,

[ Excuse me if this is a known problem. I just (re)joined the list and
Google did not show any obvious answers. ]

I have a 2.6STABLE1 compiled/installed on a Solaris 10/SPARC machine.
Squid frequently dies with a segment violation. I compiled Squid with
--enable-poll and --enable-cache-digests options using Sun Studio 8. I
tried compiling Squid with gcc 3.4.2, but it did not make any
difference. I get the same problem.

Below is the stack trace from the core file. It looks like
state->current.key is NULL for some reason when the call to
storeKeyScan is made.

It looks like setting cache_vary to off helps. In any case, Squid
should not crash.

Your help would be appreciated.

Bertold

Reading squid
core file header read successfully
Reading ld.so.1
Reading libcrypt_i.so.1
Reading libm.so.2
Reading libsocket.so.1
Reading libnsl.so.1
Reading libc.so.1
Reading libgen.so.1
Reading libc_psr.so.1
Reading nss_files.so.1
Reading nss_nis.so.1
program terminated by signal ABRT (Abort)
0xff13d5ec: _lwp_kill+0x0008: bcc,a,pt %icc,_lwp_kill+0x18 ! 0xff13d5fc
Current function is death
  315 abort();
(dbx) where
  [1] _lwp_kill(0x0, 0x6, 0x0, 0x6, 0xffff0000, 0x0), at 0xff13d5ec
  [2] raise(0x6, 0x0, 0xff121af4, 0x42770, 0xff164278, 0x6), at 0xff0dd884
   [3] abort(0x793de, 0x1, 0x16554c, 0xa6544, 0xff167298, 0x0), at 0xff0bde38
=>[4] death(sig = 11), line 315 in "tools.c"
  [5] __sighndlr(0xb, 0x0, 0xffbf7030, 0x101b50, 0x0, 0x0), at 0xff13c52c
  ---- called from signal handler with signal 11 (SIGSEGV) ------
  [6] storeKeyScan(buf = (nil)), line 59 in "store_key_md5.c"
  [7] storeAddVaryReadOld(data = 0x32b5490, buf = 0x373c6e0 "HTTP/1.0
200 Internal marker object^M\nServer: squid/2.6.STABLE1^M\nDate: Tue,
18 Jul 2006 15:09:36 GMT^M\nContent-Type: x-squid-internal/vary^M
\nExpires: Wed, 19 Jul 2006 18:56:16 GMT^M\nVary:
Accept-Encoding^M\n^M\nKey:
21A1EB79BBB3DF2BA65E092498C98F01\nAccept-Encoding: gzip,deflate\nETag:
"7ac86a-1793-1e682380"\nVaryData:
accept-encoding="gzip,deflate"\nVaryData:
accept-encoding="gzip,deflate",
accept-encoding="gzip,deflate"\n80"\nVaryData:
accept-encoding="gzip,deflate"\nVaryData:
accept-encoding="gzip,deflate", accept-enco" ..., size = 414), line
603 in " store.c"
  [8] storeClientCallback(sc = 0x1286440, sz = 414), line 146 in
"store_client.c"
  [9] storeClientReadHeader(data = 0x1286440, buf = 0x373c6e0
"HTTP/1.0 200 Internal marker object^M\nServer:
squid/2.6.STABLE1^M\nDate: Tue, 18 Jul 2006 15:09:36
GMT^M\nContent-Type: x-squid-internal/vary^M\nExpires: Wed, 19 Jul
2006 18:56:16 GMT^M\nVary: Accept-Encoding^M\n^M\nKey:
21A1EB79BBB3DF2BA65E092498C98F01\nAccept-Encoding: gzip,deflate\nETag:
"7ac86a-1793-1e682380"\nVaryData:
accept-encoding="gzip,deflate"\nVaryData:
accept-encoding="gzip,deflate",
accept-encoding="gzip,deflate"\n80"\nVaryData:
accept-encoding="gzip,deflate"\nVaryData:
accept-encoding="gzip,deflate", accept-enco" ..., len = 532), line 477
in "store_client.c"
  [10] storeUfsReadDone(fd = 24, buf = 0x373c6e0 "HTTP/1.0 200
Internal marker object^M\nServer: squid/2.6.STABLE1^M\nDate: Tue, 18
Jul 2006 15:09:36 GMT^M\nContent-Type:
x-squid-internal/vary^M\nExpires: Wed, 19 Jul 2006 18:56:16
GMT^M\nVary: Accept-Encoding^M\n^M\nKey:
21A1EB79BBB3DF2BA65E092498C98F01\nAccept-Encoding: gzip,deflate\nETag:
"7ac86a-1793-1e682380"\nVaryData:
accept-encoding="gzip,deflate"\nVaryData:
accept-encoding="gzip,deflate",
accept-encoding="gzip,deflate"\n80"\nVaryData:
accept-encoding="gzip,deflate"\nVaryData:
accept-encoding="gzip,deflate", accept-enco" ..., len = 532, errflag =
0, my_data = 0x1379a00), line 224 in "store_io_ufs.c"
  [11] diskHandleRead(fd = 24, data = 0x7eef98), line 380 in "disk.c"
  [12] file_read(fd = 24, buf = 0x373c6e0 "HTTP/1.0 200 Internal
marker object^M\nServer: squid/2.6.STABLE1^M\nDate: Tue, 18 Jul 2006
15:09:36 GMT^M\nContent-Type: x-squid-internal/vary^M\nExpires: Wed,
19 Jul 2006 18:56:16 GMT^M\nVary: Accept-Encoding^M\n^M\nKey:
21A1EB79BBB3DF2BA65E092498C98F01\nAccept-Encoding: gzip,deflate\nETag:
"7ac86a-1793-1e682380"\nVaryData:
accept-encoding="gzip,deflate"\nVaryData:
accept-encoding="gzip,deflate",
accept-encoding="gzip,deflate"\n80"\nVaryData:
accept-encoding="gzip,deflate"\nVaryData:
accept-encoding="gzip,deflate", accept-enco" ..., req_len = 4096U,
file_offset = 0, handler = 0x117998 =
&`squid`store_io_ufs.c`storeUfsReadDone(int fd, const char *buf, int
len, int errflag, void *my_data), client_data = 0x1379a00), line 404
in " disk.c"
  [13] storeUfsRead(SD = 0x289428, sio = 0x1379a00, buf = 0x373c6e0
"HTTP/1.0 200 Internal marker object^M\nServer:
squid/2.6.STABLE1^M\nDate: Tue, 18 Jul 2006 15:09:36
GMT^M\nContent-Type: x-squid-internal/vary^M\nExpires: Wed, 19 Jul
2006 18:56:16 GMT^M\nVary: Accept-Encoding^M\n^M\nKey:
21A1EB79BBB3DF2BA65E092498C98F01\nAccept-Encoding: gzip,deflate\nETag:
"7ac86a-1793-1e682380"\nVaryData:
accept-encoding="gzip,deflate"\nVaryData:
accept-encoding="gzip,deflate",
accept-encoding="gzip,deflate"\n80"\nVaryData:
accept-encoding="gzip,deflate"\nVaryData:
accept-encoding="gzip,deflate", accept-enco" ..., size = 4096U, offset
= 0, callback = 0xf8220 =
&`squid`store_client.c`storeClientReadHeader(void *data, const char
*buf, ssize_t len), callback_data = 0x1286440), line 171 in
"store_io_ufs.c" [14] storeRead(sio = 0x1379a00, buf = 0x373c6e0
"HTTP/1.0 200 Internal marker object^M\nServer:
squid/2.6.STABLE1^M\nDate: Tue, 18 Jul 2006 15:09:36
GMT^M\nContent-Type: x-squid-internal/vary^M\nExpires: Wed, 19 Jul
2006 18:56:16 GMT^M\nVary: Accept-Encoding^M\n^M\nKey:
21A1EB79BBB3DF2BA65E092498C98F01\nAccept-Encoding: gzip,deflate\nETag:
"7ac86a-1793-1e682380"\nVaryData:
accept-encoding="gzip,deflate"\nVaryData:
accept-encoding="gzip,deflate",
accept-encoding="gzip,deflate"\n80"\nVaryData:
accept-encoding="gzip,deflate"\nVaryData:
accept-encoding="gzip,deflate", accept-enco" ..., size = 4096U, offset
= 0, callback = 0xf8220 =
&`squid`store_client.c`storeClientReadHeader(void *data, const char
*buf, ssize_t len), callback_data = 0x1286440), line 103 in
"store_io.c"
  [15] storeClientFileRead(sc = 0x1286440), line 344 in "store_client.c"
  [16] storeClientCopy3(e = 0x3a07c00, sc = 0x1286440), line 328 in
"store_client.c"
  [17] storeClientCopy2(e = 0x3a07c00, sc = 0x1286440), line 250 in
"store_client.c"
  [18] storeClientCopy(sc = 0x1286440, e = 0x3a07c00, seen_offset = 0,
copy_offset = 0, size = 4096U, buf = 0x373c6e0 "HTTP/1.0 200 Internal
marker object^M\nServer: squid/2.6.STABLE1^M\nDate: Tue, 18 Jul 2006
15:09:36 GMT^M\nContent-Type: x-squid-internal/vary^M\nExpires: Wed,
19 Jul 2006 18:56:16 GMT^M\nVary: Accept-Encoding^M\n^M\nKey:
21A1EB79BBB3DF2BA65E092498C98F01\nAccept-Encoding: gzip,deflate\nETag:
"7ac86a-1793-1e682380"\nVaryData:
accept-encoding="gzip,deflate"\nVaryData:
accept-encoding="gzip,deflate",
accept-encoding="gzip,deflate"\n80"\nVaryData:
accept-encoding="gzip,deflate"\nVaryData:
accept-encoding="gzip,deflate", accept-enco" ..., callback = 0xeffd8 =
&`squid`store.c`storeAddVaryReadOld(void *data, char *buf, ssize_t
size), data = 0x32b5490), line 199 in "store_client.c"
  [19] storeAddVary(url = 0x7b68b8
"http://layout.eurosport.com/c/struct-5.1.css", log_url = 0x8408a0 "
http://layout.eurosport.com/c/struct-5.1.css", method = 1U, key =
0x1d374c "Ju\xf5^B^Y \xc7\xd2%;\xdbu{<\xdce", etag = 0x7b9028
""7ac86a-1793-1e682380"", vary = 0x7b7c78 "Accept-Encoding,
Accept-Encoding", vary_headers = 0x3a0b068
"accept-encoding="gzip,deflate", accept-encoding="gzip,deflate"",
accept_encoding = 0x3a0ca40 "gzip,deflate"), line 730 in " store.c"
  [20] storeSetPublicKey(e = 0x3a07278), line 1008 in "store.c"
  [21] httpMakePublic(entry = 0x3a07278), line 114 in "http.c"
  [22] httpProcessReplyHeader(httpState = 0x2988f40, buf = 0x18498c
"HTTP/1.1 200 OK^M\nDate: Tue, 18 Jul 2006 14:20:02 GMT^M\nServer:
Apache^M\nLast-modified: Wed, 07 Jun 2006 08:26:06 GMT^M\nEtag:
"7ac86a-1793-1e682380"^M\nAccept-ranges: bytes^M\nCache-control:
max-age=7200^M\nExpires: Tue, 18 Jul 2006 17:13:38 GMT^M\nVary:
Accept-Encoding^M\nContent-encoding: gzip^M\nContent-length:
1443^M\nContent-type: text/css^M\nVia: 1.1 S1PS^M\nConnection:
close^M\nEtag: "7

(dbx) up
0xff13c52c: __sighndlr+0x000c: call %i3
(dbx) up
Current function is storeKeyScan
   59 t[0] = *(buf + (j++));
(dbx) up
Current function is storeAddVaryReadOld
  603 const cache_key *oldkey =
storeKeyScan(state->current.key);

(dbx) print *state
*state = {
    oe = 0x3a07c00
    e = 0x3a072b0
    sc = 0x1286440
    url = 0x7b7b90 "http://layout.eurosport.com/c/struct-5.1.css"
    key = 0x840810 "4A75F5021920C7D2253BDB757B3CDC65"
    vary_headers = 0x7b7bc8 "accept-encoding="gzip,deflate",
accept-encoding="gzip,deflate""
    accept_encoding = 0x3a0ca88 "gzip,deflate"
    etag = 0x7b5f50 ""7ac86a-1793-1e682380""
    seen_offset = 414LL
    buf = 0x373c6e0 "HTTP/1.0 200 Internal marker
object^M\nServer: squid/2.6.STABLE1^M\nDate: Tue, 18 Jul 2006 15:09:36
GMT^M\nContent-Type: x-squid-internal/vary^M\nExpires: Wed, 19 Jul
2006 18:56:16 GMT^M\nVary: Accept-Encoding^M\n^M\nKey:
21A1EB79BBB3DF2BA65E092498C98F01\nAccept-Encoding: gzip,deflate\nETag:
"7ac86a-1793-1e682380"\nVaryData:
accept-encoding="gzip,deflate"\nVaryData:
accept-encoding="gzip,deflate",
accept-encoding="gzip,deflate"\n80"\nVaryData:
accept-encoding="gzip,deflate"\nVaryData:
accept-encoding="gzip,deflate", accept-enco" ...
    buf_size = 4096U
    buf_offset = 0
    done = 0
    current = {
        key = (nil)
        etag = 0x7b6290 ""7ac86a-1793-1e682380""
        accept_encoding = 0x3a0caa0 "gzip,deflate"
        this_key = 0
        key_used = 0
        ignore = 0
    }
}
ac86a-1793-1e682380"^M\nCache-control: max-age=7200^M\nVary:
Accept-Encoding^M\nCache-last-checked: Tue, 18 Jul 2006 15:13:38
GMT^M\nProxy-agent: iP" ..., size = 550), line 498 in " http.c"
  [23] httpReadReply(fd = 18, data = 0x2988f40), line 719 in "http.c"
  [24] comm_select(msec = 473), line 471 in "comm_poll.c"
  [25] main(argc = 2, argv = 0xffbffcdc), line 840 in " main.c"
Received on Tue Jul 18 2006 - 09:44:26 MDT

This archive was generated by hypermail pre-2.1.9 : Tue Aug 01 2006 - 12:00:01 MDT