Henrik, this is the new memory-promotion patch dying.

I can reproduce this reliably with squidclient ftp://ftp.netbsd.org

The trigger appears to be the presence of:
  acl FTP proto FTP
  cache deny FTP


Program received signal SIGABRT, Aborted.
[Switching to Thread 0xb7ab16d0 (LWP 23380)]
0xb7f7c430 in __kernel_vsyscall ()
<snip>
#3 0x08092dac in xassert (msg=0x81e5f58 "new_mem_lo > 0", file=0x81e5ef8 "../../trunk/src/MemObject.cc", line=361)
    at ../../trunk/src/debug.cc:557
#4 0x08106bc3 in MemObject::trimUnSwappable (this=0x8bc4ee8) at ../../trunk/src/MemObject.cc:361 #5 0x0813493a in StoreEntry::trimMemory (this=0xb79c45f0) at ../../trunk/src/store.cc:1853 #6 0x081446df in StoreEntry::swapOut (this=0xb79c45f0) at ../../trunk/src/store_swapout.cc:224 #7 0x0813a5fa in StoreEntry::invokeHandlers (this=0xb79c45f0) at ../../trunk/src/store_client.cc:732 #8 0x08132b29 in StoreEntry::flush (this=0xb79c45f0) at ../../trunk/src/store.cc:1647 #9 0x0810fcdf in packerClean (p=0xbfe9a248) at ../../trunk/src/Packer.cc:154 #10 0x081327bc in StoreEntry::replaceHttpReply (this=0xb79c45f0, rep=0x8bc9254) at ../../trunk/src/store.cc:1794 #11 0x081473f7 in ServerStateData::setFinalReply (this=0xb783d008, rep=0x8bc9254) at ../../trunk/src/Server.cc:158 #12 0x08147436 in ServerStateData::adaptOrFinalizeReply (this=0xb783d008) at ../../trunk/src/Server.cc:809 #13 0x080bc98b in FtpStateData::appendSuccessHeader (this=0xb783d008) at ../../trunk/src/ftp.cc:3846 #14 0x080ca5ea in FtpStateData::processReplyBody (this=0xb783d008) at ../../trunk/src/ftp.cc:1414 #15 0x080c6baf in FtpStateData::dataRead (this=0xb783d008, i...@0x8c48d48) at ../../trunk/src/ftp.cc:1400
<snip>


gdb) f 4
#4 0x08106bc3 in MemObject::trimUnSwappable (this=0x8b7bee8) at ../../trunk/src/MemObject.cc:361
361         assert (new_mem_lo > 0);
(gdb) p *this
$1 = {method = {static RequestMethodStr = 0x8243000, theMethod = METHOD_GET, theImage = {static npos = 4294967295, size_ = 0, len_ = 0, buf_ = 0x0}}, url = 0x8bdb008 "ftp://ftp.netbsd.org/";, data_hdr = {inmem_hi = 134, nodes = {head = 0x8bf38c0, elements = 1}}, inmem_lo = 0, clients = {head = 0x8bdf238, tail = 0x8bdf238}, nclients = 1, swapout = {queue_offset = 0, memnode = 0x0, sio = {p_ = 0x0}}, request = 0x8b8f4a8, start_ping = {tv_sec = 0, tv_usec = 0}, ping_reply_callback = 0, ircb_data = 0x0, abort = { callback = 0x80b54a6 <FwdState::abort(void*)>, data = 0x8be32e8}, log_url = 0x8bdb028 "ftp://ftp.netbsd.org/";, repl = {data = 0x0}, id = 27, object_sz = -1, swap_hdr_sz = 0, vary_headers = 0x0, _reply = 0x8b80254, deferredReads = {deferredReads = {head = 0x0}}}


(gdb) f 5
#5 0x0813493a in StoreEntry::trimMemory (this=0xb7aeb5f0) at ../../trunk/src/store.cc:1853
1853            mem_obj->trimUnSwappable ();
(gdb) p *this
$2 = {<_hash_link> = {key = 0xb7aaa1b8, next = 0x0}, _vptr.StoreEntry = 0x81ee808, mem_obj = 0x8b7bee8, repl = {data = 0x0}, timestamp = -1, lastref = 1250654742, expires = -1, lastmod = -1, swap_file_sz = 0, refcount = 1, flags = 1224, swap_filen = -1, swap_dirn = -1, lock_count = 3, mem_status = NOT_IN_MEMORY, ping_status = PING_DONE, store_status = STORE_PENDING, swap_status = SWAPOUT_NONE,
  static pool = 0x8b7afb8}

(gdb) f 10
#10 0x081327bc in StoreEntry::replaceHttpReply (this=0xb7aeb5f0, rep=0x8b80254) at ../../trunk/src/store.cc:1794
1794        packerClean(&p);
(gdb) p *this
$5 = {<_hash_link> = {key = 0xb7aaa1b8, next = 0x0}, _vptr.StoreEntry = 0x81ee808, mem_obj = 0x8b7bee8, repl = {data = 0x0}, timestamp = -1, lastref = 1250654742, expires = -1, lastmod = -1, swap_file_sz = 0, refcount = 1, flags = 1224, swap_filen = -1, swap_dirn = -1, lock_count = 3, mem_status = NOT_IN_MEMORY, ping_status = PING_DONE, store_status = STORE_PENDING, swap_status = SWAPOUT_NONE,
  static pool = 0x8b7afb8}
