[squid-users] 6.x gives frequent connection to peer failed - spurious?
Stephen Borrill
squid at borrill.org.uk
Tue Nov 21 13:38:06 UTC 2023
On 15/11/2023 21:55, Alex Rousskov wrote:
> On 2023-11-10 05:46, Stephen Borrill wrote:
>
>> With 6.x (currently 6.5) there are very frequent (every 10 seconds or
>> so) messages like:
>> 2023/11/10 10:25:43 kid1| ERROR: Connection to 127.0.0.1:8123 failed
>
>
>> why is this logged as a connection failure
>
> The current error wording is too assuming and, in your case, evidently
> misleading. The phrase "Connection to X failed" should be changed to
> something more general like "Cannot contact cache_peer X" or "Cannot
> communicate with cache_peer X".
>
> CachePeer::countFailure() patches welcome.
But the point is that it _can_ communicate with the peer, but the peer
itself can't service the request. The peer returning 503 shouldn't be
logged as a connection failure
> > do I need to worry about it beyond it filing up the logs needlessly?
>
> In short, "yes".
>
> I cannot accurately assess your specific needs, but, in most
> environments, one should indeed worry that their cache_peer server names
> cannot be reliably resolved because failed resolution attempts waste
> Squid resources and increase transaction response time. Moreover, if
> these failures are frequent enough (relative to peer usage attempts),
> the affected cache_peer will be marked as DEAD (as you have mentioned):
>
> > 2023/11/09 08:55:22 kid1| Detected DEAD Parent: 127.0.0.1:8123
Problem seems to be easily reproducible:
1# env https_proxy=http://127.0.0.1:8084 curl https://www.invalid.domain/
curl: (56) CONNECT tunnel failed, response 503
2# grep invalid /usr/local/squid/logs/access.log|tail -1
1700573429.015 4 127.0.0.1:8084 TCP_TUNNEL/503 0 CONNECT
www.invalid.domain:443 - FIRSTUP_PARENT/127.0.0.1:8123 -
3# date -r 1700573429 '+%Y/%m/%d %H:%M:%S'
2023/11/21 13:30:29
4# grep '2023/11/21 13:30:29' /usr/local/squid/logs/cache.log
2023/11/21 13:30:29 kid1| ERROR: Connection to 127.0.0.1:8123 failed
>> With 4.x there were no such messages.
>>
>> By comparing to the peer squid logs, these seems to tally with DNS
>> failures:
>> peer_select.cc(479) resolveSelected: PeerSelector1688 found all 0
>> destinations for bugzilla.tucasi.com:443
>>
>> Full ALL,2 log at the time of the reported connection failure:
>>
>> 2023/11/10 10:25:43.162 kid1| 5,2| TcpAcceptor.cc(214) doAccept: New
>> connection on FD 17
>> 2023/11/10 10:25:43.162 kid1| 5,2| TcpAcceptor.cc(316) acceptNext:
>> connection on conn3 local=127.0.0.1:8123 remote=[::] FD 17 flags=9
>> 2023/11/10 10:25:43.162 kid1| 11,2| client_side.cc(1332)
>> parseHttpRequest: HTTP Client conn13206 local=127.0.0.1:8123
>> remote=127.0.0.1:57843 FD 147 flags=1
>> 2023/11/10 10:25:43.162 kid1| 11,2| client_side.cc(1336)
>> parseHttpRequest: HTTP Client REQUEST:
>> 2023/11/10 10:25:43.162 kid1| 85,2| client_side_request.cc(707)
>> clientAccessCheckDone: The request CONNECT bugzilla.tucasi.com:443 is
>> ALLOWED; last ACL checked: localhost
>> 2023/11/10 10:25:43.162 kid1| 85,2| client_side_request.cc(683)
>> clientAccessCheck2: No adapted_http_access configuration. default: ALLOW
>> 2023/11/10 10:25:43.162 kid1| 85,2| client_side_request.cc(707)
>> clientAccessCheckDone: The request CONNECT bugzilla.tucasi.com:443 is
>> ALLOWED; last ACL checked: localhost
>> 2023/11/10 10:25:43.162 kid1| 44,2| peer_select.cc(460)
>> resolveSelected: Find IP destination for: bugzilla.tucasi.com:443' via
>> bugzilla.tucasi.com
>> 2023/11/10 10:25:43.163 kid1| 44,2| peer_select.cc(479)
>> resolveSelected: PeerSelector1526 found all 0 destinations for
>> bugzilla.tucasi.com:443
>> 2023/11/10 10:25:43.163 kid1| 44,2| peer_select.cc(480)
>> resolveSelected: always_direct = ALLOWED
>> 2023/11/10 10:25:43.163 kid1| 44,2| peer_select.cc(481)
>> resolveSelected: never_direct = DENIED
>> 2023/11/10 10:25:43.163 kid1| 44,2| peer_select.cc(482)
>> resolveSelected: timedout = 0
>> 2023/11/10 10:25:43.163 kid1| 4,2| errorpage.cc(1397) buildBody: No
>> existing error page language negotiated for ERR_DNS_FAIL. Using
>> default error file.
>> 2023/11/10 10:25:43.163 kid1| 33,2| client_side.cc(617) swanSong:
>> conn13206 local=127.0.0.1:8123 remote=127.0.0.1:57843 flags=1
>>
>> If my analysis is correct why is this logged as a connection failure
>> and do I need to worry about it beyond it filing up the logs needlessly?
>>
>> My concern is that this could lead to the parent being incorrectly
>> declared DEAD thus impacting other traffic:
>>
>> 2023/11/09 08:55:22 kid1| Detected DEAD Parent: 127.0.0.1:8123
>> current master transaction: master4581234
>>
>
More information about the squid-users
mailing list