[squid-dev] [PATCH] Reduce "!Comm::MonitorsRead(serverConnection->fd)" assertions.

Christos Tsantilas christos at chtsanti.net
Wed Jun 21 11:40:13 UTC 2017


* Protect Squid Client classes from new requests that compete with 
ongoing pinned connection use and
* resume dealing with new requests when those Client classes are done 
using the pinned connection.

Replaced primary ConnStateData::pinConnection() calls with a pair of 
pinBusyConnection() and notePinnedConnectionBecameIdle() calls, 
depending on the pinned connection state ("busy" or "idle").

Removed pinConnection() parameters that were not longer used or could be 
computed from the remaining parameters.

Removed ConnStateData::httpsPeeked() code "hiding" the originating 
request and connection peer details while entering the first "idle" 
state. The old (trunk r11880.1.6) bump-server-first code used a pair of 
NULLs because "Intercepted connections do not have requests at the 
connection pinning stage", but that limitation no longer applicable 
because Squid always fakes (when intercepting) or parses (a CONNECT) 
request now, even during SslBump step1.

The added XXX and TODOs are not directly related to this fix. They were 
added to document problems discovered while working on this fix.

In v3.5 code, the same problems manifest as Read.cc 
"fd_table[conn->fd].halfClosedReader != NULL" assertions.

This is a Measurement Factory project
-------------- next part --------------
A non-text attachment was scrubbed...
Name: SQUID307-half-closed-reader-t8.patch
Type: text/x-patch
Size: 38575 bytes
Desc: not available
URL: <http://lists.squid-cache.org/pipermail/squid-dev/attachments/20170621/5d4c87aa/attachment-0001.bin>


More information about the squid-dev mailing list