[squid-users] Fw: [Bug 4977] stmem.cc:98: "lowestOffset () <= target_offset" assertion when adapting Content-Range value

Matus UHLAR - fantomas uhlar at fantomas.sk
Mon Nov 4 16:21:21 UTC 2019


>> On 02.10.19 16:22, Matus UHLAR - fantomas wrote:
>>> http://bugs.squid-cache.org/show_bug.cgi?id=4977

>On 10/2/19 10:50 AM, Matus UHLAR - fantomas wrote:
>> OK, now I've got 1.7G pcap,  2.8M access.log (22k requests) and cache.log
>> saying when did the problem appear.
>> Any idea what to search for?

On 02.10.19 13:48, Alex Rousskov wrote:
>cache.log with debug_options set to just "ALL,1" (or default), right?

I have raqised it to ALL,2

>I cannot give you specific instructions, but you can try to find the
>transaction that caused the crash by correlating packet capture with the
>timing of the crash. If you are lucky, the transaction would not be
>encrypted and will have few other transactions nearby. In that case, we
>may be able to learn something from the transaction bytes received and
>sent by Squid.

I have new cache.log with debugging, new pcap file, and core (didn't have
before) backed up (/var/tmp should last for some time):

the last request:

CONNECT www.google.com:443 HTTP/1.1
Host: www.google.com


----------
2019/11/04 16:59:09.721 kid1| 85,2| client_side_request.cc(752) clientAccessCheckDone: The request CONNECT www.google.com:443 is ALLOWED; last ACL checked: work_time1
2019/11/04 16:59:09.721 kid1| 85,2| client_side_request.cc(728) clientAccessCheck2: No adapted_http_access configuration. default: ALLOW
2019/11/04 16:59:09.721 kid1| 85,2| client_side_request.cc(752) clientAccessCheckDone: The request CONNECT www.google.com:443 is ALLOWED; last ACL checked: work_time1
2019/11/04 16:59:09.721 kid1| 44,2| peer_select.cc(281) peerSelectDnsPaths: Find IP destination for: www.google.com:443' via www.google.com
2019/11/04 16:59:09.721 kid1| 44,2| peer_select.cc(302) peerSelectDnsPaths: Found sources for 'www.google.com:443'
2019/11/04 16:59:09.721 kid1| 44,2| peer_select.cc(303) peerSelectDnsPaths:   always_direct = DENIED
2019/11/04 16:59:09.721 kid1| 44,2| peer_select.cc(304) peerSelectDnsPaths:    never_direct = DENIED
2019/11/04 16:59:09.721 kid1| 44,2| peer_select.cc(308) peerSelectDnsPaths:          DIRECT = local=[::] remote=[2a00:1450:4014:801::2004]:443 flags=1
2019/11/04 16:59:09.721 kid1| 44,2| peer_select.cc(308) peerSelectDnsPaths:          DIRECT = local=0.0.0.0 remote=216.58.201.100:443 flags=1
2019/11/04 16:59:09.721 kid1| 44,2| peer_select.cc(317) peerSelectDnsPaths:        timedout = 0
2019/11/04 16:59:09.725 kid1| 20,2| store.cc(980) checkCachable: StoreEntry::checkCachable: NO: not cachable
2019/11/04 16:59:09.727 kid1| 33,2| client_side.cc(582) swanSong: local=192.168.251.230:3128 remote=192.168.169.31:62822 flags=1
2019/11/04 16:59:09.730 kid1| 20,2| store.cc(980) checkCachable: StoreEntry::checkCachable: NO: not cachable
2019/11/04 16:59:09.730 kid1| assertion failed: stmem.cc:98: "lowestOffset () <= target_offset"


and the gdb backtrace:

Core was generated by `(squid-1) --kid squid-1 -YC -f /etc/squid/squid.conf'.
Program terminated with signal SIGABRT, Aborted.
#0  __GI_raise (sig=sig at entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50      ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
[Current thread is 1 (Thread 0x7f939ea82e80 (LWP 13179))]
(gdb) backtrace
#0  __GI_raise (sig=sig at entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007f93a15b2535 in __GI_abort () at abort.c:79
#2  0x00005654ebcee5ad in ?? ()
#3  0x00005654ebe6c170 in mem_hdr::freeDataUpto(long) ()
#4  0x00005654ebe27440 in MemObject::trimSwappable() ()
#5  0x00005654ebe74bf5 in StoreEntry::trimMemory(bool) ()
#6  0x00005654ec100a80 in Store::Controller::memoryOut(StoreEntry&, bool) ()
#7  0x00005654ebe84305 in StoreEntry::swapOut() ()
#8  0x00005654ebe7b3fd in StoreEntry::invokeHandlers() ()
#9  0x00005654ebe736ac in StoreEntry::write(StoreIOBuffer) ()
#10 0x00005654ebf0a590 in Client::storeReplyBody(char const*, long) ()
#11 0x00005654ebdeca37 in HttpStateData::writeReplyBody() ()
#12 0x00005654ebdf1bd5 in HttpStateData::processReplyBody() ()
#13 0x00005654ebdf382a in HttpStateData::processReply() ()
#14 0x00005654ebdf4da8 in HttpStateData::readReply(CommIoCbParams const&) ()
#15 0x00005654ebdf8d6b in JobDialer<HttpStateData>::dial(AsyncCall&) ()
#16 0x00005654ebf5be51 in AsyncCall::make() ()
#17 0x00005654ebf5d3a4 in AsyncCallQueue::fireNext() ()
#18 0x00005654ebf5d6e9 in AsyncCallQueue::fire() ()
#19 0x00005654ebdb98ea in EventLoop::runOnce() ()
#20 0x00005654ebdb99d8 in EventLoop::run() ()
#21 0x00005654ebe22ab9 in SquidMain(int, char**) ()
#22 0x00005654ebd13901 in main ()
(gdb)

I don't know where do those raise.c and raise.c belong (libthread? glibc?)

squid is stripped, i could probably compile it without stripping and re-try

Any ideas how to debug further? (disabling multi-cpu?)

-- 
Matus UHLAR - fantomas, uhlar at fantomas.sk ; http://www.fantomas.sk/
Warning: I wish NOT to receive e-mail advertising to this address.
Varovanie: na tuto adresu chcem NEDOSTAVAT akukolvek reklamnu postu.
How does cat play with mouse? cat /dev/mouse


More information about the squid-users mailing list