(gdb) p *rep
$7 = {<HttpMsg> = {_vptr.HttpMsg = 0x81e2d88, http_ver = {major = 0, minor = 0}, header = {entries = {capacity = 16, count = 4, items = 0x8bffd00}, mask = "\000\000\024\000\...@\000\000\000\000\000", owner = hoReply, len = 107}, cache_control = 0x0, hdr_sz = 134, content_length = -1, protocol = PROTO_NONE, pstate = psReadyToParseStartLine, body_pipe = {p_ = 0x0}, lock_count = 3}, date = 1250654744, last_modified = -1, expires = -1, content_type = {static npos = 4294967295, size_ = 36, len_ = 9, buf_ = 0x8ba97f8 "text/html"}, surrogate_control = 0x0, content_range = 0x0, keep_alive = 0, sline = {version = {major = 1, minor = 0}, reason = 0x81daeee "Gatewaying", status = HTTP_OK}, body = {mb = 0x8b83540}, protoPrefix = {static npos = 4294967295, size_ = 36,
    len_ = 5, buf_ = 0x8ba96b4 "HTTP/"}, do_clean = true, bodySizeMax = -2}


gdb) f 15
#15 0x080c6baf in FtpStateData::dataRead (this=0xb7964008, i...@0x8c00560) at ../../trunk/src/ftp.cc:1400
warning: Source file is more recent than executable.
1400        processReplyBody();
(gdb) p *this
$8 = {<ServerStateData> = {<BodyConsumer> = {<AsyncJob> = {_vptr.AsyncJob = 0x81dc8cc, stopReason = 0x0, typeName = 0x81dbbb8 "FtpStateData", inCall = {p_ = 0x8c00538}, id = 2, static TheLastId = 2}, _vptr.BodyConsumer = 0x81dc84c}, completed = false, currentOffset = 0, responseBodyBuffer = 0x0, entry = 0xb7aeb5f0, fwd = {p_ = 0x8be32e8}, request = 0x8b8f4a8, requestBodySource = {p_ = 0x0}, requestSender = {p_ = 0x0}, theVirginReply = 0x8b80254, theFinalReply = 0x8b80254}, user = "anonymous", '\0' <repeats 8182 times>, password = "Squid@", '\0' <repeats 8185 times>, password_url = 0, reply_hdr = 0x0, reply_hdr_state = 0, clean_url = { static npos = 4294967295, size_ = 0, len_ = 0, buf_ = 0x0}, title_url = {static npos = 4294967295, size_ = 36, len_ = 21, buf_ = 0x8ba9648 "ftp://ftp.netbsd.org/"}, base_href = {static npos = 4294967295, size_ = 36, len_ = 22, buf_ = 0x8ba966c "ftp://ftp.netbsd.org//"}, conn_att = 0, login_att = 0, state = READING_DATA, mdtm = -1, theSize = -1, pathcomps = 0x0, filepath = 0x0, dirpath = 0x0, restart_offset = 0, proxy_host = 0x0, list_width = 0, cwd_message = 0x8941168, old_request = 0x0, old_reply = 0x0, old_filepath = 0x0, typecode = 0 '\0', ctrl = {<FtpChannel> = {fd = 15, closer = {p_ = 0x8bffc60}}, buf = 0xb7a68008 "150 Opening ASCII mode data connection for '/bin/ls'.\r\nood City, CA, USA\r\n 1 Gbps connectivity courtesy of", ' ' <repeats 26 times>, ", ,\r\n Internet Systems Consortium", ' ' <repeats 17 times>, "WELCO"..., size = 4096, offset = 0, message = 0x0, last_command = 0x8c00418 "LIST\r\n", last_reply = 0x8c00500 "Opening ASCII mode data connection for '/bin/ls'.", replycode = 150}, data = {<FtpChannel> = {fd = 16, closer = {p_ = 0x8c00428}}, readBuf = 0x8b8352c, host = 0x8bf39f8 "204.152.190.13", port = 56884, read_pending = false}, flags = {pasv_supported = true, epsv_all_sent = false, pasv_only = false, authenticated = false, tried_auth_anonymous = true, tried_auth_nopass = false, isdir = true, skip_whitespace = false, rest_supported = true, http_header_sent = true, tried_nlst = false, need_base_href = false, dir_slash = false, root_dir = true, no_dotdot = false, html_header_sent = false, binary = false, try_slash_hack = false, put = false, put_mkdir = false, listformat_unknown = false, listing_started = false, completed_forwarding = false}, static CBDATA_FtpStateData = 27}
(gdb) p io
$9 = (const CommIoCbParams &) @0x8c00560: {<CommCommonCbParams> = {data = 0xb7964008, fd = 16, xerrno = 0, flag = COMM_OK}, buf = 0xb7a69008 "total 59486\r\nlrwxr-xr-x 1 root wheel", ' ' <repeats 11 times>, "32 Dec 10 2004 .message -> pub/NetBSD/README.export-control\r\ndrwx------ 2 2 wheel 512 Nov 1 2008 .snapshot\r\ndrwxr-x--- 4 root"..., size = 571}


Amos
--
Please be using
  Current Stable Squid 2.7.STABLE6 or 3.0.STABLE18
  Current Beta Squid 3.1.0.13

Reply via email to