[squid-users] Assert(call->dialer.handler == callback)
Steve Hill
steve at opendium.com
Thu Apr 30 16:14:55 UTC 2015
I've just migrated a system from Squid 3.4.10 to 3.5.3 and I'm getting
frequent crashes with an assertion of "call->dialer.handler == callback"
in Read.cc:comm_read_cancel().
call->dialer.handler == (IOCB *) 0x7ffe1493b2d0
<TunnelStateData::ReadClient(Comm::ConnectionPointer const&, char*,
size_t, Comm::Flag, int, void*)>
callback == <IdleConnList::Read(Comm::ConnectionPointer const&, char*,
size_t, Comm::Flag, int, void*)>
This is quite a busy system doing server-first ssl_bump and I get a lot
of SSL negotiation errors in cache.log (these were present under 3.4.10
too). I think a good chunk of these are Team Viewer, which abuses
CONNECTs to port 443 of remote servers to do non-SSL traffic, so
obviously isn't going to work with ssl_bump. I _suspect_ that the
assertion may be being triggered by these SSL errors (e.g. connection
being unexpectedly torn down because SSL negotiation failed?), but I
can't easily prove that.
I don't quite understand the comm_read_cancel() function though - as far
as I can see, the callback parameter is only used in the assert() - is
that correct?
Stack trace:
#0 0x00007ffe1155d625 in raise (sig=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1 0x00007ffe1155ee05 in abort () at abort.c:92
#2 0x00007ffe148210df in xassert (msg=Unhandled dwarf expression opcode
0xf3
) at debug.cc:544
#3 0x00007ffe14a62787 in comm_read_cancel (fd=600,
callback=0x7ffe148c8dd0 <IdleConnList::Read(Comm::ConnectionPointer
const&, char*, size_t, Comm::Flag, int, void*)>,
data=0x7ffe176c8298) at Read.cc:204
#4 0x00007ffe148c5e62 in IdleConnList::clearHandlers
(this=0x7ffe176c8298, conn=...) at pconn.cc:157
#5 0x00007ffe148c94ab in IdleConnList::findUseable
(this=0x7ffe176c8298, key=...) at pconn.cc:269
#6 0x00007ffe148c979d in PconnPool::pop (this=0x7ffe145db010, dest=...,
domain=Unhandled dwarf expression opcode 0xf3
) at pconn.cc:449
#7 0x00007ffe14852142 in FwdState::pconnPop (this=Unhandled dwarf
expression opcode 0xf3
) at FwdState.cc:1153
#8 0x00007ffe14855605 in FwdState::connectStart (this=0x7ffe2034c4e8)
at FwdState.cc:850
#9 0x00007ffe14856a31 in FwdState::startConnectionOrFail
(this=0x7ffe2034c4e8) at FwdState.cc:398
#10 0x00007ffe148d2fa5 in peerSelectDnsPaths (psstate=0x7ffe1fd0c028) at
peer_select.cc:302
#11 0x00007ffe148d6a1d in peerSelectDnsResults (ia=0x7ffe14f0ac20,
details=Unhandled dwarf expression opcode 0xf3
) at peer_select.cc:383
#12 0x00007ffe148a8e71 in ipcache_nbgethostbyname (name=Unhandled dwarf
expression opcode 0xf3
) at ipcache.cc:518
#13 0x00007ffe148d23c1 in peerSelectDnsPaths (psstate=0x7ffe1fd0c028) at
peer_select.cc:259
#14 0x00007ffe148d6a1d in peerSelectDnsResults (ia=0x7ffe14f0ac20,
details=Unhandled dwarf expression opcode 0xf3
) at peer_select.cc:383
#15 0x00007ffe148a8e71 in ipcache_nbgethostbyname (name=Unhandled dwarf
expression opcode 0xf3
) at ipcache.cc:518
#16 0x00007ffe148d23c1 in peerSelectDnsPaths (psstate=0x7ffe1fd0c028) at
peer_select.cc:259
#17 0x00007ffe148d382b in peerSelectFoo (ps=0x7ffe1fd0c028) at
peer_select.cc:522
#18 0x00007ffe149bba6a in ACLChecklist::checkCallback
(this=0x7ffe2065b9e8, answer=...) at Checklist.cc:167
#19 0x00007ffe148d3f5a in peerSelectFoo (ps=0x7ffe1fd0c028) at
peer_select.cc:459
#20 0x00007ffe148d5176 in peerSelect (paths=0x7ffe2034c540,
request=0x7ffe1b660b70, al=Unhandled dwarf expression opcode 0xf3
) at peer_select.cc:163
#21 0x00007ffe14852ae3 in FwdState::Start (clientConn=...,
entry=0x7ffe1b0da790, request=0x7ffe1b660b70, al=...) at FwdState.cc:366
#22 0x00007ffe14801401 in clientReplyContext::processMiss
(this=0x7ffe1fcf5838) at client_side_reply.cc:691
#23 0x00007ffe14801eb0 in clientReplyContext::doGetMoreData
(this=0x7ffe1fcf5838) at client_side_reply.cc:1797
#24 0x00007ffe14805a89 in ClientHttpRequest::httpStart
(this=0x7ffe1dcda618) at client_side_request.cc:1518
#25 0x00007ffe14808cac in ClientHttpRequest::processRequest
(this=0x7ffe1dcda618) at client_side_request.cc:1504
#26 0x00007ffe14809013 in ClientHttpRequest::doCallouts
(this=0x7ffe1dcda618) at client_side_request.cc:1830
#27 0x00007ffe1480b453 in checkNoCacheDoneWrapper (answer=...,
data=0x7ffe1e5db378) at client_side_request.cc:1400
#28 0x00007ffe149bba6a in ACLChecklist::checkCallback
(this=0x7ffe1c88b4a8, answer=...) at Checklist.cc:167
#29 0x00007ffe1480b40a in ClientRequestContext::checkNoCache
(this=0x7ffe1e5db378) at client_side_request.cc:1385
#30 0x00007ffe14809c04 in ClientHttpRequest::doCallouts
(this=0x7ffe1dcda618) at client_side_request.cc:1748
#31 0x00007ffe1480d109 in ClientRequestContext::clientAccessCheckDone
(this=0x7ffe1e5db378, answer=Unhandled dwarf expression opcode 0xf3
) at client_side_request.cc:821
#32 0x00007ffe1480d898 in ClientRequestContext::clientAccessCheck2
(this=0x7ffe1e5db378) at client_side_request.cc:718
#33 0x00007ffe14809767 in ClientHttpRequest::doCallouts
(this=0x7ffe1dcda618) at client_side_request.cc:1721
#34 0x00007ffe1480afca in ClientHttpRequest::handleAdaptedHeader
(this=0x7ffe1dcda618, msg=Unhandled dwarf expression opcode 0xf3
) at client_side_request.cc:1935
#35 0x00007ffe14abbcaa in JobDialer<Adaptation::Initiator>::dial
(this=0x7ffe1ce04990, call=...) at ../../src/base/AsyncJobCalls.h:174
#36 0x00007ffe149bea69 in AsyncCall::make (this=0x7ffe1ce04960) at
AsyncCall.cc:40
#37 0x00007ffe149c272f in AsyncCallQueue::fireNext (this=Unhandled dwarf
expression opcode 0xf3
) at AsyncCallQueue.cc:56
#38 0x00007ffe149c2a60 in AsyncCallQueue::fire (this=0x7ffe16f70bf0) at
AsyncCallQueue.cc:42
#39 0x00007ffe1484110c in EventLoop::runOnce (this=0x7fffcb8c4be0) at
EventLoop.cc:120
#40 0x00007ffe148412c8 in EventLoop::run (this=0x7fffcb8c4be0) at
EventLoop.cc:82
#41 0x00007ffe148ae191 in SquidMain (argc=Unhandled dwarf expression
opcode 0xf3
) at main.cc:1511
#42 0x00007ffe148af2e9 in SquidMainSafe (argc=Unhandled dwarf expression
opcode 0xf3
) at main.cc:1243
#43 main (argc=Unhandled dwarf expression opcode 0xf3
) at main.cc:1236
(sorry about the DWARF errors - it looks like I've got a version
mismatch between gcc and gdb)
--
- Steve Hill
Technical Director
Opendium Limited http://www.opendium.com
Direct contacts:
Instant messager: xmpp:steve at opendium.com
Email: steve at opendium.com
Phone: sip:steve at opendium.com
Sales / enquiries contacts:
Email: sales at opendium.com
Phone: +44-1792-824568 / sip:sales at opendium.com
Support contacts:
Email: support at opendium.com
Phone: +44-1792-825748 / sip:support at opendium.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: steve.vcf
Type: text/x-vcard
Size: 283 bytes
Desc: not available
URL: <http://lists.squid-cache.org/pipermail/squid-users/attachments/20150430/b4213adb/attachment.vcf>
More information about the squid-users
mailing list