[squid-users] Squid 3.1.11 assertion error bodyPipe != NULL

From: Guy Helmer <ghelmer_at_palisadesys.com>
Date: Mon, 7 Mar 2011 14:12:46 -0600

A customer is using HTTPS to access a website running on IIS 5, and Squid is fairly consistently hitting this assertion error while they attempt to access the site. Squid seems to be failing on a different request than the request for the problematic site, though - the request in this traceback is for urs.microsoft.com rather than the original website:

2011/03/07 10:29:11| assertion failed: client_side.cc:3756: "bodyPipe != NULL"

(we have some local changes, so the line number 3756 might not exactly match the line in the stock cache_cf.cc file)

The stack backtrace is:
#0 0x48615117 in _pthread_key_create () from /lib/libc.so.7
(gdb) where
#0 0x48615117 in _pthread_key_create () from /lib/libc.so.7
#1 0x48613c4a in __divdi3 () from /lib/libc.so.7
#2 0x08093d40 in xassert (msg=Variable "msg" is not available.
) at debug.cc:556
#3 0x0807458d in ConnStateData::startClosing (this=0x487a9a90,
   reason=0x81d17ac "CONNECT response failure in SslBump")
   at client_side.cc:3756
#4 0x08153ea5 in CommIoCbPtrFun::dial (this=0x49a525cc) at CommCalls.cc:183
#5 0x08145998 in AsyncCall::make (this=0x49a525b0) at AsyncCall.cc:34
#6 0x08148402 in AsyncCallQueue::fireNext (this=0x4874f358)
   at AsyncCallQueue.cc:53
#7 0x081484ef in AsyncCallQueue::fire (this=0x4874f358)
   at AsyncCallQueue.cc:39
#8 0x0809f533 in EventLoop::dispatchCalls (this=0xbfbfeb64)
   at EventLoop.cc:153
#9 0x0809f724 in EventLoop::runOnce (this=0xbfbfeb64) at EventLoop.cc:130
#10 0x0809f7ea in EventLoop::run (this=0xbfbfeb64) at EventLoop.cc:94
#11 0x080f17c2 in SquidMain (argc=3, argv=0xbfbfec08) at main.cc:1416
#12 0x080f1957 in main (argc=Cannot access memory at address 0x5
) at main.cc:1176
(gdb) frame 3
#3 0x0807458d in ConnStateData::startClosing (this=0x487a9a90,
   reason=0x81d17ac "CONNECT response failure in SslBump")
   at client_side.cc:3756
