problems with the squid-2.5 connection pinning

From: Adrian Chadd <adrian@dont-contact.us>
Date: Thu, 13 Apr 2006 12:29:38 +0800

I've found a problem with the connection pinning:

2006/04/13 11:50:25| fwdConnectStart: Pinned connection to mail.aiondiagnostics.com:80 gone, aborting request
2006/04/13 11:50:25| assertion failed: forward.c:114: "!EBIT_TEST(e->flags, ENTRY_FWD_HDR_WAIT)"

As far as I can tell:

* this fail occurs, storeAbort() is called
* .. which registers an event to clean up
* the event gets called:

#0 0xb7e4f83b in raise () from /lib/tls/libc.so.6
#1 0xb7e50fa2 in abort () from /lib/tls/libc.so.6
#2 0x08069e89 in xassert (msg=0x0, file=0x0, line=0) at debug.c:415
#3 0x08070743 in fwdStateFree (fwdState=0x2e026150) at forward.c:120
#4 0x0806dc3d in eventRun () at event.c:147
#5 0x0808eb45 in main (argc=0, argv=0x1) at main.c:769

And it goes bang.

Any ideas/suggestions?

This is squid-2.5-cvs with epoll, tproxy (not being used atm), wccp2 and pinned connection
support.
(gdb) print *(store_client *)(fwdState->entry->mem_obj.clients.head->data)
$39 = {type = 1, copy_offset = 0, seen_offset = 0, copy_size = 4096, copy_buf = 0x2bae3648 "",
  callback = 0x8062510 <clientSendMoreData>, callback_data = 0xf24ee88, entry = 0x84f8540, swapin_sio = 0x0, flags = {
    disk_io_pending = 0, store_copying = 0, copy_event_pending = 0}, node = {data = 0x2e026878, prev = 0x0, next = 0x0}}
(gdb) bt
(gdb) print *fwdState
$40 = {client_fd = 61, entry = 0x84f8540, request = 0x2eaaf700, servers = 0x2fa63678, server_fd = -1, err = 0x0,
  start = 1144900225, n_tries = 0, origin_tries = 0, flags = {dont_retry = 0, ftp_pasv_failed = 0}}
(gdb) print *fwdState->entry
$41 = {hash = {key = 0x84f8578, next = 0x2ae79388}, mem_obj = 0x347d4518, repl = {data = 0x0}, timestamp = -1,
  lastref = 1144900225, expires = 1144900345, lastmod = -1, swap_file_sz = 0, refcount = 1, flags = 6024, swap_filen = -1,
  swap_dirn = -1, lock_count = 2, mem_status = 0, ping_status = 2, store_status = 0, swap_status = 0}
(gdb) print *fwdState->request
$42 = {method = 1, protocol = PROTO_HTTP, login = '\0' <repeats 127 times>,
  host = "mail.aiondiagnostics.com", '\0' <repeats 232 times>, auth_user_request = 0x8785850, port = 80, urlpath = {
    size = 36, len = 9, buf = 0x345731c0 "/exchange"}, canonical = 0x347c89a8 "http://mail.aiondiagnostics.com/exchange",
  link_count = 3, flags = {range = 0, nocache = 0, ims = 0, auth = 1, cachable = 1, hierarchical = 0, loopdetect = 0,
    proxy_keepalive = 1, proxying = 0, refresh = 0, redirected = 0, need_validation = 0, nocache_hack = 0, accelerated = 0,
    internal = 0, body_sent = 0, reset_tcp = 0, must_keepalive = 0}, cache_control = 0x0, range = 0x0, http_ver = {
    major = 1, minor = 1}, ims = -1, imslen = -1, max_forwards = -1, client_port = 36358, client_addr = {
    s_addr = 1016749954}, my_addr = {s_addr = 864051074}, my_port = 8888, header = {entries = {capacity = 16, count = 8,
      items = 0x30309ef0}, mask = "\215\000\000\001`\000\002", owner = hoRequest, len = 526}, content_length = -1, hier = {
    code = HIER_NONE, host = '\0' <repeats 255 times>, ping = {start = {tv_sec = 0, tv_usec = 0}, stop = {
        tv_sec = 1144900225, tv_usec = 430987}, n_sent = 0, n_recv = 0, n_replies_expected = 0, timeout = 0, timedout = 0,
      w_rtt = 0, p_rtt = 0}, cd_host = '\0' <repeats 255 times>, cd_lookup = LOOKUP_NONE, n_choices = 0, n_ichoices = 0,
    peer_select_start = {tv_sec = 0, tv_usec = 0}, store_complete_stop = {tv_sec = 0, tv_usec = 0}}, err_type = ERR_NONE,
  peer_login = 0x0, lastmod = -1, vary_headers = 0x0, body_reader = 0, body_reader_data = 0x0,
  pinned_connection = 0x2df00330}
(gdb) print *fwdState->request->pinned_connection
$43 = {fd = 61, in = {
    buf = 0x195f2b90 "GET http://mail.aiondiagnostics.com/exchange HTTP/1.1\r\nAccept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoi"..., offset = 0,
    size = 4096, clientfd = 0}, body = {size_left = 0, request = 0x0, buf = 0x0, bufsize = 0, callback = 0, cbdata = 0x0},
  auth_type = AUTH_UNKNOWN, auth_user_request = 0x0, chr = 0xf24ee88, peer = {sin_family = 2, sin_port = 36358, sin_addr = {
      s_addr = 1016749954}, sin_zero = "\000\000\000\000\000\000\000"}, me = {sin_family = 2, sin_port = 47138, sin_addr = {
      s_addr = 864051074}, sin_zero = "\000\000\000\000\000\000\000"}, log_addr = {s_addr = 1016749954},
  rfc931 = '\0' <repeats 63 times>, nrequests = 1, defer = {n = 0, until = 0}, pinning = {fd = -1, host = 0x0, port = 0,
    pinned = 0}}
(gdb)

Any ideas?

Adrian

Adrian
Received on Wed Apr 12 2006 - 22:30:59 MDT

This archive was generated by hypermail pre-2.1.9 : Mon May 01 2006 - 12:00:03 MDT