3756 assert(bodyPipe != NULL);
(gdb) list
3751 {
3752 debugs(33, 5, HERE << "startClosing " << this << " for " << reason);
3753 assert(!closing());
3754 closing_ = true;
3755
3756 assert(bodyPipe != NULL);
3757 assert(bodySizeLeft() > 0);
3758
3759 // We do not have to abort the body pipeline because we are going to
3760 // read the entire body anyway.
(gdb) print *this
$1 = {<BodyProducer> = {<AsyncJob> = {_vptr$AsyncJob = 0x81cfa10,
     stopReason = 0x0, typeName = 0x81cd6e9 "ConnStateData", inCall = {
       p_ = 0x0}, id = 3934, static TheLastId = 4454},
   _vptr$BodyProducer = 0x81cf9cc}, fd = 55, in = {bodyParser = 0x0,
   chunked = {static CBDATA_MemBuf = 10, buf = 0x0, size = 0,
     max_capacity = 0, capacity = 0, stolen = 0}, dechunked = {
     static CBDATA_MemBuf = 10, buf = 0x0, size = 0, max_capacity = 0,
     capacity = 0, stolen = 0},
   buf = 0x49e90000 "CONNECT urs.microsoft.com:443 HTTP/1.0\r\nUser-Agent: VCSoapClient\r\nHost: urs.microsoft.com:443\r\nContent-Length: 0\r\nProxy-Connection: Keep-Alive\r\nPragma: no-cache\r\n\r\n", notYetUsed = 0,
   allocatedSize = 4096, chunkedSeen = 0,
   dechunkingState = ConnStateData::chunkUnknown}, auth_type = AUTH_UNKNOWN,
 auth_user_request = 0x0, currentobject = {p_ = 0x49e39010}, peer = {
   m_SocketAddr = {sin6_len = 0 '\0', sin6_family = 28 '\034',
     sin6_port = 33804, sin6_flowinfo = 0, sin6_addr = {__u6_addr = {
         __u6_addr8 = "\000\000\000\000\000\000\000\000\000\000????\037g",
         __u6_addr16 = {0, 0, 0, 0, 0, 65535, 43200, 26399}, __u6_addr32 = {
           0, 0, 4294901760, 1730128064}}}, sin6_scope_id = 0},
   static STRLEN_IP4A = <optimized out>, static STRLEN_IP4R = 28,
   static STRLEN_IP4S = <optimized out>,
   static MAX_IP4_STRLEN = <optimized out>,
   static STRLEN_IP6A = <optimized out>, static STRLEN_IP6R = 75,
   static STRLEN_IP6S = <optimized out>,
   static MAX_IP6_STRLEN = <optimized out>, static v4_localhost = {
     __u6_addr = {
       __u6_addr8 = "\000\000\000\000\000\000\000\000\000\000??\177\000\000\001", __u6_addr16 = {0, 0, 0, 0, 0, 65535, 127, 256}, __u6_addr32 = {0, 0,
         4294901760, 16777343}}}, static v4_anyaddr = {__u6_addr = {
       __u6_addr8 = "\000\000\000\000\000\000\000\000\000\000??\000\000\000",
       __u6_addr16 = {0, 0, 0, 0, 0, 65535, 0, 0}, __u6_addr32 = {0, 0,
         4294901760, 0}}}, static v4_noaddr = {__u6_addr = {
       __u6_addr8 = "\000\000\000\000\000\000\000\000\000\000??????",
       __u6_addr16 = {0, 0, 0, 0, 0, 65535, 65535, 65535}, __u6_addr32 = {0,
         0, 4294901760, 4294967295}}}, static v6_noaddr = {__u6_addr = {
       __u6_addr8 = '?' <repeats 16 times>, __u6_addr16 = {65535, 65535,
         65535, 65535, 65535, 65535, 65535, 65535}, __u6_addr32 = {
         4294967295, 4294967295, 4294967295, 4294967295}}}}, me = {
   m_SocketAddr = {sin6_len = 0 '\0', sin6_family = 28 '\034',
     sin6_port = 14348, sin6_flowinfo = 0, sin6_addr = {__u6_addr = {
         __u6_addr8 = "\000\000\000\000\000\000\000\000\000\000????\"\004",
         __u6_addr16 = {0, 0, 0, 0, 0, 65535, 43200, 1058}, __u6_addr32 = {0,
           0, 4294901760, 69380288}}}, sin6_scope_id = 0},
   static STRLEN_IP4A = <optimized out>, static STRLEN_IP4R = 28,
   static STRLEN_IP4S = <optimized out>,
   static MAX_IP4_STRLEN = <optimized out>,
   static STRLEN_IP6A = <optimized out>, static STRLEN_IP6R = 75,
   static STRLEN_IP6S = <optimized out>,
   static MAX_IP6_STRLEN = <optimized out>, static v4_localhost = {
     __u6_addr = {
       __u6_addr8 = "\000\000\000\000\000\000\000\000\000\000??\177\000\000\001", __u6_addr16 = {0, 0, 0, 0, 0, 65535, 127, 256}, __u6_addr32 = {0, 0,
         4294901760, 16777343}}}, static v4_anyaddr = {__u6_addr = {
       __u6_addr8 = "\000\000\000\000\000\000\000\000\000\000??\000\000\000",
       __u6_addr16 = {0, 0, 0, 0, 0, 65535, 0, 0}, __u6_addr32 = {0, 0,
         4294901760, 0}}}, static v4_noaddr = {__u6_addr = {
       __u6_addr8 = "\000\000\000\000\000\000\000\000\000\000??????",
       __u6_addr16 = {0, 0, 0, 0, 0, 65535, 65535, 65535}, __u6_addr32 = {0,
         0, 4294901760, 4294967295}}}, static v6_noaddr = {__u6_addr = {
       __u6_addr8 = '?' <repeats 16 times>, __u6_addr16 = {65535, 65535,
         65535, 65535, 65535, 65535, 65535, 65535}, __u6_addr32 = {
         4294967295, 4294967295, 4294967295, 4294967295}}}}, log_addr = {
   m_SocketAddr = {sin6_len = 0 '\0', sin6_family = 28 '\034',
     sin6_port = 33804, sin6_flowinfo = 0, sin6_addr = {__u6_addr = {
         __u6_addr8 = "\000\000\000\000\000\000\000\000\000\000????\037g",
         __u6_addr16 = {0, 0, 0, 0, 0, 65535, 43200, 26399}, __u6_addr32 = {
           0, 0, 4294901760, 1730128064}}}, sin6_scope_id = 0},
   static STRLEN_IP4A = <optimized out>, static STRLEN_IP4R = 28,
   static STRLEN_IP4S = <optimized out>,
   static MAX_IP4_STRLEN = <optimized out>,
   static STRLEN_IP6A = <optimized out>, static STRLEN_IP6R = 75,
   static STRLEN_IP6S = <optimized out>,
   static MAX_IP6_STRLEN = <optimized out>, static v4_localhost = {
     __u6_addr = {
       __u6_addr8 = "\000\000\000\000\000\000\000\000\000\000??\177\000\000\001", __u6_addr16 = {0, 0, 0, 0, 0, 65535, 127, 256}, __u6_addr32 = {0, 0,
         4294901760, 16777343}}}, static v4_anyaddr = {__u6_addr = {
       __u6_addr8 = "\000\000\000\000\000\000\000\000\000\000??\000\000\000",
       __u6_addr16 = {0, 0, 0, 0, 0, 65535, 0, 0}, __u6_addr32 = {0, 0,
         4294901760, 0}}}, static v4_noaddr = {__u6_addr = {
       __u6_addr8 = "\000\000\000\000\000\000\000\000\000\000??????",
       __u6_addr16 = {0, 0, 0, 0, 0, 65535, 65535, 65535}, __u6_addr32 = {0,
         0, 4294901760, 4294967295}}}, static v6_noaddr = {__u6_addr = {
       __u6_addr8 = '?' <repeats 16 times>, __u6_addr16 = {65535, 65535,
         65535, 65535, 65535, 65535, 65535, 65535}, __u6_addr32 = {
         4294967295, 4294967295, 4294967295, 4294967295}}}},
 rfc931 = '\0' <repeats 63 times>, nrequests = 1, flags = {
   readMoreRequests = true, swanSang = false}, pinning = {fd = -1,
   host = 0x0, port = 0, pinned = false, auth = false, peer = 0x0,
   closeHandler = {p_ = 0x0}}, port = 0x487544d0,
 static CBDATA_ConnStateData = 15, transparent_ = false, closing_ = true,
 switchedToHttps_ = false, sslHostName = {static npos = <optimized out>,
   size_ = 0, len_ = 0, buf_ = 0x0}, reader = {p_ = 0x0}, bodyPipe = {
   p_ = 0x0}}
--------
This message has been scanned by ComplianceSafe, powered by Palisade's PacketSure.
Received on Mon Mar 07 2011 - 20:12:58 MST

This archive was generated by hypermail 2.2.0 : Tue Mar 08 2011 - 12:00:01 MST